#include <DHT.h>
#include <LiquidCrystal.h>
// ====== DHT22 ======
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
// ====== RELAY ======
#define RELAY 8
// ====== LCD ======
LiquidCrystal lcd(12, 11, 5, 4, 3, 6);
void setup() {
Serial.begin(9600);
// Inisialisasi
dht.begin();
pinMode(RELAY, OUTPUT);
digitalWrite(RELAY, LOW);
lcd.begin(16, 2);
lcd.print("Monitoring");
delay(2000);
lcd.clear();
}
void loop() {
float suhu = dht.readTemperature();
// Cek error sensor
if (isnan(suhu)) {
Serial.println("Gagal membaca sensor!");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Sensor Error!");
delay(2000);
return;
}
// Serial Monitor
Serial.print("Suhu: ");
Serial.print(suhu);
Serial.println(" C");
// LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Suhu: ");
lcd.print(suhu);
lcd.print(" C");
// Logika kipas
lcd.setCursor(0, 1);
if (suhu >= 30) {
digitalWrite(RELAY, HIGH);
lcd.print("Kipas ON ");
Serial.println("Kipas ON");
} else {
digitalWrite(RELAY, LOW);
lcd.print("Kipas OFF");
Serial.println("Kipas OFF");
}
Serial.println("------------------");
delay(2000);
}