#define BLYNK_TEMPLATE_ID "TMPL6XDpWjwX4"
#define BLYNK_TEMPLATE_NAME "Monitoring dan Kontrol"
#define BLYNK_AUTH_TOKEN "lvtsBfIlnZ2ak4LC1PxUJJHrFH8h1Vkp"
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
#define DHTPIN 18 // Pin yang terhubung ke output sensor DHT22
#define DHTTYPE DHT22 // Tipe sensor DHT (DHT11, DHT22, DHT21)
#define LED_RED_PIN 13
#define LED_GREEN_PIN 12
#define LED_YELLOW_PIN 14
#define BUZZER_PIN 4
DHT dht(DHTPIN, DHTTYPE);
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
void setup() {
Serial.begin(9600);
pinMode(LED_RED_PIN, OUTPUT);
pinMode(LED_GREEN_PIN, OUTPUT);
pinMode(LED_YELLOW_PIN, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
dht.begin();
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
}
void loop() {
delay(2000);
float temperatureC = dht.readTemperature();
float temperatureF = temperatureC * 9.0 / 5.0 + 32.0;
float temperatureK = temperatureC + 273.15;
if (isnan(temperatureC)) {
Serial.println("Gagal membaca suhu!");
return;
}
Serial.print("Suhu: ");
Serial.println(temperatureC);
if (temperatureC < 30) {
digitalWrite(LED_GREEN_PIN, HIGH);
digitalWrite(LED_RED_PIN, HIGH);
digitalWrite(LED_YELLOW_PIN, HIGH);
digitalWrite(BUZZER_PIN, LOW);
Serial.println("Buzzer: Mati");
Blynk.virtualWrite(V0, "NORMAL");
} else if (temperatureC >= 30 && temperatureC < 36) {
digitalWrite(LED_GREEN_PIN, HIGH);
digitalWrite(LED_RED_PIN, HIGH);
digitalWrite(LED_YELLOW_PIN, LOW);
digitalWrite(BUZZER_PIN, LOW);
Serial.println("Buzzer: Mati");
Blynk.virtualWrite(V0, "PERINGATAN");
} else {
digitalWrite(LED_GREEN_PIN, LOW);
digitalWrite(LED_RED_PIN, HIGH);
digitalWrite(LED_YELLOW_PIN, LOW);
digitalWrite(BUZZER_PIN, HIGH);
Serial.println("Buzzer: Nyala");
Blynk.virtualWrite(V0, "BAHAYA");
}
Blynk.virtualWrite(V2, temperatureC);
Blynk.virtualWrite(V3, temperatureF);
Blynk.virtualWrite(V4, temperatureK);
}