#define BLYNK_TEMPLATE_ID "TMPL60x9i8r_p"
#define BLYNK_TEMPLATE_NAME "UAS Kontrol Rumah Kaca"
#define BLYNK_AUTH_TOKEN "k7Fj_1qsU3rvtGoq9BKWvx3wQFJTzFqg"
#include <DHT.h>
#include <BlynkSimpleEsp32.h>

#define DHTPIN 4      // Pin tempat sensor DHT terhubung
#define DHTTYPE DHT22 // Tipe sensor DHT (DHT11 atau DHT22)
#define relayPin 5     // Pin tempat relay terhubung

DHT dht(DHTPIN, DHTTYPE);

char auth[] = "k7Fj_1qsU3rvtGoq9BKWvx3wQFJTzFqg";  // Ganti dengan token Blynk Anda
char ssid[] = "Wokwi-GUEST";
char pass[] = "";

void setup() {
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
  pinMode(relayPin, OUTPUT);

  // Inisialisasi sensor DHT
  dht.begin();
}

void loop() {
  Blynk.run();
  // Membaca suhu dan kelembapan dari sensor DHT
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();
 

  // Memeriksa apakah pembacaan suhu dan kelembapan valid
  if (isnan(humidity) || isnan(temperature)) {
    Serial.println("Gagal membaca dari sensor DHT");
    return;
  }

  Serial.print("Suhu: ");
  Serial.print(temperature);
  Serial.print(" °C | Kelembapan: ");
  Serial.print(humidity);
  Serial.println(" %");

  // Mengirim data suhu dan kelembapan ke Blynk
  Blynk.virtualWrite(V0, temperature); // Widget Blynk untuk suhu
  Blynk.virtualWrite(V1, humidity);    // Widget Blynk untuk kelembapan
  Blynk.virtualWrite(V2, relayPin); 
  // Mengatur kondisi untuk mengaktifkan relay berdasarkan suhu
  if (temperature > 25.0) {
    // Jika suhu lebih dari 25 °C, aktifkan relay (misalnya, untuk menyalakan kipas atau AC)
    digitalWrite(relayPin, HIGH);
  } else {
    // Jika suhu kurang dari atau sama dengan 25 °C, matikan relay
    digitalWrite(relayPin, LOW);
  }

  // Tunggu sebentar sebelum membaca sensor lagi
  delay(2000);
}
NOCOMNCVCCGNDINLED1PWRRelay Module