#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define DHTPIN 2 // Pin data DHT22 terhubung ke pin 2 Arduino
#define DHTTYPE DHT22 // Tipe sensor DHT (DHT22)
#define RELAY_PIN 7 // Pin relay terhubung ke pin 7 Arduino
#define LED_PIN 13 // Pin LED terhubung ke pin 13 Arduino (built-in LED)
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2); // Inisialisasi LCD I2C dengan alamat 0x27
void setup() {
dht.begin();
lcd.init();
lcd.backlight();
pinMode(RELAY_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW); // Matikan relay awal
digitalWrite(LED_PIN, LOW); // Matikan LED awal
lcd.setCursor(0, 0);
lcd.print("Pendeteksi Suhu");
lcd.setCursor(0, 1);
lcd.print("Siap...");
delay(2000);
}
void loop() {
float suhu = dht.readTemperature(); // Membaca suhu dari sensor DHT22
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Suhu: ");
lcd.print(suhu);
lcd.print(" C");
if (suhu >= 24.0) {
digitalWrite(RELAY_PIN, HIGH); // Aktifkan relay jika suhu lebih dari atau sama dengan 28 derajat Celsius
digitalWrite(LED_PIN, HIGH); // Nyalakan LED juga
lcd.setCursor(0, 1);
lcd.print("AC ON ");
} else {
digitalWrite(RELAY_PIN, LOW); // Matikan relay jika suhu di bawah 28 derajat Celsius
digitalWrite(LED_PIN, LOW); // Matikan LED juga
lcd.setCursor(0, 1);
lcd.print("AC OFF");
}
delay(2000); // Delay untuk menghindari pembacaan suhu yang terlalu sering
}