#define BLYNK_TEMPLATE_ID "TMPL6KKQc0xIj"
#define BLYNK_TEMPLATE_NAME "Monitoring suhu dan kontrol ruangan"
#define BLYNK_AUTH_TOKEN "J0jxEHc6DIIZ6_598rfvTRWCsjY7iVqi"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
char auth[] = "J0jxEHc6DIIZ6_598rfvTRWCsjY7iVqi";
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
int value0, value1, value2;
byte lampu = 18;
byte pendingin = 19;
byte pemanas = 21;
#define DHTPIN 5
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
BlynkTimer timer;
BLYNK_WRITE(V2) {
value0 = param.asInt();
digitalWrite(lampu, value0);
Blynk.virtualWrite(V2, value0);
sendSensor();
}
BLYNK_WRITE(V3) {
value1 = param.asInt();
digitalWrite(pendingin, value1);
Blynk.virtualWrite(V3, value1);
sendSensor();
}
BLYNK_WRITE(V4) {
value2 = param.asInt();
digitalWrite(pemanas, value2);
Blynk.virtualWrite(V4, value2);
sendSensor();
}
void setup(){
Serial.begin(115200);
pinMode(lampu, OUTPUT);
pinMode(pendingin, OUTPUT);
pinMode(pemanas, OUTPUT);
Blynk.begin(auth, ssid, pass);
dht.begin();
timer.setInterval(2500L, sendSensor);
}
void loop(){
Blynk.run();
timer.run();
}
void sendSensor(){
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Blynk.virtualWrite(V0, t);
Blynk.virtualWrite(V1, h);
Serial.print("Temperature : ");
Serial.print(t);
Serial.print(" Humidity : ");
Serial.println(h);
if(value0 == 1){
Blynk.virtualWrite(V2, 1);
} else {
Blynk.virtualWrite(V2, 0);
}
if(value1 == 1){
Blynk.virtualWrite(V3, 1);
} else {
Blynk.virtualWrite(V3, 0);
}
if(value2 == 1){
Blynk.virtualWrite(V4, 1);
} else {
Blynk.virtualWrite(V4, 0);
}
}