// https://www.efeitonerd.com.br/2021/04/data-e-hora-no-esp32-ntp.html //
#include <WiFi.h>
#include <Adafruit_GFX.h>
#include <Adafruit_ILI9341.h>
#include <NTPClient.h>
#include <WiFiUdp.h>
// Configurações da rede WiFi
const char* ssid = "Wokwi-GUEST";
const char* password = "";
// Definição dos pinos do ILI9341
#define TFT_CS 15
#define TFT_RST 4
#define TFT_DC 2
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);
// Configurações do NTP
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "pool.ntp.org", -3 * 3600, 60000); // UTC-3, ajustado para o Brasil
void setup() {
Serial.begin(115200);
// Inicializa o display ILI9341
tft.begin();
tft.setRotation(1); // Ajusta a orientação da tela
tft.fillScreen(ILI9341_BLACK); // Limpa a tela
// Conecta ao WiFi
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(2);
tft.setCursor(10, 10);
tft.println("Conectando ao WiFi...");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi conectado!");
// Conecta ao servidor NTP
timeClient.begin();
timeClient.update();
}
void loop() {
timeClient.update();
// Limpa a área onde será exibida a hora
tft.fillRect(10, 50, 220, 30, ILI9341_BLACK);
// Obtém a hora formatada
/*String currentTime = timeClient.getFormattedTime();*/
int minutes = timeClient.getMinutes();
// Exibe a hora no display TFT
tft.setTextColor(ILI9341_GREEN);
tft.setTextSize(3);
tft.setCursor(10, 50);
tft.print(minutes);
delay(1000); // Atualiza a cada segundo
}