#include <RTClib.h>
#include <Wire.h>
RTC_DS3231 rtc;
const int relayPin = 5; // Pin untuk relay
const int ledPin = 6; // Pin untuk LED
const int buttonPin = 7; // Pin untuk tombol reset
bool resetFlag = false;
void setup() {
pinMode(relayPin, OUTPUT);
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
Serial.begin(9600);
if (!rtc.begin()) {
Serial.println("Couldn't find RTC");
while (1);
}
if (rtc.lostPower()) {
Serial.println("RTC lost power, setting the time!");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
}
void loop() {
DateTime now = rtc.now();
// Cek waktu saat ini
if (now.hour() == 19 && now.minute() >= 10 && now.minute() < 11) {
digitalWrite(relayPin, HIGH);
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(relayPin, LOW);
digitalWrite(ledPin, LOW);
}
// Cek tombol reset
if (digitalRead(buttonPin) == LOW) {
resetFlag = true;
delay(200); // Debouncing
}
// Jika resetFlag true, reset RTC dan program
if (resetFlag) {
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
resetFlag = false;
}
delay(1000); // Delay 1 detik
}