WLAN-Verbindung und NTP-Zeitabfrage
Dieses Beispiel zeigt, wie das Lernboard eine Verbindung zu einem WLAN-Netzwerk herstellt und die aktuelle Zeit von einem NTP-Server (Network Time Protocol) abruft.
#Funktionsübersicht
- Verbindung mit einem WLAN-Netzwerk herstellen
- Systemzeit über einen NTP-Server synchronisieren
- Aktuelle Zeit alle 5 Sekunden auf der Konsole ausgeben
#Voraussetzungen
- Lernboard mit MicroPython
- Zugang zu einem WLAN-Netzwerk
- Internetzugang für NTP-Abfrage
#Code
"""
Lernboard Beispiel: WLAN-Verbindung und NTP-Zeitabfrage
========================================================
Dieses Beispiel zeigt:
- Verbindung mit einem WLAN-Netzwerk
- Synchronisation der Zeit über NTP
- Zyklische Ausgabe der aktuellen Zeit
"""
import network
import ntptime
import time
# WLAN-Zugangsdaten anpassen
WLAN_SSID = "DEIN_WLAN_NAME"
WLAN_PASSWORD = "DEIN_WLAN_PASSWORT"
# NTP-Server (optional, Standard ist "pool.ntp.org")
NTP_SERVER = "pool.ntp.org"
def connect_wlan():
"""Stellt eine Verbindung zum WLAN her."""
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if wlan.isconnected():
print("Bereits verbunden!")
return wlan
print(f"Verbinde mit WLAN '{WLAN_SSID}'...")
wlan.connect(WLAN_SSID, WLAN_PASSWORD)
# Warte auf Verbindung (max. 20 Sekunden)
timeout = 20
while not wlan.isconnected() and timeout > 0:
print(".", end="")
time.sleep(1)
timeout -= 1
if wlan.isconnected():
print("\nVerbunden!")
print(f"IP-Adresse: {wlan.ifconfig()[0]}")
return wlan
else:
print("\nVerbindung fehlgeschlagen!")
return None
def sync_time():
"""Synchronisiert die Zeit mit einem NTP-Server."""
try:
ntptime.host = NTP_SERVER
print(f"Synchronisiere Zeit mit {NTP_SERVER}...")
ntptime.settime()
print("Zeit erfolgreich synchronisiert!")
return True
except Exception as e:
print(f"NTP-Fehler: {e}")
return False
def format_time():
"""Formatiert die aktuelle Zeit als lesbaren String."""
t = time.localtime()
# Format: DD.MM.YYYY HH:MM:SS
return "{:02d}.{:02d}.{} {:02d}:{:02d}:{:02d}".format(
t[2], t[1], t[0], # Tag, Monat, Jahr
t[3], t[4], t[5] # Stunde, Minute, Sekunde
)
def main():
"""Hauptprogramm."""
print("=" * 40)
print("Lernboard - WLAN & NTP Beispiel")
print("=" * 40)
# WLAN verbinden
wlan = connect_wlan()
if not wlan:
return
# Zeit synchronisieren
if not sync_time():
print("Weiter ohne NTP-Synchronisation...")
print("\nZeitausgabe alle 5 Sekunden (Ctrl+C zum Beenden):")
print("-" * 40)
# Endlosschleife mit Zeitausgabe
try:
while True:
print(f"Aktuelle Zeit (UTC): {format_time()}")
time.sleep(5)
except KeyboardInterrupt:
print("\nProgramm beendet.")
wlan.disconnect()
wlan.active(False)
# Programm starten
if __name__ == "__main__":
main()
#Anpassungen
Vor dem Ausführen müssen die WLAN-Zugangsdaten angepasst werden:
WLAN_SSID = "DEIN_WLAN_NAME"
WLAN_PASSWORD = "DEIN_WLAN_PASSWORT"
#Konsolenausgabe
Nach dem Start erscheint folgende Ausgabe:
========================================
Lernboard - WLAN & NTP Beispiel
========================================
Verbinde mit WLAN 'MeinNetz'...
....
Verbunden!
IP-Adresse: 192.168.1.42
Synchronisiere Zeit mit pool.ntp.org...
Zeit erfolgreich synchronisiert!
Zeitausgabe alle 5 Sekunden (Ctrl+C zum Beenden):
----------------------------------------
Aktuelle Zeit (UTC): 27.12.2025 14:30:15
Aktuelle Zeit (UTC): 27.12.2025 14:30:20
Aktuelle Zeit (UTC): 27.12.2025 14:30:25
#Hinweise
- UTC-Zeit: NTP liefert die Zeit in UTC (koordinierte Weltzeit). Für Mitteleuropäische Zeit (MEZ) muss eine Stunde addiert werden, für Sommerzeit (MESZ) zwei Stunden.
- Timeout: Die Verbindung bricht nach 20 Sekunden ab, wenn kein WLAN gefunden wird.
- Beenden: Mit
Ctrl+Cwird das Programm sauber beendet und die WLAN-Verbindung getrennt.
#Erweiterungsmöglichkeiten
- Zeitzone für lokale Zeit implementieren
- Zeit auf einem Display anzeigen
- Automatische Reconnect-Funktion bei Verbindungsverlust