smarthome-tricks.de

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 🙂

Die mobile Version verlassen