#include "DHT.h"
#define DHTPIN 27 // pin data DHT22
#define DHTTYPE DHT22
#define LDRPIN 34 // pin analog LDR
#define LEDPIN 26 // LED sebagai kipas
DHT dht(DHTPIN, DHTTYPE);
int LDR_THRESHOLD = 200; // semakin kecil, semakin gelap
float TEMP_THRESHOLD = 30.0; // suhu batas nyalanya LED (°C)
void setup() {
Serial.begin(115200);
dht.begin();
pinMode(LEDPIN, OUTPUT);
digitalWrite(LEDPIN, LOW);
Serial.println("=== Greenhouse Monitor (ESP32 + LDR + DHT22) ===");
Serial.println("LED menyala jika cahaya > ambang dan suhu > 30°C");
}
void loop() {
// Baca sensor
int ldrValue = analogRead(LDRPIN); // 0–4095
float temp = dht.readTemperature(); // °C
float hum = dht.readHumidity(); // %
bool bright = (ldrValue > LDR_THRESHOLD);
bool hot = (!isnan(temp) && temp > TEMP_THRESHOLD);
// Logika event
if (bright && hot) {
digitalWrite(LEDPIN, HIGH);
Serial.println("[EVENT] Cahaya & suhu tinggi → Fan ON (LED ON)");
} else {
digitalWrite(LEDPIN, LOW);
Serial.println("[OK] Kondisi normal → Fan OFF (LED OFF)");
}
// Tampilkan data sensor
Serial.print("LDR_ADC="); Serial.print(ldrValue);
Serial.print(" | Temp="); Serial.print(temp);
Serial.print("°C | Hum="); Serial.print(hum);
Serial.print("% | bright="); Serial.print(bright);
Serial.print(" | hot="); Serial.println(hot);
delay(2000); // update setiap 2 detik
}