/************************************************************************************************* PROGRAMMINFO ************************************************************************************************** Funktion: ESP32 WInternet Clock mit OLED Display 1,3" V2 ************************************************************************************************** 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 ************************************************************************************************** OLED Schriftarten: https://arduino-projekte.info/schriftarten-fuer-oled-display/#torussansbold8_8r **************************************************************************************************/ #include #include "time.h" const char* ssid = "xxx"; const char* password = "xxx"; const char* ntpServer = "de.pool.ntp.org"; const long gmtOffset_sec = 0; const int daylightOffset_sec = 7200; #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(); // Connect to Wi-Fi 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."); // Init and get the time configTime(gmtOffset_sec, daylightOffset_sec, ntpServer); printLocalTime(); //disconnect WiFi as it's no longer needed WiFi.disconnect(true); WiFi.mode(WIFI_OFF); } void loop(){ delay(1000); printLocalTime(); } void printLocalTime(){ struct tm timeinfo; if(!getLocalTime(&timeinfo)){ Serial.println("Failed to obtain time"); return; } Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S"); Serial.print("Day of week: "); Serial.println(&timeinfo, "%A"); Serial.print("Month: "); Serial.println(&timeinfo, "%B"); Serial.print("Day of Month: "); Serial.println(&timeinfo, "%d"); Serial.print("Year: "); Serial.println(&timeinfo, "%Y"); Serial.print("Hour: "); Serial.println(&timeinfo, "%H"); //Serial.print("Hour (12 hour format): "); //Serial.println(&timeinfo, "%I"); Serial.print("Minute: "); Serial.println(&timeinfo, "%M"); Serial.print("Second: "); Serial.println(&timeinfo, "%S"); Serial.println(); Serial.println("================================="); Serial.println("Internet Uhr"); u8g2.setFont(u8g2_font_courB12_tf); u8g2.firstPage(); do { u8g2.setCursor(10, 10); u8g2.print("Internet Clock"); //u8g2.setCursor(30, 22); //u8g2.print("Tegernsee"); u8g2.setFont(u8g2_font_courR10_tf); u8g2.setCursor(10, 30); u8g2.print(&timeinfo, "%A"); u8g2.setCursor(10, 45); u8g2.print(&timeinfo, "%d %B %Y"); u8g2.setCursor(10, 60); u8g2.print(&timeinfo, "%H:%M:%S"); } while ( u8g2.nextPage() ); delay(delayTime); }