#include "WiFi.h"
#include "NTPClient.h"
#include "WiFiUdp.h"
#include "LiquidCrystal_I2C.h"
#include "Wire.h"
#include "RTClib.h"
const long utcOffsetInSeconds = -4 * 3600;
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "pool.ntp.org", utcOffsetInSeconds);
RTC_DS1307 rtc;
const char* ssid = "Wokwi-GUEST";
const char* password = "";
LiquidCrystal_I2C lcd(0x27,20,4);
void setup() {
lcd.init(); //Inicia o display LCD
lcd.backlight(); //Liga o backlight do display LCD
Serial.begin(115200);
WiFi.begin(ssid, password);
delay(3000);
if (!rtc.begin()) {
Serial.println("Couldn't find RTC");
Serial.flush();
while (1) delay(10);
}
timeClient.begin();
timeClient.update();
if (WiFi.status() == WL_CONNECTED) {
rtc.adjust( DateTime(timeClient.getEpochTime()) );
}
}
void loop() {
DateTime now = rtc.now();
lcd.setCursor(0,0);
if(now.day() < 10)
lcd.print("0");
lcd.print(now.day());
lcd.print("/");
if(now.month() < 10)
lcd.print("0");
lcd.print(now.month());
lcd.print("/");
lcd.println(now.year());
lcd.setCursor(0,1);
if(now.hour() < 10)
lcd.print("0");
lcd.print(now.hour());
lcd.print(':');
if(now.minute() < 10)
lcd.print("0");
lcd.print(now.minute());
lcd.print(':');
if(now.second() < 10)
lcd.print("0");
lcd.println(now.second());
delay(1000);
}