/************************************************************************************************* PROGRAMMINFO ************************************************************************************************** Funktion: Internet Clock mit OLED Display 1,3" ************************************************************************************************** Version: 17.03.2022 ************************************************************************************************** Board: ESP32vn IoT UNO V1.0.4 ************************************************************************************************** C++ Arduino IDE V1.8.13 ************************************************************************************************** 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 #include const char* ssid = "xxx"; const char* password = "xxx"; WiFiUDP ntpUDP; NTPClient timeClient(ntpUDP); // Variablen String formattedDate; String dayStamp; String timeStamp; #include #include #ifdef U8X8_HAVE_HW_SPI #include #endif #ifdef U8X8_HAVE_HW_I2C #include #endif U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE); unsigned long delayTime; void setup() { Serial.begin(115200); u8g2.begin(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected."); Serial.println("IP address: "); Serial.println(WiFi.localIP()); // NTPClient Zeit timeClient.begin(); // Zeitzonen Offset // GMT +1 = 3600 // GMT +8 = 28800 // GMT -1 = -3600 // GMT 0 = 0 timeClient.setTimeOffset(3600); } void loop() { while(!timeClient.update()) { timeClient.forceUpdate(); } // Eingehendes Format // 2018-05-28T16:00:13Z // Extrahiere Zeit und Datum formattedDate = timeClient.getFormattedDate(); Serial.println(formattedDate); // Extrahiere Datum int splitT = formattedDate.indexOf("T"); dayStamp = formattedDate.substring(0, splitT); Serial.print("Datum: "); Serial.println(dayStamp); // Extrahiere Zeit timeStamp = formattedDate.substring(splitT+1, formattedDate.length()-1); Serial.print("Uhrzeit: "); Serial.println(timeStamp); delay(1000); Serial.println("================================="); Serial.println("Internet Clock"); u8g2.setFont(u8g2_font_courR10_tf); u8g2.firstPage(); do { u8g2.setCursor(1, 10); u8g2.print("Internet Clock"); //u8g2.setCursor(30, 22); //u8g2.print("Tegernsee"); u8g2.setFont(u8g2_font_courR14_tf); u8g2.setCursor(10, 35); u8g2.print(dayStamp); u8g2.setCursor(20, 55); u8g2.print(timeStamp); } while ( u8g2.nextPage() ); delay(delayTime); }