#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL6Y9brWk7E"
#define BLYNK_TEMPLATE_NAME "Quickstart Template"
#define BLYNK_AUTH_TOKEN "6_PEVuHT_aEHERfC2C0jTrgChQ06IzwV"
#include <BlynkSimpleEsp32.h>
#include <RTClib.h>
byte tanggal, bulan, jam, menit, detik;
int tahun;
RTC_DS1307 rtc;
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd (0x27, 16, 2);
#define buzzer 4
void setup() {
Serial.begin(115200);
Blynk.begin(BLYNK_AUTH_TOKEN, "Wokwi-GUEST", "");
lcd.init();
lcd.backlight();
pinMode(buzzer, OUTPUT);
if (!rtc.begin()) {
Serial.println("RTC Bermasalah, Silakan cek Koneksi");
Serial.flush();
abort();
}
// rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
void loop() {
Blynk.run();
DateTime now = rtc.now();
int tanggal = now.day();
int bulan = now.month();
int tahun = now.year();
int jam = now.hour();
int menit = now.minute();
int detik = now.second();
Serial.println(String() + tanggal + "-" + bulan + "-" + tahun );
Serial.println(String() + jam + ":" + menit + ":" + detik);
Serial.println();
lcd.setCursor(0,0);
lcd.print("Bel Otomatis");
lcd.setCursor(0,1);
lcd.print(String() + now.day() + "/" + now.month() + "/" + now.year());
lcd.print(" ");
lcd.print(String() + now.hour() + ":" + now.minute() + " ");
lcd.print(" ");
//Jadwal Bel Masuk Sekolah
if ( (jam == 7) && (menit == 29) && (detik == 59) ) {
bel_Suara();
lcd.setCursor(0, 0);
lcd.print("Bel Masuk");
}
//Jadwal Bel Istirahat 1
if ( (jam == 9) && (menit == 29) && (detik == 59) ) {
bel_Suara();
lcd.setCursor(0, 0);
lcd.print("Bel Istirahat 1 ");
}
//Jadwal Bel Istirahat 1 Selesai
if ( (jam == 10) && (menit == 29) && (detik == 59) ) {
bel_Suara();
lcd.setCursor(0, 0);
lcd.print("Bel Masuk");
}
//Jadwal Bel Istirahat 2
if ( (jam == 11) && (menit == 29) && (detik == 59) ) {
bel_Suara();
lcd.setCursor(0, 0);
lcd.print("Bel Istirahat 2");
}
//Jadwal Bel Istirahat 2 Selesai
if ( (jam == 13) && (menit == 29) && (detik == 29) ) {
bel_Suara();
lcd.setCursor(0, 0);
lcd.print("Bel Masuk");
}
delay(100);
}
void bel_Suara() {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("BEL BERBUNYI");
delay(3000);
digitalWrite(buzzer, HIGH);
delay(45000);
digitalWrite(buzzer, LOW);
lcd.clear();
}
BLYNK_WRITE(V3) {
byte pinValue = param.asInt();
Serial.println(pinValue);
if (pinValue == 1) {
bel_Suara();
}
}