/* PROGRAMMINFO Funktion: Datum und Uhzeit vom ntp Server auslesen. Über Variablen korrigierbar (Sommerzeit) Version: 05.03.2021 C++ Arduino IDE V1.8.13 Board: ESP32vn IoT UNO V1.0.4 Einstellungen: https://dl.espressif.com/dl/package_esp32_index.json http://dan.drown.org/stm32duino/package_STM32duino_index.json https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json Librarys - WiFi.h V0.16.1 */ #include #include "time.h" const char* ssid = "xxx"; const char* password = "xxx"; const char* ntpServer = "de.pool.ntp.org"; const long gmtOffset_sec = 3600; const int daylightOffset_sec = 3600; int second; int minute; int hour; int day; int month; int year; int weekday; long current; struct tm timeinfo; /* struct tm { int tm_sec; // Seconds [0,60]. int tm_min; // Minutes [0,59]. int tm_hour; // Hour [0,23]. int tm_mday; // Day of month [1,31]. int tm_mon; // Month of year [0,11]. int tm_year; // Years since 1900. int tm_wday; // Day of week [0,6] (Sunday =0). int tm_yday; // Day of year [0,365]. int tm_isdst; // Daylight Savings flag. } */ void printLocalTime() { if(!getLocalTime(&timeinfo)){ Serial.println("Es konnte keine Zeit ermittelt werden"); return; } Serial.print("Ausgelesenes Datum vom ntpServer: "); Serial.println(&timeinfo, "%A, %d %B %Y %H:%M:%S"); } void setup() { Serial.begin(115200); //WiFi Verbindung Serial.printf("Verbunden mit %s ", ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(" CONNECTED"); //init Datum Zeit configTime(gmtOffset_sec, daylightOffset_sec, ntpServer); printLocalTime(); //WiFi trennen, wenn es nicht mehr benötigt wird WiFi.disconnect(true); WiFi.mode(WIFI_OFF); } void loop() { delay(3000); printLocalTime(); second = timeinfo.tm_sec; minute = timeinfo.tm_min; hour = timeinfo.tm_hour; //Sommerzeit Korrktur: hour = timeinfo.tm_hour - 1; day = timeinfo.tm_mday; month = timeinfo.tm_mon + 1; year = timeinfo.tm_year + 1900; weekday = timeinfo.tm_wday + 1; Serial.print("Datum von den korrigierten Variablen: "); Serial.print(day); Serial.print("."); Serial.print(month); Serial.print("."); Serial.print(year); Serial.print(" - "); Serial.print(hour); Serial.print(":"); Serial.print(minute); Serial.print(":"); Serial.print(second); Serial.println(" Uhr"); Serial.println(); }