#include <NTPClient.h> //https://github.com/arduino-libraries/NTPClient #include <WiFiUdp.h> #include <ESP8266WiFi.h> //for ESP8266 //#include <WiFi.h> //for ESP32 int timezone = -5; //hours, -5 for NY int dst = 60; //60 (minutes, for summer in some country) or 0 WiFiUDP ntpUDP; // You can specify the time server pool and the offset (in seconds, can be // changed later with setTimeOffset() ). Additionaly you can specify the // update interval (in milliseconds, can be changed using setUpdateInterval() ). NTPClient timeClient(ntpUDP, "us.pool.ntp.org", timezone*3600+dst*60, 24*60*60*1000/*update once a day*/); void setup() { Serial.begin(115200); while (!Serial) { ; } // wait for Serial port to connect. Needed for native USB port only Serial.println(); WiFi.begin("YOUR SSID", "YOUR PWD"); while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(250); } Serial.println(); Serial.print("WiFi connected with ip "); Serial.println(WiFi.localIP()); timeClient.begin(); } boolean gotUpdated = false; void loop() { timeClient.update(); Serial.printf("runtime: %dmS, SNTP EpochTime: %dS, NTP Time: ", millis(), timeClient.getEpochTime()); Serial.print(timeClient.getFormattedTime()); if ((!gotUpdated) && ((int32_t)timeClient.getEpochTime() > 30000)) { gotUpdated = true; Serial.print(" <-- NTP TIME UPDATED!!"); } Serial.println(); delay(1000); }