ESP32 C3 automatisch mit dem Wlan verbinden

ESP32 C3 automatisch mit Wlan beim booten verbinden – MicroPython Script

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.

 

Comments

No comments yet. Why don’t you start the discussion?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert