#define BLYNK_TEMPLATE_ID "TMPL6Y8UZ0xEB"
#define BLYNK_TEMPLATE_NAME "TR"
#define BLYNK_AUTH_TOKEN "l-bE9xVcK7ac0GnXRPXnQfvLAw9LZ9Sl"

#define relay 15
#include "DHTesp.h"
#include <BlynkSimpleEsp32.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
const int DHT_PIN = 5;
DHTesp dhtSensor;
float suhu;
float kelembapan;
BlynkTimer timer; 
//Kelembaban anggrek yang baik berkisar antara 60 – 80 %. Kelembaban tidak boleh terlalu tinggi saat
//malam hari dan tidak boleh terlalu rendah saat
//siang hari. Selain kelembaban,
//suhu tempat menanam anggrek juga harus terjaga. Suhu yang ideal untuk anggrek adalah :
//suhu siang antara 27 – 30 derajat celcius 
void BacaKirimSensor()
{
  TempAndHumidity data = dhtSensor.getTempAndHumidity();
  suhu = data.temperature;
  kelembapan = data.humidity;
  Blynk.virtualWrite(V1, suhu);
  Blynk.virtualWrite(V2, kelembapan);

  if (suhu < 27) {
    // Aktifkan relay jika suhu kurang dari 27
    digitalWrite(relay, HIGH);
  } else if (suhu >= 30) {
    // Matikan relay jika suhu lebih besar atau sama dengan 30
    digitalWrite(relay, LOW);
  }

  if (kelembapan < 60) {
    // Aktifkan relay jika kelembapan kurang dari 60%
    digitalWrite(relay, HIGH);
  } else if (kelembapan > 80) {
    // Matikan relay jika kelembapan lebih besar dari 80%
    digitalWrite(relay, LOW);
  }

   if (suhu < 27 && kelembapan < 60) {
  // Aktifkan relay jika suhu kurang dari 27 dan kelembapan kurang dari 60%
  digitalWrite(relay, HIGH);
} else {
  // Matikan relay jika kedua kondisi tidak terpenuhi
  digitalWrite(relay, LOW);
}

}

void setup() {
  dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
  Blynk.begin(auth, ssid, pass);
  timer.setInterval(1000L, BacaKirimSensor);
  pinMode(relay, OUTPUT);
  
}
void loop() {
  Blynk.run();
  timer.run();
}
NOCOMNCVCCGNDINLED1PWRRelay Module