NTP mit Ardui­no WiFi/Wemos D1 Seri­el­ler Monitor

// Arduino WiFi
// #include "WiFiNINA.h"
// #include "NTP.h"

// ESP8286
#include "ESP8266WiFi.h"
#include "WiFiUdp.h"
#include "NTP.h"

char Router[] = "FRITZ!Box 7590 LB";
char Passwort[] = "xxxxxxx ";

WiFiUDP wifiUdp;
NTP ntp(wifiUdp);

// Zeit bis zur nächsten Messung
static unsigned long GesicherteStartZeit = 0;
unsigned long Startzeit;
int Intervall = 5000;

void setup() 
{
  Serial.begin(9600);
  delay(500);

  // WiFi starten DHCP
  WiFi.begin(Router, Passwort);
  while (WiFi.status() != WL_CONNECTED) 
  {
    Serial.println("...");
    delay(500);
  }

  /*
    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);  // last sunday in october 3:00, timezone +60min (+1 GMT)
  ntp.begin();
}

void loop() 
{
  Startzeit = millis();
  if (Startzeit - GesicherteStartZeit > Intervall) 
  {
    // Startzeit zurücksetzen
    GesicherteStartZeit = Startzeit;
    Serial.print("Verbunden mit ");
    Serial.println(WiFi.SSID());

    // IP anzeigen
    Serial.print("IP: ");
    Serial.println(WiFi.localIP());

    // Zeit aktualisieren
    ntp.update();

    // Wochentag: int von 0 - 6
    switch (ntp.weekDay()) 
    {
      case 0:
        Serial.println("Sonntag");
        break;
      case 1:
        Serial.println("Montag");
        break;
      case 2:
        Serial.println("Dienstag");
        break;
      case 3:
        Serial.println("Mittwoch");
        break;
      case 4:
        Serial.println("Donnerstag");
        break;
      case 5:
        Serial.print("Freitag ");
        break;
      case 6:
        Serial.print("Samstag ");
        break;
    }

    Serial.print(ntp.day());
    Serial.print(". ");

    // Monatsnamen: int von 1 - 12
    switch (ntp.month()) 
    {
      case 1:
        Serial.print("Januar ");
        break;
      case 2:
        Serial.print("Februar ");
        break;
      case 3:
        Serial.print("März ");
        break;
      case 4:
        Serial.print("April ");
        break;
      case 5:
        Serial.print("Mai ");
        break;
      case 6:
        Serial.print("Juni ");
        break;
      case 7:
        Serial.print("Juli ");
        break;
      case 8:
        Serial.print("August ");
        break;
      case 9:
        Serial.print("September ");
        break;
      case 10:
        Serial.print("Oktober ");
        break;
      case 11:
        Serial.print("November ");
        break;
      case 12:
        Serial.print("Dezember ");
        break;
    }
    Serial.println(ntp.year());

    // Uhrzeit
    // führende 0 ergänzen
    if (ntp.hours() < 10) Serial.print("0");
    Serial.print(String(ntp.hours()) + ":");

    if (ntp.minutes() < 10) Serial.print("0");
    Serial.print(String(ntp.minutes()) + ":");

    if (ntp.seconds() < 10) Serial.print("0");
    Serial.println(String(ntp.seconds()) + " Uhr");
    Serial.println("-------------------");
  }
}

Letzte Aktualisierung: 25. Jul 2023 @ 19:19