ESP8266ESP8266 - Einführung

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 🙂

Matthias Korte

Hauptberuflich Software-Entwickler und seit einigen Jahren Smart-Home Fan. Angefangen hat alles mit einem RaspberryMatic und einer schaltbaren Steckdose. Mittlerweile habe ich einige Steckdosen, Sensoren, und Thermostate sowie ioBroker zur Visualisierung im Einsatz.

4 Gedanken zu „ESP8266 Uhrzeit von Zeitserver ermitteln

  • Scherrers

    Es kommt eine Fehlermeldung: ‚amp‘ was not declared in this scope
    (Zeile 29)

    Antwort
    • Matthias Korte

      Sorry, ein Fehler in einem Plugin der Webseite. Die Zeile 28 muss so lauten:

      String time = String(ctime(&now));

      LG Matthias

      Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert