#include "RTClib.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
RTC_DS3231 rtc;
char daysOfTheWeek[7][12] = {"Ahad", "Senin", "Selasa", "Rabu", "Kamis", "Jum'at", "Sabtu"};
int jam, menit, detik;
int tanggal, bulan, tahun;
String hari;
int alarmHour = 12; // Jam alarm (sesuaikan dengan waktu yang Anda inginkan)
int alarmMinute = 22; // Menit alarm (sesuaikan dengan waktu yang Anda inginkan)
const int buzzerPin = 12;
int song [] = {};
void setup () {
Serial.begin(9600);
if (!rtc.begin()) {
Serial.println("Couldn't find RTC");
Serial.flush();
while (1) delay(10);
}
lcd.init();
lcd.backlight();
pinMode(buzzerPin, OUTPUT);
digitalWrite(buzzerPin, LOW); // Matikan buzzer saat booting
}
void loop () {
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()];
Serial.println(String() + hari + ", " + tanggal + "-" + bulan + "-" + tahun);
Serial.println(String() + jam + "-" + menit + "-" + detik);
Serial.println();
delay(1000);
lcd.setCursor(1, 0);
lcd.print(String() + "Waktu: " + jam + ":" + menit + ":" + detik);
// Tampilkan tanggal di layar LCD
lcd.setCursor(0, 1);
lcd.print(String() + hari + "-" + tanggal + "-" + bulan + "-" + tahun);
// Periksa apakah saat ini sama dengan waktu alarm
if (detik == 1) {
activateAlarm();
tone(12, 1000);
}
if (detik == 10) {
activateAlarm();
noTone(12);
}
}
void activateAlarm() {
tone( 12, 1000 ); // Hidupkan buzzer
delay(10000); // Bunyikan selama 1 detik (Anda dapat menyesuaikan durasi)
noTone(12); // Matikan buzzer
}