#include <Wire.h>
#include <RTClib.h>
#include <LiquidCrystal_I2C.h>
#define buzzer 2 // Pin for the buzzer
LiquidCrystal_I2C lcd(0x27, 16, 2);
RTC_DS3231 rtc;
char daysOfTheWeek[7][12] = {"Sun", "Mon", "Tue", "Wed", "Thurs", "Fri", "Sat"};
int jam, menit, detik;
int tanggal, bulan, tahun;
String hari;
void setup() {
pinMode(buzzer, OUTPUT);
Wire.begin();
lcd.init();
lcd.backlight();
lcd.print("yes");
Serial.begin(9600);
delay(100);
lcd.clear();
if (!rtc.begin()) {
Serial.println("Couldn't find RTC");
Serial.flush();
while (1) delay(10);
}
}
void loop() {
// Variabel waktu
DateTime now = rtc.now();
jam = now.hour();
menit = now.minute();
detik = now.second();
tanggal = now.day();
bulan = now.month();
tahun = now.year();
hari = daysOfTheWeek[now.dayOfTheWeek()];
if (jam == alarmHour && menit == alarmMinute && detik == 0) {
playAlarm(); // untuk setting music
}
Serial.println(String() + hari + ", " + tanggal + "-" + bulan + "-" + tahun);
Serial.println(String() + jam + ":" + menit + ":" + detik);
Serial.println();
lcd.setCursor(0, 0);
lcd.print(String() + hari + "," + tanggal + "-" + bulan + "-" + tahun);
lcd.setCursor(0, 1);
lcd.print(String() + jam + ":" + menit + ":" + detik);
delay(1000);
lcd.clear();
}
void playAlarm() {
tone(buzzer, 1046);
delay(250);
tone(buzzer, 1244);
delay(250);
tone(buzzer, 1400);
delay(250);
tone(buzzer, 1510);
delay(250);
tone(buzzer, 1400);
delay(250);
tone(buzzer, 1244);
delay(250);
tone(buzzer, 1046);
delay(250);
noTone(buzzer);
delay(500);
tone(buzzer, 932);
delay(125);
tone(buzzer, 1174);
delay(125);
tone(buzzer, 1046);
delay(250);
noTone(buzzer);
delay(500);
tone(buzzer, 780);
delay(250);
tone(buzzer, 525);
delay(250);
noTone(buzzer);
delay(250);
// second part
tone(buzzer, 1046);
delay(250);
tone(buzzer, 1244);
delay(250);
tone(buzzer, 1400);
delay(250);
tone(buzzer, 1510);
delay(250);
tone(buzzer, 1400);
delay(250);
tone(buzzer, 1244);
delay(250);
tone(buzzer, 1400);
delay(250);
noTone(buzzer);
delay(750);
// fast part
tone(buzzer, 1510);
delay(125);
tone(buzzer, 1400);
delay(125);
tone(buzzer, 1244);
delay(125);
tone(buzzer, 1510);
delay(125);
tone(buzzer, 1400);
delay(125);
tone(buzzer, 1244);
delay(125);
tone(buzzer, 1510);
delay(125);
tone(buzzer, 1400);
delay(125);
tone(buzzer, 1244);
delay(125);
tone(buzzer, 1510);
delay(125);
tone(buzzer, 1400);
delay(125);
tone(buzzer, 1244);
delay(125);
tone(buzzer, 1510);
delay(125);
noTone(buzzer);
delay(500);
}