#include <DHT.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
int lampu1 = 13;
int lampu2 = 7;
int lampu3 = 12;
const int buzzerA = 4;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
pinMode(lampu1, OUTPUT);
pinMode(lampu2, OUTPUT);
pinMode(lampu3, OUTPUT);
pinMode(buzzerA, OUTPUT);
Serial.begin(9600);
dht.begin();
lcd.init();
lcd.backlight();
}
void loop() {
float suhu = dht.readTemperature();
if (isnan(suhu)) {
Serial.println("Gagal membaca sensor DHT22!");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Gagal membaca DHT");
return;
}
Serial.print("Suhu: ");
Serial.println(suhu);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Suhu: ");
lcd.print(suhu);
lcd.print(" C");
if (suhu > 45) {
digitalWrite(lampu1, HIGH);
digitalWrite(lampu2, LOW);
digitalWrite(lampu3, LOW);
tone(buzzerA, 1000);
delay(1000);
digitalWrite(lampu1, LOW);
digitalWrite(lampu2, HIGH);
digitalWrite(lampu3, LOW);
tone(buzzerA, 1000);
delay(1000);
digitalWrite(lampu1, LOW);
digitalWrite(lampu2, LOW);
digitalWrite(lampu3, HIGH);
tone(buzzerA, 1000);
delay(1000);
noTone(buzzerA);
} else {
digitalWrite(lampu1, HIGH);
digitalWrite(lampu2, LOW);
digitalWrite(lampu3, LOW);
delay(1000);
digitalWrite(lampu1, LOW);
digitalWrite(lampu2, HIGH);
digitalWrite(lampu3, LOW);
delay(1000);
digitalWrite(lampu1, LOW);
digitalWrite(lampu2, LOW);
digitalWrite(lampu3, HIGH);
delay(1000);
}
delay(2000); }