ESP32-Wroom
#include "WiFi.h"
#include "time.h"
#include "TM1637.h"
TM1637 Anzeige(5, 17);
char Router[] = "Router_SSID";
char Passwort[] = "xxxxxxxx";
// NTP-Server aus dem Pool
#define Zeitserver "de.pool.ntp.org"
/*
Liste der Zeitzonen
https://github.com/nayarsystems/posix_tz_db/blob/master/zones.csv
Zeitzone CET = Central European Time -1 -> 1 Stunde zurück
CEST = Central European Summer Time von
M3 = März, 5.0 = Sonntag 5. Woche, 02 = 2 Uhr
bis M10 = Oktober, 5.0 = Sonntag 5. Woche 03 = 3 Uhr
*/
#define Zeitzone "CET-1CEST,M3.5.0/02,M10.5.0/03"
// time_t enthält die Anzahl der Sekunden seit dem 1.1.1970 0 Uhr
time_t aktuelleZeit;
/*
Struktur tm
tm_hour -> Stunde: 0 bis 23
tm_min -> Minuten: 0 bis 59
tm_sec -> Sekunden 0 bis 59
tm_mday -> Tag 1 bis 31
tm_wday -> Wochentag (0 = Sonntag, 6 = Samstag)
tm_mon -> Monat: 0 (Januar) bis 11 (Dezember)
tm_year -> Jahre seit 1900
tm_yday -> vergangene Tage seit 1. Januar des Jahres
tm_isdst -> Wert > 0 = Sommerzeit (dst = daylight saving time)
*/
tm Zeit;
WiFiServer Server(80);
// String für die Anzeige der Zeit
String ZeitAnzeige;
void setup()
{
// Zeitzone: Parameter für die zu ermittelnde Zeit
configTzTime(Zeitzone, Zeitserver);
Serial.begin(9600);
// auf serielle Verbindung warten
while (!Serial);
delay(1000);
// WiFi starten
WiFi.begin(Router, Passwort);
Serial.println("------------------------");
while (WiFi.status() != WL_CONNECTED)
{
delay(200);
Serial.print(".");
}
Serial.println();
Serial.print("Verbunden mit ");
Serial.println(Router);
Serial.print("IP über DHCP: ");
Serial.println(WiFi.localIP());
// Anzeige starten
Anzeige.begin();
// Helligkeit
Anzeige.setBrightness(10);
Anzeige.clearScreen();
}
void loop()
{
// aktuelle Zeit holen
time(&aktuelleZeit);
// localtime_r -> Zeit in die lokale Zeitzone setzen
localtime_r(&aktuelleZeit, &Zeit);
// : einschalten
Anzeige.colonOn();
/*
es kann bis zu 30 Sekunden dauern
bis die Zeit ermittelt wird
String ZeitAnzeige zusammenbauen
wenn Stunden/Minuten < 10 → führende 0 ergänzen
*/
if (Zeit.tm_hour < 10) ZeitAnzeige = "0" + String(Zeit.tm_hour);
else ZeitAnzeige = String(Zeit.tm_hour);
if (Zeit.tm_min < 10) ZeitAnzeige += "0" + String(Zeit.tm_min);
else ZeitAnzeige += String(Zeit.tm_min);
Anzeige.display(ZeitAnzeige);
delay(5000);
}
ESP32-C6
#include "WiFi.h"
#include "time.h"
#include "TM1637.h"
TM1637 Anzeige(15, 23);
char Router[] = "Router_SSID";
char Passwort[] = "xxxxxxxx";
// NTP-Server aus dem Pool
#define Zeitserver "de.pool.ntp.org"
/*
Liste der Zeitzonen
https://github.com/nayarsystems/posix_tz_db/blob/master/zones.csv
Zeitzone CET = Central European Time -1 -> 1 Stunde zurück
CEST = Central European Summer Time von
M3 = März, 5.0 = Sonntag 5. Woche, 02 = 2 Uhr
bis M10 = Oktober, 5.0 = Sonntag 5. Woche 03 = 3 Uhr
*/
#define Zeitzone "CET-1CEST,M3.5.0/02,M10.5.0/03"
// time_t enthält die Anzahl der Sekunden seit dem 1.1.1970 0 Uhr
time_t aktuelleZeit;
/*
Struktur tm
tm_hour -> Stunde: 0 bis 23
tm_min -> Minuten: 0 bis 59
tm_sec -> Sekunden 0 bis 59
tm_mday -> Tag 1 bis 31
tm_wday -> Wochentag (0 = Sonntag, 6 = Samstag)
tm_mon -> Monat: 0 (Januar) bis 11 (Dezember)
tm_year -> Jahre seit 1900
tm_yday -> vergangene Tage seit 1. Januar des Jahres
tm_isdst -> Wert > 0 = Sommerzeit (dst = daylight saving time)
*/
tm Zeit;
WiFiServer Server(80);
// String für die Anzeige der Zeit
String ZeitAnzeige;
void setup()
{
// Zeitzone: Parameter für die zu ermittelnde Zeit
configTzTime(Zeitzone, Zeitserver);
Serial.begin(9600);
// auf serielle Verbindung warten
while (!Serial);
delay(1000);
// WiFi starten
WiFi.begin(Router, Passwort);
Serial.println("------------------------");
while (WiFi.status() != WL_CONNECTED)
{
delay(200);
Serial.print(".");
}
Serial.println();
Serial.print("Verbunden mit ");
Serial.println(Router);
Serial.print("IP über DHCP: ");
Serial.println(WiFi.localIP());
// Anzeige starten
Anzeige.begin();
// Helligkeit
Anzeige.setBrightness(10);
Anzeige.clearScreen();
}
void loop()
{
// aktuelle Zeit holen
time(&aktuelleZeit);
// localtime_r -> Zeit in die lokale Zeitzone setzen
localtime_r(&aktuelleZeit, &Zeit);
// : einschalten
Anzeige.colonOn();
/*
es kann bis zu 30 Sekunden dauern
bis die Zeit ermittelt wird
String ZeitAnzeige zusammenbauen
wenn Stunden/Minuten < 10 → führende 0 ergänzen
*/
if (Zeit.tm_hour < 10) ZeitAnzeige = "0" + String(Zeit.tm_hour);
else ZeitAnzeige = String(Zeit.tm_hour);
if (Zeit.tm_min < 10) ZeitAnzeige += "0" + String(Zeit.tm_min);
else ZeitAnzeige += String(Zeit.tm_min);
Anzeige.display(ZeitAnzeige);
delay(5000);
}
XIAO-ESP32-C3
#include "WiFi.h"
#include "time.h"
#include "TM1637.h"
TM1637 Anzeige(D3, D4);
// Router/Passwort
char Router[] = "Router_SSID";
char Passwort[] = "xxxxxxxx";
// NTP-Server aus dem Pool
#define Zeitserver "de.pool.ntp.org"
/*
Liste der Zeitzonen
https://github.com/nayarsystems/posix_tz_db/blob/master/zones.csv
Zeitzone CET = Central European Time -1 -> 1 Stunde zurück
CEST = Central European Summer Time von
M3 = März, 5.0 = Sonntag 5. Woche, 02 = 2 Uhr
bis M10 = Oktober, 5.0 = Sonntag 5. Woche 03 = 3 Uhr
*/
#define Zeitzone "CET-1CEST,M3.5.0/02,M10.5.0/03"
// time_t enthält die Anzahl der Sekunden seit dem 1.1.1970 0 Uhr
time_t aktuelleZeit;
/*
Struktur tm
tm_hour -> Stunde: 0 bis 23
tm_min -> Minuten: 0 bis 59
tm_sec -> Sekunden 0 bis 59
tm_mday -> Tag 1 bis 31
tm_wday -> Wochentag (0 = Sonntag, 6 = Samstag)
tm_mon -> Monat: 0 (Januar) bis 11 (Dezember)
tm_year -> Jahre seit 1900
tm_yday -> vergangene Tage seit 1. Januar des Jahres
tm_isdst -> Wert > 0 = Sommerzeit (dst = daylight saving time)
*/
tm Zeit;
WiFiServer Server(80);
// String für die Anzeige der Zeit
String ZeitAnzeige;
void setup()
{
// Zeitzone: Parameter für die zu ermittelnde Zeit
configTzTime(Zeitzone, Zeitserver);
Serial.begin(9600);
// auf serielle Verbindung warten
while (!Serial);
delay(1000);
// WiFi starten
WiFi.begin(Router, Passwort);
Serial.println("------------------------");
while (WiFi.status() != WL_CONNECTED)
{
delay(200);
Serial.print(".");
}
Serial.println();
Serial.print("Verbunden mit ");
Serial.println(Router);
Serial.print("IP über DHCP: ");
Serial.println(WiFi.localIP());
// Anzeige starten
Anzeige.begin();
// Helligkeit
Anzeige.setBrightness(10);
Anzeige.clearScreen();
}
void loop()
{
// aktuelle Zeit holen
time(&aktuelleZeit);
// localtime_r -> Zeit in die lokale Zeitzone setzen
localtime_r(&aktuelleZeit, &Zeit);
// : einschalten
Anzeige.colonOn();
/*
es kann bis zu 30 Sekunden dauern
bis die Zeit ermittelt wird
String ZeitAnzeige zusammenbauen
wenn Stunden/Minuten < 10 → führende 0 ergänzen
*/
if (Zeit.tm_hour < 10) ZeitAnzeige = "0" + String(Zeit.tm_hour);
else ZeitAnzeige = String(Zeit.tm_hour);
if (Zeit.tm_min < 10) ZeitAnzeige += "0" + String(Zeit.tm_min);
else ZeitAnzeige += String(Zeit.tm_min);
Anzeige.display(ZeitAnzeige);
delay(5000);
}
Wemos D1 Mini
#include "ESP8266WiFi.h"
#include "time.h"
#include "TM1637.h"
TM1637 Anzeige(D3, D4);
// Router/Passwort
char Router[] = "Router_SSID";
char Passwort[] = "xxxxxxxx";
// NTP-Server aus dem Pool
#define Zeitserver "de.pool.ntp.org"
/*
Liste der Zeitzonen
https://github.com/nayarsystems/posix_tz_db/blob/master/zones.csv
Zeitzone CET = Central European Time -1 -> 1 Stunde zurück
CEST = Central European Summer Time von
M3 = März, 5.0 = Sonntag 5. Woche, 02 = 2 Uhr
bis M10 = Oktober, 5.0 = Sonntag 5. Woche 03 = 3 Uhr
*/
#define Zeitzone "CET-1CEST,M3.5.0/02,M10.5.0/03"
// time_t enthält die Anzahl der Sekunden seit dem 1.1.1970 0 Uhr
time_t aktuelleZeit;
/*
Struktur tm
tm_hour -> Stunde: 0 bis 23
tm_min -> Minuten: 0 bis 59
tm_sec -> Sekunden 0 bis 59
tm_mday -> Tag 1 bis 31
tm_wday -> Wochentag (0 = Sonntag, 6 = Samstag)
tm_mon -> Monat: 0 (Januar) bis 11 (Dezember)
tm_year -> Jahre seit 1900
tm_yday -> vergangene Tage seit 1. Januar des Jahres
tm_isdst -> Wert > 0 = Sommerzeit (dst = daylight saving time)
*/
tm Zeit;
WiFiServer Server(80);
// String für die Anzeige der Zeit
String ZeitAnzeige;
void setup()
{
// Zeitzone: Parameter für die zu ermittelnde Zeit
configTzTime(Zeitzone, Zeitserver);
Serial.begin(9600);
// auf serielle Verbindung warten
while (!Serial);
delay(1000);
// WiFi starten
WiFi.begin(Router, Passwort);
Serial.println("------------------------");
while (WiFi.status() != WL_CONNECTED)
{
delay(200);
Serial.print(".");
}
Serial.println();
Serial.print("Verbunden mit ");
Serial.println(Router);
Serial.print("IP über DHCP: ");
Serial.println(WiFi.localIP());
// Anzeige starten
Anzeige.begin();
// Helligkeit
Anzeige.setBrightness(10);
Anzeige.clearScreen();
}
void loop()
{
// aktuelle Zeit holen
time(&aktuelleZeit);
// localtime_r -> Zeit in die lokale Zeitzone setzen
localtime_r(&aktuelleZeit, &Zeit);
// : einschalten
Anzeige.colonOn();
/*
es kann bis zu 30 Sekunden dauern
bis die Zeit ermittelt wird
String ZeitAnzeige zusammenbauen
wenn Stunden/Minuten < 10 → führende 0 ergänzen
*/
if (Zeit.tm_hour < 10) ZeitAnzeige = "0" + String(Zeit.tm_hour);
else ZeitAnzeige = String(Zeit.tm_hour);
if (Zeit.tm_min < 10) ZeitAnzeige += "0" + String(Zeit.tm_min);
else ZeitAnzeige += String(Zeit.tm_min);
Anzeige.display(ZeitAnzeige);
delay(5000);
}
Arduino UNO R4 WiFi
Zusätzliche Bibliothek installieren
#include "WiFiS3.h"
#include "NTP.h"
#include "TM1637.h"
TM1637 Anzeige(3, 4);
// Router/Passwort
char Router[] = "Router_SSID";
char Passwort[] = "xxxxxxxx";
WiFiUDP wifiUdp;
NTP ntp(wifiUdp);
WiFiServer Server(80);
// String für die Anzeige der Zeit
String ZeitAnzeige;
void setup()
{
// Sommerzeit/Normalzeit
ntp.ruleDST("CEST", Last, Sun, Mar, 2, 120);
ntp.ruleSTD("CET", Last, Sun, Oct, 3, 60);
// ntp starten Zeit aktualisieren
ntp.begin();
Serial.begin(9600);
// auf serielle Verbindung warten
while (!Serial);
delay(1000);
// WiFi starten
WiFi.begin(Router, Passwort);
Serial.println("------------------------");
while (WiFi.status() != WL_CONNECTED)
{
delay(200);
Serial.print(".");
}
Serial.println();
Serial.print("Verbunden mit ");
Serial.println(Router);
Serial.print("IP über DHCP: ");
Serial.println(WiFi.localIP());
// Anzeige starten
Anzeige.begin();
// Helligkeit
Anzeige.setBrightness(10);
Anzeige.clearScreen();
// : einschalten
Anzeige.colonOn();
}
void loop()
{
ntp.update();
/*
es kann bis zu 30 Sekunden dauern
bis die Zeit ermittelt wird
String ZeitAnzeige zusammenbauen
wenn Stunden/Minuten < 10 → führende 0 ergänzen
*/
if (ntp.hours() < 10) ZeitAnzeige = "0" + String(ntp.hours());
else ZeitAnzeige = String(ntp.hours());
if (ntp.minutes() < 10) ZeitAnzeige += "0" + String(ntp.minutes());
else ZeitAnzeige += String(ntp.minutes());
Anzeige.display(ZeitAnzeige);
delay(5000);
}
Letzte Aktualisierung: