#include <RTClib.h>
#define BLYNK_TEMPLATE_ID "TMPL6hmr0RGL3"
#define BLYNK_TEMPLATE_NAME "Sistem Bel Otomatis"
#define BLYNK_AUTH_TOKEN "x4zMi8WhzmcQbB_-HSb4drajYT3p04q3"
#include <BlynkSimpleEsp32.h>
RTC_DS1307 rtc;
#define buzzerPin 19
int frekbuzzer = 150;
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
char auth [] = BLYNK_AUTH_TOKEN;
char ssid [] = "Wokwi-GUEST";
char pass [] = "";
Blynk.begin(BLYNK_AUTH_TOKEN, "Wokwi-GUEST", "");
pinMode(buzzerPin, OUTPUT);
if (! rtc.begin()){
Serial.println("RTC not Find");
Serial.flush();
abort();
}
}
void loop() {
Blynk.run();
DateTime now = rtc.now();
Serial.print("Hari/Tanggal: ");
Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
Serial.print(", ");
Serial.print(now.day(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.year(), DEC);
Serial.println();
Serial.print("Jam: ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
// Periksa apakah hari ini adalah Senin hingga Sabtu (2-7)
if (now.dayOfTheWeek() >= 2 && now.dayOfTheWeek() <= 7) {
// Periksa apakah waktu saat ini adalah 09:30
if (now.hour() == 9 && now.minute() == 52) {
// Aktifkan buzzer selama 60 detik
Serial.println();
Serial.print("Bel sedang berbunyi");
digitalWrite(buzzerPin, HIGH);
tone(buzzerPin, frekbuzzer);
delay(60000); // Buzzer menyala selama 60 detik
digitalWrite(buzzerPin, LOW); // Matikan buzzer
noTone(buzzerPin);
}
}
Serial.println();
delay(1000); // this speeds up the simulation
}