Der ESP32-C3 kann sich beim Start automatisch mit deinem WLAN verbinden, was perfekt für IoT- und Smart-Home-Anwendungen ist. Mit einem kurzen MicroPython-Skript richtest du das in wenigen Zeilen ein. Unten findest du den kompletten Code, den du direkt einsetzen kannst.
Bittet beachtet das dieser Code nur für den ESP32 C3 gilt. Um den ESP32 C6 automatisch mit dem Wlan zu verbinden, brauchst du diesen Code.
boot.py
Folgenden code kopiert ihr über Thonny direkt in eure boot.py:
import time, network, gc try: from secrets import WIFI_SSID, WIFI_PASS except Exception: WIFI_SSID = WIFI_PASS = None try: from secrets import TZ_OFFSET_HOURS except Exception: TZ_OFFSET_HOURS = 0 def fmt_localtime(offset_hours=TZ_OFFSET_HOURS): t = time.localtime(time.time() + offset_hours*3600) y, mo, d, h, mi, s, *_ = t return "%04d-%02d-%02d %02d:%02d:%02d" % (y, mo, d, h, mi, s) def connect_wifi(ssid, password, timeout_ms=15000, attempts=3): wlan = network.WLAN(network.STA_IF) for attempt in range(1, attempts+1): try: wlan.active(False); time.sleep_ms(200) wlan.active(True); time.sleep_ms(200) # Power Management entschärfen (ESP32-C3 ist sonst oft zickig) try: wlan.config(pm=0xa11140) except: pass wlan.connect(ssid, password) start = time.ticks_ms() while (not wlan.isconnected() and time.ticks_diff(time.ticks_ms(), start) < timeout_ms): time.sleep_ms(200) if wlan.isconnected(): return wlan except OSError as e: print("WiFi Fehler, neuer Versuch:", e) wlan.active(False) gc.collect() time.sleep(1) return None def set_time_via_ntp(retries=3): import ntptime for i in range(retries): try: ntptime.settime() return True except Exception as e: time.sleep(1) return False # ====== Start ====== if not WIFI_SSID or not WIFI_PASS: print("WiFi: secrets.py fehlt oder ungueltig!") else: wlan = connect_wifi(WIFI_SSID, WIFI_PASS) if wlan and wlan.isconnected(): print("WiFi verbunden:", wlan.ifconfig()) if set_time_via_ntp(): print("UTC: ", "%04d-%02d-%02d %02d:%02d:%02d" % tuple(time.localtime()[:6])) print("Lokal: ", fmt_localtime()) else: print("NTP: keine Zeit erhalten.") else: print("WiFi: keine Verbindung")
secrets.py
Um unsere SSID und Passwort zu speichern, brauchen wir eine weitere Datei die wir auf dem ESP32 C3 speichern. Erstellt dazu die Datei secrets.py, tragt eure SSID sowie Passwort ein und speichert sie ab.
# secrets.py WIFI_SSID = "SSID" WIFI_PASS = "PASSWORT" # Optional: lokale Zeitzone relativ zu UTC (z. B. 1 = MEZ, 2/3 = Sommerzeit, etc.) TZ_OFFSET_HOURS = 0
Nach jedem Neustart verbindet sich euer ESP32-C3 automatisch mit dem WLAN, das ihr in der secrets.py hinterlegt habt. Dadurch ist der Microcontroller sofort einsatzbereit und ihr könnt direkt mit eurem Projekt starten. Ob ihr Sensordaten ins Netzwerk übertragt, ein IoT-Gerät steuert oder einfach einen zuverlässigen Zugriff benötigt, diese automatische Verbindung ist für viele Anwendungen sehr hilfreich.