#include <LiquidCrystal_I2C.h>
#include <RTClib.h>
LiquidCrystal_I2C lcd(0x27,20,4);
RTC_DS1307 rtc;
char daysOfTheWeek[7][12]={"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
lcd.init();
lcd.backlight();
if(! rtc.begin()){
Serial.print("Could not find RTC");
Serial.flush();
abort();
}
}
void loop() {
// this comments part only for serial status
// Serial.print("CURRENT STATUS :- ");
// Serial.println();
// Serial.print("DATE : ");
// Serial.print(now.year(),DEC);
// Serial.print('/');
// Serial.print(now.month(),DEC);
// Serial.print('/');
// Serial.print(now.day(),DEC);
// Serial.println();
// Serial.print("CURRENT DAY : ");
// Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
// Serial.println();
// Serial.print("CURRENT TIME : ");
// Serial.print(now.hour(),DEC);
// Serial.print(':');
// Serial.print(now.minute(),DEC);
// Serial.print(':');
// Serial.print(now.second(),DEC);
// byte status_1= status();
// byte status_2=date();
// byte status_3=day();
// byte status_4=time();
// lcd.setCursor(0, 0);
// lcd.print(status_1);
// lcd.setCursor(0, 1);
// lcd.print(status_2);
// lcd.setCursor(0, 2);
// lcd.print(status_3);
// lcd.setCursor(0, 3);
// lcd.print(status_4);
// Serial.println();
// Serial.println();
// delay(3000);
DateTime now = rtc.now();
// Build strings to display
String status_str = "CURRENT STATUS:- "; // example status
String date_str = "DATE: " + String(now.year()) + "/" + String(now.month()) + "/" + String(now.day());
String day_str = "DAY: " + String(daysOfTheWeek[now.dayOfTheWeek()]);
String time_str = "TIME: " + String(now.hour()) + ":" + String(now.minute()) + ":" + String(now.second());
//String time_str = "TIME: " + formatTime(now.hour(), now.minute(),now.second());
// Print to Serial Monitor (optional)
Serial.println(status_str);
Serial.println(date_str);
Serial.println(day_str);
Serial.println(time_str);
Serial.println();
// Print to LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(status_str);
lcd.setCursor(0, 1);
lcd.print(date_str);
lcd.setCursor(0, 2);
lcd.print(day_str);
lcd.setCursor(0, 3);
lcd.print(time_str);
delay(3000);
}
// Helper function to format time with leading zeros
// String formatTime(int h, int m, int s) {
// char timeBuf[9];
// sprintf(timeBuf, "%02d:%02d:%02d", h, m, s);
// return String(timeBuf);
// }