ESP8266 Uhrzeit von Zeitserver ermitteln
In diesem Artikel zeige ich Dir, wie Du mit einem ESP8266 oder Arduino-Mikrocontroller die aktuelle Uhrzeit von einem Zeitserver ermitteln kannst.
Für ein ESP8266-Projekte musste ich die aktuelle Uhrzeit ermitteln. Da ich für das Projekt keine zusätzliche Hardware verbauen wollte, entschied ich mich dafür eine einfache Zeit-Ermittlung über einen Zeit-Server zu implementierten. Die Arduino-Umgebung stellt hierfür bereits eine integrierte Bibliothek zur Verfügung, mit der diese Ermittlung einfach umgesetzt werden kann. Im folgenden Code-Beispiel zeige ich Dir, wie Du die Uhrzeit und das Datum auslesen kannst.
#include <ESP8266WiFi.h> #include <time.h> WiFiClient espClient; const char* wifi_ssid = "<WIFI-SSID>"; const char* wifi_password = "<WIFI-PWD>"; char tmp[50]; char time_value[20]; void setup() { Serial.begin(9600); // WIFI-Verbindung aufbauen WiFi.begin(wifi_ssid, wifi_password); // Aktuelle Uhrzeit über den Zeit-Server ermitteln configTime(2 * 3600, 0, "0.de.pool.ntp.org", "ptbtime1.ptb.de"); while (WiFi.status() != WL_CONNECTED) { delay(500); } delay(1000); } void loop() { time_t now = time(nullptr); String time = String(ctime(&now)); time.trim(); time.substring(0,19).toCharArray(time_value, 20); Serial.print("Uhrzeit: "); Serial.println(time_value); delay(5000); }
Update 25.01.2021:
Die Zeile 28 muss so lauten:
String time = String(ctime(&now));
Ich hoffe Dir gefällt dieser Artikel. Über Kommentare unterhalb des Artikels oder per E-Mail freue ich mich wie immer 🙂
Es kommt eine Fehlermeldung: ‚amp‘ was not declared in this scope
(Zeile 29)
Sorry, ein Fehler in einem Plugin der Webseite. Die Zeile 28 muss so lauten:
String time = String(ctime(&now));
LG Matthias