#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <WiFiClient.h>
#include <NTPClient.h>
#include <WiFiUdp.h>
const char* ssid = "***";
const char* pass = "***";
WiFiClient client;
//Zeitverschiebung UTC <-> MEZ (Winterzeit) = 3600 Sekunden (1 Stunde)
//Zeitverschiebung UTC <-> MEZ (Sommerzeit) = 7200 Sekunden (2 Stunden)
const long utcOffsetInSeconds = 3600;
//Week Day
String weekDays[7]={"Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"};
//Month names
String months[12]={"Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"};
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "pool.ntp.org", utcOffsetInSeconds);
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println(F("Connected to the WiFi network"));
delay(2000);
timeClient.begin();
timeClient.setTimeOffset(3600);
}
void loop() {
bool sync = timeClient.update();
if (sync) {
unsigned long epochTime = timeClient.getEpochTime();
struct tm *ptm = gmtime ((time_t *)&epochTime);
int monthDay = ptm->tm_mday;
// Serial.print(F("Tag: ")); Serial.println(monthDay);
int currentMonth = ptm->tm_mon+1;
// Serial.print(F("Monat: ")); Serial.println(currentMonth);
String currentMonthName = months[currentMonth-1];
// Serial.print(F("Monat name: ")); Serial.println(currentMonthName);
int currentYear = ptm->tm_year+1900;
// Serial.print("Jahr: "); Serial.println(currentYear);
String weekDay = weekDays[timeClient.getDay()];
// Serial.print("Week Day: "); Serial.println(weekDay);
String currentDate = String(weekDay) + " " + String(monthDay) + "-" + String(currentMonth) + "-" + String(currentYear);
Serial.print(currentDate);
Serial.print(F(" "));
Serial.println(timeClient.getFormattedTime());
}
delay(3000);
}