#define BLYNK_PRINT Serial
#include <BlynkSimpleEsp32.h>
#define BLYNK_AUTH_TOKEN "ft1qhm4EJy_jLS6l5X6Zw54Z1u1HmyiG" //Enter your blynk auth token
#include <DHT.h>
DHT dht(15, DHT22); //Pin, Jenis DHT

char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";//Enter your WIFI name
char pass[] = "";//Enter your WIFI password
BlynkTimer timer; // Creating a timer object
int LED = 12;

//Get the button value
BLYNK_WRITE(V0) {
int pinValue = param.asInt();
Serial.print("Button V0 : ");
Serial.println(pinValue);
digitalWrite(LED_BUILTIN, pinValue );    // turn the LED on (HIGH is the voltage level)
}

BLYNK_WRITE(V1) {
int pinValue = param.asInt();
Serial.print("Button V1 : ");
Serial.println(pinValue);
digitalWrite(LED, pinValue );   // turn the LED on (HIGH is the voltage level)
}

void myTimerEvent()
{
Blynk.virtualWrite(V2, millis() / 1000);
float kelembaban = dht.readHumidity();
float suhu = dht.readTemperature();
Blynk.virtualWrite(V3, suhu);
Blynk.virtualWrite(V4, kelembaban);
if (kelembaban >= 70)
  {
  digitalWrite(LED, HIGH );   // turn the LED on (HIGH is the voltage level)
  Blynk.virtualWrite(V5, "1");
  }
else {
  digitalWrite(LED, LOW );   // turn the LED on (HIGH is the voltage level)
  Blynk.virtualWrite(V5, "0");
  }
  Serial.print("kelembaban: ");
  Serial.print(kelembaban);
  Serial.print(" ");
  Serial.print("suhu: ");
  Serial.println(suhu);
}

void setup() {
  Serial.begin(9600);
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(LED, OUTPUT);
  //Initialize the Blynk library
  Blynk.begin(auth, ssid, pass, "blynk.cloud", 80);
  dht.begin();
  timer.setInterval(1000L, myTimerEvent);
}

void loop() {
  //Run the Blynk library
  Blynk.run();
  timer.run();

}