#include <Wire.h>
#include <RTClib.h>
RTC_DS3231 rtc;
const int relay1 = 2;
const int relay2 = 3;
const int relay3 = 4;
const int relay4 = 5;
const int relay5 = 6;
const int button1 = 7;
const int button2 = 8;
void setup() {
Serial.begin(9600);
Wire.begin();
rtc.begin();
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);
pinMode(relay4, OUTPUT);
pinMode(relay5, OUTPUT);
digitalWrite(relay1, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(relay3, HIGH);
digitalWrite(relay4, HIGH);
digitalWrite(relay5, LOW);
pinMode(button1, INPUT_PULLUP);
pinMode(button2, INPUT_PULLUP);
}
void loop() {
DateTime now = rtc.now();
int hour = now.hour();
int minute = now.minute();
int seconds = now.second();
// Check button 1 state
if (digitalRead(button1) == LOW) {
digitalWrite(relay1, LOW);
digitalWrite(relay2, LOW);
} else {
digitalWrite(relay1, HIGH);
digitalWrite(relay2, HIGH);
}
// Check button 2 state
if (digitalRead(button2) == LOW) {
digitalWrite(relay3, LOW);
digitalWrite(relay4, LOW);
} else {
digitalWrite(relay3, HIGH);
digitalWrite(relay4, HIGH);
}
if (hour == 6 && minute == 50 && seconds == 00) {
digitalWrite(relay1, LOW);
digitalWrite(relay2, LOW);
Serial.println("Opening Door");
delay(20000);
digitalWrite(relay1, HIGH);
digitalWrite(relay2, HIGH);
Serial.println("Stop Opening Door");
}
if (hour == 21 && minute == 15 && seconds == 00) {
digitalWrite(relay3, LOW);
digitalWrite(relay4, LOW);
Serial.println("Closing Door");
delay(20000);
digitalWrite(relay3, HIGH);
digitalWrite(relay4, HIGH);
Serial.println("Stop Closing Door");
}
if (hour == 19 && minute == 00 && seconds == 00) {
digitalWrite(relay5, HIGH);
Serial.println("Turning on the Lights");
}
if (hour == 21 && minute == 45 && seconds == 00) {
digitalWrite(relay5, LOW);
Serial.println("Turning off the Lights");
}
}