#include <Wire.h>
#include <RTClib.h>
#include <LiquidCrystal_I2C.h>
RTC_DS1307 rtc;
LiquidCrystal_I2C lcd(0x27, 16, 2);
int buzzer = 8;
// Alarm time
int alarmHour = 10;
int alarmMinute = 30;
void setup() {
pinMode(buzzer, OUTPUT);
Serial.begin(96000);
lcd.init();
lcd.backlight();
rtc.begin();
// Set RTC time only once
// rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
void loop() {
DateTime now = rtc.now();
lcd.setCursor(0,0);
lcd.print("Time: ");
lcd.print(now.hour());
lcd.print(":");
lcd.print(now.minute());
lcd.print(":");
lcd.print(now.second());
// Alarm condition
if(now.hour() == alarmHour &&
now.minute() == alarmMinute)
{
digitalWrite(buzzer, HIGH);
lcd.setCursor(0,1);
lcd.print("ALARM ON ");
}
else
{
digitalWrite(buzzer, LOW);
lcd.setCursor(0,1);
lcd.print("Normal Mode");
}
delay(1000);
}