#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "RTClib.h"
#define buzzer 7 //pin buzzer
LiquidCrystal_I2C lcd(0x27, 16, 2);
RTC_DS1307 rtc;
char daysOfTheWeek[7][12] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
void setup () {
pinMode(buzzer, OUTPUT);
Serial.begin(57600);
lcd.begin(16,2);
lcd.backlight();
lcd.setCursor(0,0);
delay(1000);
lcd.clear();
if (! rtc.begin()) {
lcd.print("Couldn't find RTC");
while (1);
}
if (! rtc.isrunning()) {
lcd.print("RTC not running");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
}
void loop () {
DateTime now = rtc.now();
lcd.setCursor(0, 0);
lcd.print(daysOfTheWeek[now.dayOfTheWeek()]); lcd.print(", ");
lcd.print(now.day(), DEC);
lcd.print('/');
lcd.print(now.month(), DEC);
lcd.print('/');
lcd.print(now.year(), DEC);
lcd.print(' ');
lcd.setCursor(0, 1);
if (now.hour()<10) lcd.print('0');
lcd.print(now.hour(), DEC);lcd.print(':');
if (now.minute()<10) lcd.print('0');
lcd.print(now.minute(), DEC); lcd.print(':');
if (now.second()<10) lcd.print('0');
lcd.print(now.second(), DEC);
lcd.setCursor(12, 0);
//setting Alarmnya (12:00) >> dapat disesuaikan jamnya
if (now.hour() == 12 && now.minute() == 00){
buzzer_on();
}
}
void buzzer_on() {
tone(buzzer, 1000); // Send 1KHz sound signal...
delay(500); // ...for 1 sec
noTone(buzzer); // Stop sound...
//digitalWrite(buzzer, HIGH); //untuk buzzer active low
delay(500); // ...for 1sec
}