#include <LiquidCrystal_I2C.h>
#include <sntp.h>
#include <WiFi.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 20
#define LCD_LINES 4
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
uint32_t previous;
int bell_pin = 2;
const char* tz = "MYT-8"; //your timezone
void setup() {
// Init
lcd.init();
lcd.backlight();
pinMode(2, OUTPUT);
lcd.print("Connecting");
WiFi.begin("Wokwi-GUEST", "");
while (WiFi.status() != WL_CONNECTED) {
delay(100);
}
lcd.clear();
lcd.print("Connected!");
configTime(0,0,"2.pool.ntp.org");
setenv("TZ",tz,1);
}
void loop() {
time_t now = time(NULL);
struct tm *tmptr = localtime(&now);
if(micros() - previous >= 500000){
lcd.clear();
char buffer[30];
strftime(buffer, sizeof(buffer), "(%d-%m) %X", tmptr);
lcd.print(buffer);
previous = micros();
}
//add your timetable time here
if(tmptr->tm_hour == 7 && tmptr->tm_min == 0 && tmptr->tm_sec == 0){
digitalWrite(bell_pin,1);
}
if(tmptr->tm_hour == 7 && tmptr->tm_min == 0 && tmptr->tm_sec == 6){
digitalWrite(bell_pin,0);
}
}