//============== HEADER ===================
//Koneksi Library DHT22
#include <DHT.h>
//Koneksi Library LCD
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
//Koneksi Library RTC
#include <RTClib.h>
//=============== DEKLARATOR =================
// Deklarasi LCD
#define I2C_ADDR 0x27 // Alamat I2C LCD, sesuaikan dengan alamat LCD Anda
LiquidCrystal_I2C lcd(I2C_ADDR, 16, 2); // Inisialisasi objek LCD
// Deklarasi DHT22
#define DHTPIN 2 // Pin data sensor DHT22 terhubung ke pin 2 pada Arduino
#define DHTTYPE DHT22 // Tipe sensor DHT22
DHT dht(DHTPIN, DHTTYPE);
// Deklarasi RTC
RTC_DS1307 rtc;
// Deklarasi LED
#define LAMPU_PIN 13 // Sesuaikan dengan pin yang Anda gunakan untuk mengontrol lampu
void setup()
{
dht.begin();
lcd.begin(16,2);
rtc.begin();
pinMode(LAMPU_PIN, OUTPUT);
digitalWrite(LAMPU_PIN, LOW);
}
void loop()
{
// BLOK RTC
DateTime waktu = rtc.now();
lcd.setCursor(0,0);// posisi atas
lcd.print(waktu.day(), DEC);
lcd.print('/');
lcd.print(waktu.month(), DEC);
lcd.print('/');
lcd.print(waktu.year(), DEC);
lcd.print(" ");
lcd.print(waktu.hour(), DEC);
lcd.print(':');
lcd.print(waktu.minute(), DEC);
// BLOK DHT22
int humidity = dht.readHumidity();
int temperature = dht.readTemperature();
lcd.setCursor(0,1);
lcd.print("H: ");
lcd.print(humidity);
lcd.print("%");
lcd.print(" T: ");
lcd.print(temperature);
lcd.print("C");
// BLOK KONTROL
if (temperature >= 25)
{
digitalWrite(LAMPU_PIN, HIGH); // Hidupkan lampu
}
else if (temperature < 30)
{
digitalWrite(LAMPU_PIN, LOW); // Matikan lampu
}
// DELAY 1 DETIK
delay(1000); // Menunggu 2 detik antara pembacaan
lcd.clear();
}