/************************************************************************************************* PROGRAMMINFO ************************************************************************************************** Funktion: NTP ZEit mit formatierter Ausgabe ************************************************************************************************** Version: 22.06.2022 ************************************************************************************************** Board: ESP32vn IoT UNO ************************************************************************************************** Libraries: https://github.com/espressif/arduino-esp32/tree/master/libraries C:\Users\User\Documents\Arduino D:\gittemp\Arduino II\A156_Wetterdaten_V3 ************************************************************************************************** C++ Arduino IDE V1.8.19 ************************************************************************************************** Einstellungen: https://dl.espressif.com/dl/package_esp32_index.json http://dan.drown.org/stm32duino/package_STM32duino_index.json http://arduino.esp8266.com/stable/package_esp8266com_index.json **************************************************************************************************/ //#include #include #include #include //Hier muss die SSID & das Passwort des WLAN Netzwerkes eingetragen werden const char* ssid = "xxx"; const char* password = "xxx"; WiFiUDP ntpUDP; NTPClient timeClient(ntpUDP, "pool.ntp.org"); char* wochentage[7]={"Sonntag", "Montag", "Dienstag", "Mitwoch", "Donnerstag", "Freitag", "Samstag"}; void setup() { //beginn der seriellen Kommunikation mit 9600baud Serial.begin(115200); Serial.print("Verbinde mit "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi verbunden."); Serial.println("IP Addresse: "); Serial.println(WiFi.localIP()); //initialisieren des NTPClients um die Zeit auszulesen timeClient.begin(); //Offset in Sekunden zur GMT +/- 0 Zeitzone //Für Deutschland muss man 1h = 3600 Sekunden nehmen, //je nach Sommer- /Winterzeit muss noch zusätzlich eine 1h (also 3600 Sekunden) //auf diese Zeit draufaddiert werden. timeClient.setTimeOffset(7200); } void loop() { //aktualisieren des Zeitstempels timeClient.update(); //Zeitstempel auf der Sekunde genau //(Nicht zuverwechseln mit dem UNIX Timestamp welcher auf die Millisekunde genau ist.) unsigned long epochTime = timeClient.getEpochTime(); Serial.print("Epoch Time: "); Serial.println(epochTime); //Ausgabe des formatierten Zeitstempels String formattedTime = timeClient.getFormattedTime(); // Serial.print("formatierter Zeitstempel: "); // Serial.println(formattedTime); //einzelne Werte der Uhrzeit lesen int aktuellerTag = timeClient.getDay(); /* int aktuelleStunde = timeClient.getHours(); int aktuelleMinute = timeClient.getMinutes(); int aktuelleSekunde = timeClient.getSeconds(); */ delay(100); //reservieren eines char Arrays mit maximal 20 Zeichen char timestamp[20]; //Formatieren der Werte in einen String sprintf(timestamp,"Heute ist %s",wochentage[aktuellerTag]); //Ausgeben des Formatierten Strings auf der seriellen Schnittstelle Serial.print(timestamp); Serial.print(" "); Serial.println(formattedTime); delay(5000); }