#define BLYNK_TEMPLATE_ID "TMPL6KjYSo8bO"
#define BLYNK_TEMPLATE_NAME "project"
#define BLYNK_AUTH_TOKEN "5oDXgs0I7MnMRKjpq5c0uVa4m4IgIpyz"

#define BLYNK_PRINT Serial

#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>

// Konfigurasi WiFi
char ssid[] = "Wokwi-GUEST";
char pass[] = "";

#define DHTPIN 23     // DHT sensor terhubung ke pin D23
#define DHTTYPE DHT22 // DHT 22 (AM2302)

DHT dht(DHTPIN, DHTTYPE);
BlynkTimer timer;

void sendSensor()
{ 
  pinMode(4, OUTPUT);
  float h = dht.readHumidity();
  float t = dht.readTemperature(); 

  if (isnan(h) || isnan(t)) {
    Serial.println("Gagal membaca dari sensor DHT!");
    return;
  }

  Blynk.virtualWrite(V0, t); 
  Blynk.virtualWrite(V1, h); 
  Serial.print("Suhu : ");
  Serial.print(t);
  Serial.print(" °C\t");
  Serial.print("Kelembaban : ");
  Serial.print(h);
  Serial.println(" %");
}

void setup()
{
  Serial.begin(115200);
  dht.begin();
  Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
  timer.setInterval(2000L, sendSensor);
}

void loop()
{
  Blynk.run();
  timer.run();
}
BLYNK_WRITE(V2) {
  int ledState = param.asInt();  // Membaca nilai dari Blynk (0 atau 1)
  digitalWrite(4, ledState); // Mengubah status LED
}