Schlagwörter: Serieller Monitor


Ziel des Projekts
Mit der Bibliothek NTP sollen Datum und Zeit mit einem beliebigen Mikrocontroller mit WiFi-Funktion im Seriellen Monitor angezeigt werden-

Konfiguration der Mikrocontroller
- Arduino UNO R4 WiFi
- Arduino MKR WiFi 1010
- Arduino Nano 33 IoT
- ESP32-Wroom
- Arduino Nano ESP32
- ESP32-C6
- XIAO-ESP32-C3
- ESP32-C3 Zero
- ESP32-C3 Super Mini
- ESP32-C6 Zero
- Wemos D1 Mini
Das Programm
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 |
#ifdef ESP8266 #include "ESP8266WiFi.h" #include "WiFiUdp.h" #endif #ifdef ESP32 #include "WiFi.h" #include "WiFiUdp.h" #endif #ifdef ARDUINO_UNOR4_WIFI #include "WiFiS3.h" #include "WiFiUdp.h" #endif #ifdef ARDUINO_ARCH_SAMD #include "WiFiNINA.h" #endif #include "NTP3.h" WiFiUDP wifiUdp; NTP3 ntp(wifiUdp); // SSID und Passwort des Routers char Router[] = "Router_SSID"; char Passwort[] = "xxxxxxxx"; // beim Start des loop-Teils wird die Zeit einmalig synchronisiert volatile bool Start = true; unsigned long Zeitmessung = 0; int Sekunden; void setup() { Serial.begin(9600); delay(1000); // WiFi starten DHCP WiFi.begin(Router, Passwort); // nur ESP32 #ifdef ESP32 /* mode(WIFI_MODE_STA) -> WiFi-Mode Stations-Modus setSleep -> Powersafe aus setAutoReconnect -> automatisches Wiederverbinden nach Verlust der Internet-Verbindung syncRTC -> Internetzeit mit der Systemzeit des ESP32 synchronisieren */ WiFi.mode(WIFI_MODE_STA); WiFi.setSleep(false); WiFi.setAutoReconnect(true); ntp.syncRTC(true); #endif while(WiFi.status() != WL_CONNECTED) { delay(200); Serial.print("."); } /* Zeitzone CEST: Central European Summertime Beginn europäische Sommerzeit letzter Sonntag im März 2 Uhr GMT + 2 Stunden */ ntp.ruleDST("CEST", Last, Sun, Mar, 2, 120); // CET: Central European Time // Beginn Normalzeit letzter Sonntag im Oktober 3 Uhr GMT + 1 Stunde ntp.ruleSTD("CET", Last, Sun, Oct, 3, 60); // ntp starten ntp.begin(); Zeitmessung = millis() + 1000; } void loop() { // Start = true // -> Zeit einmalig beim Start synchronisieren // danach zur vollen Minute if (Start) { Start = false; ZeitAnzeigen(); } // Sekunden weiter zählen if (Zeitmessung < millis()) { Zeitmessung += 1000; Sekunden++; // nach 60 Sekunden Zeit aktualisieren if (Sekunden == 60) ZeitAnzeigen(); } } void ZeitAnzeigen() { if (ntp.update()) { // überprüfen ob die Zeit gültig ist if (ntp.isValid()) { Sekunden = ntp.seconds(); switch(ntp.weekDay()) { case 0: Serial.print("Sonntag"); break; case 1: Serial.print("Montag"); break; case 2: Serial.print("Dienstag"); break; case 3: Serial.print("Mittwoch"); break; case 4: Serial.print("Donnertag"); break; case 5: Serial.print("Freitag"); break; case 6: Serial.print("Samstag"); break; } Serial.print(", "); // Datum Serial.println(ntp.formattedTime("%d.%m.%Y")); // Zeit Serial.println(ntp.formattedTime("%H:%M Uhr")); } // Zeit ist nicht gültig else { // prüfen, ob WiFi verbunden ist while (WiFi.status() != WL_CONNECTED) { delay(200); Serial.print("."); } Start = true; } } // WiFi ist nicht verbunden else { // prüfen, ob WiFi verbunden ist while (WiFi.status() != WL_CONNECTED) { delay(200); Serial.print("."); } Start = true; } } |
Ähnliche Projekte
- Analoge Uhr mit BME280 auf ESP32 mit 3,5 Zoll/4 Zoll TFT
- Analoge Uhr mit TFT 240×240 Pixeln und RTC-Modul
- Analoge Uhr mit TFT-Shield und BME280
- Datum und Zeit mit time.h auf einem OLED anzeigen
- Datum und Zeit mit dem NTP-Protokoll auf einem OLED anzeigen
- Messwerte des DHT-Sensors und Zeit auf TFT anzeigen
- Stoppuhr
- Messwerte DHT-Sensor und Zeit auf Waveshare E-Ink 4,2 Zoll anzeigen
- Analoge Uhr mit TFT 240×240 Pixeln und WiFi
- Uhrzeit auf 4-fach LED-Matrix anzeigen
Letzte Aktualisierung: