#include "WiFi.h"
#include <LiquidCrystal_I2C.h>

#define NTP_SERVER "pool.ntp.org"
#define UTC_OFFSET 0
#define UTC_OFFSET_DST 0

LiquidCrystal_I2C lcd(0x27,16,2);

void setup() {
  lcd.init();  
  lcd.backlight();

  Serial.begin(115200);
  Serial.print("Connecting to Wifi");
  WiFi.begin("Wokwi-GUEST", "");

  lcd.setCursor(0, 0);
  lcd.print("Connecting");
  lcd.setCursor(0, 1);
  lcd.print("to WiFi");
  
  while(WiFi.status() != WL_CONNECTED) {
    delay(200);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
  Serial.println("Updating time...");
  configTime(UTC_OFFSET, UTC_OFFSET_DST, NTP_SERVER);
}

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

void printLocalTime() {
  struct tm timeinfo;
  if(!getLocalTime(&timeinfo)) {
    Serial.println("Connection Error");
    return;
  }
  lcd.setCursor(0, 0);
  lcd.print("Online  ");
  lcd.print(&timeinfo, "%H:%M:%S");
  lcd.setCursor(0, 1);
  lcd.print(&timeinfo, "%d/%m/%Y   %Z");
}