#define RELAY_PIN 18 // Pin relay ESP32
float suhu = 24;
void setup() {
Serial.begin(115200);
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, HIGH); // Relay OFF (Active LOW)
}
void loop() {
// Simulasi suhu (lebih variatif)
suhu += random(-8, 9) * 0.1;
suhu = constrain(suhu, 20, 40);
// Simulasi kelembaban
float kelembaban = 50 + random(-15, 16); // lebih variatif
kelembaban = constrain(kelembaban, 20, 80);
Serial.print("Suhu: ");
Serial.print(suhu);
Serial.print("°C | Kelembaban: ");
Serial.print(kelembaban);
Serial.println("%");
String kondisi;
// ===============================
// LOGIKA KATEGORI
// ===============================
// ---- BAIK (kondisi ideal) ----
if (suhu >= 23 && suhu <= 27 && kelembaban >= 40 && kelembaban <= 60) {
kondisi = "BAIK";
}
// ---- SEDANG (sedikit menyimpang) ----
else if ((suhu >= 21 && suhu < 23) || (suhu > 27 && suhu <= 30) ||
(kelembaban >= 35 && kelembaban < 40) || (kelembaban > 60 && kelembaban <= 70)) {
kondisi = "SEDANG";
}
// ---- BURUK (jauh dari standar) ----
else {
kondisi = "BURUK";
}
Serial.print("Kondisi Udara: ");
Serial.println(kondisi);
// Relay aktif hanya saat BURUK
if (kondisi == "BURUK") {
digitalWrite(RELAY_PIN, LOW); // Relay ON
} else {
digitalWrite(RELAY_PIN, HIGH); // Relay OFF
}
delay(2000);
}