Example of using NTPClient_Generic
main.cpp
#include <Arduino.h> #include <WiFi.h> #include <NTPClient_Generic.h> #define TIME_ZONE_OFFSET_HRS 1 // UTC+1 for Germany, winter time #define NTP_UPDATE_INTERVAL_MS 60000L // Update every 60s automatically WiFiUDP ntpUDP; NTPClient ntpClient(ntpUDP, "europe.pool.ntp.org", (3600 * TIME_ZONE_OFFSET_HRS), NTP_UPDATE_INTERVAL_MS); void ntpUpdateTask(void* param) { while(true) { // Update NTP. This will only ACTUALLY update if // the NTP client has not updated for NTP_UPDATE_INTERVAL_MS ntpClient.update(); vTaskDelay(1000 / portTICK_PERIOD_MS); } } void setup() { Serial.begin(115200); // Force reset Wifi to avoid failure to connect WiFi.disconnect(true); // Set hostname WiFi.config(INADDR_NONE, INADDR_NONE, INADDR_NONE); WiFi.setHostname("ESP-NTP"); // Connect to Wifi WiFi.begin("MyWifiSSID", "MyWifiPassword"); while (WiFi.status() != WL_CONNECTED) { delay(100); Serial.println("Wifi connecting..."); } // Start NTP client (i.e. start listening for NTP packets) ntpClient.begin(); // Create task to automatically update NTP in the background xTaskCreate(ntpUpdateTask, "NTP update", 2000, nullptr, 1, nullptr); } void loop() { delay(1000); if (ntpClient.updated()) { Serial.println("# Time in sync with NTP server"); } else { Serial.println("# TIME NOT IN SYNC WITH NTP SERVER !"); return; // Do not print time } Serial.println("UTC : " + ntpClient.getFormattedUTCTime()); Serial.println("UTC : " + ntpClient.getFormattedUTCDateTime()); Serial.println("LOC : " + ntpClient.getFormattedTime()); }
platformio.ini
[env:nodemcu-32s] platform = espressif32 board = nodemcu-32s framework = arduino monitor_speed = 115200 lib_deps = khoih.prog/NTPClient_Generic @ ^3.2.2 Time
Example output:
Wifi connecting... Wifi connecting... Wifi connecting... # TIME NOT IN SYNC WITH NTP SERVER ! # Time in sync with NTP server UTC : 01:22:07 UTC : 01:22:07 Sun 07 Feb 2021 LOC : 02:22:07 # Time in sync with NTP server UTC : 01:22:08 UTC : 01:22:08 Sun 07 Feb 2021 LOC : 02:22:08 # Time in sync with NTP server UTC : 01:22:09 UTC : 01:22:09 Sun 07 Feb 2021 LOC : 02:22:09