#include <Wire.h>
#include <RTClib.h>
// Inisialisasi objek RTC
RTC_DS1307 rtc;
// Definisikan pin untuk lampu dalam ruangan dan luar ruangan
const int pinLampuDalam = 2;
const int pinLampuLuar = 3;
void setup() {
// Inisialisasi serial monitor
Serial.begin(9600);
// Inisialisasi pin untuk lampu sebagai output
pinMode(pinLampuDalam, OUTPUT);
pinMode(pinLampuLuar, OUTPUT);
// Inisialisasi RTC
if (!rtc.begin()) {
Serial.println("RTC tidak ditemukan!");
while (1);
}
// Jika RTC tidak diatur, atur waktu (hanya perlu dilakukan sekali)
if (!rtc.isrunning()) {
// Set waktu ke 1 Januari 2023, jam 00:00:00
rtc.adjust(DateTime(2023, 1, 1, 0, 0, 0));
}
}
void loop() {
// Ambil waktu dari RTC
DateTime now = rtc.now();
// Tampilkan waktu di serial monitor
Serial.print("Waktu: ");
Serial.print(now.hour());
Serial.print(":");
Serial.print(now.minute());
Serial.print(":");
Serial.println(now.second());
// Atur lampu dalam ruangan
if (now.hour() >= 6 && now.hour() < 18) {
digitalWrite(pinLampuDalam, HIGH); // Nyalakan lampu dalam ruangan
digitalWrite(pinLampuLuar, LOW); // Matikan lampu luar ruangan
} else {
digitalWrite(pinLampuDalam, LOW); // Matikan lampu dalam ruangan
digitalWrite(pinLampuLuar, HIGH); // Nyalakan lampu luar ruangan
}
// Delay untuk menghindari pembacaan yang terlalu cepat
delay(1000);
}