#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();
}