#include <DHT.h>
#include <LiquidCrystal_I2C.h>
#define DHTPIN 2 // Pin data DHT22 terhubung ke pin 2
#define DHTTYPE DHT22 // Tipe sensor DHT
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 20, 4); // Inisialisasi LCD I2C dengan alamat 0x27
int relayPin = 10; // Pin Relay terhubung ke pin 10
int buzzerPin = 11; // Pin Buzzer terhubung ke pin 11
void setup() {
pinMode(relayPin, OUTPUT);
dht.begin();
lcd.init();
lcd.backlight();
}
void loop() {
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
lcd.clear(); // Hapus layar LCD
lcd.setCursor(0, 0);
lcd.print("Suhu: ");
lcd.print(temperature);
lcd.print(" C");
lcd.setCursor(0, 1);
lcd.print("kelembaban: ");
lcd.print(humidity);
lcd.print("%");
if (temperature > 40.0 && humidity > 28.0) {
digitalWrite(relayPin, LOW); // Matikan Relay
playBuzzerTune(); // Panggil fungsi untuk memainkan melodi pada buzzer
} else {
digitalWrite(relayPin, HIGH); // Nyalakan Relay
noTone(buzzerPin); // Matikan Buzzer
}
delay(2000); // Tunda selama 2 detik sebelum membaca sensor lagi
}
void playBuzzerTune() {
// Memainkan melodi pada buzzer
tone(buzzerPin, 2000, 500); // Melodi pertama
delay(1000);
tone(buzzerPin, 1000, 500); // Melodi kedua
delay(1000);
tone(buzzerPin, 1500, 500); // Melodi ketiga
delay(1000);
noTone(buzzerPin); // Matikan Buzzer
}