#include <WiFi.h>
#include "time.h" 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);

const char* ssid = "Wokwi-GUEST";
const char* password = "";

const char* ntpServer = "pool.ntp.org";
const long gmtOffset_sec = 3600*9;
const int daylightOffset_sec = 0;

void setup() {
  Serial.begin(115200);
  lcd.init();
  lcd.backlight();
  configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
 
  Serial.printf("Connecting to %s ", ssid);
  lcd.clear();
  lcd.print("Connecting to ");
  lcd.setCursor(0, 1);
  lcd.print(ssid);
  delay(1000);
  
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print("."); 
  }
  Serial.println("CONNECTED");
  lcd.clear();
  lcd.print("CONNECTED"); 
  delay(2000); 
}

void loop() {
  delay(1000);
  printLocalTime();
}

void printLocalTime() {
  struct tm timeinfo;
  if (!getLocalTime(&timeinfo)) {
    Serial.println("Failed to obtain time");
  return;
  }
  lcd.clear();
  lcd.print(&timeinfo, "%B %d %Y"); // May 15 2023
  lcd.setCursor(0, 1);
  lcd.print(&timeinfo, "%A %H:%M:%S"); // Monday 09:20:36
}