Raspberry PI Pico 2w mit Wlan verbinden

Raspberry Pi Pico 2W automatisch mit Wlan verbinden

In diesem Tutorial zeige ich euch, wie ihr euren Raspberry Pi Pico 2W automatisch mit eurem WLAN verbindet. So könnt ihr sicherstellen, dass der Pico direkt beim Start eine Internetverbindung aufbaut, was ideal für IoT-Projekte oder Anwendungen, bei denen euer Mikrocontroller Daten ins Netzwerk senden oder empfangen soll.

Damit sich der Pico beim Booten automatisch mit eurem WLAN verbindet, müsst ihr das folgende Skript als main.py auf eurem Pico speichern:

Code

# main.py  MicroPython für Raspberry Pi Pico 2 W
import network
import time
import machine
import sys

# ==== WLAN Zugangsdaten ====
WIFI_SSID = "DEIN_SSID"
WIFI_PASSWORD = "DEIN_PASSWORT"
# Optional eigener Hostname im Router
HOSTNAME = "pico2w"

# ==== LED Setup ====
try:
    led = machine.Pin("LED", machine.Pin.OUT)
except Exception:
    # Fallback für Boards ohne "LED" Alias
    led = machine.Pin(25, machine.Pin.OUT)

def blink(times=1, delay=0.15):
    for _ in range(times):
        led.on()
        time.sleep(delay)
        led.off()
        time.sleep(delay)

def connect_wifi(timeout_s=15):
    """Stellt die WLAN-Verbindung her und gibt True bei Erfolg zurück."""
    wlan = network.WLAN(network.STA_IF)
    if hasattr(network, "hostname") and HOSTNAME:
        try:
            network.hostname(HOSTNAME)
        except Exception:
            pass

    if not wlan.active():
        wlan.active(True)

    # Bereits verbunden
    if wlan.isconnected():
        return True

    print("Verbinde mit WLAN:", WIFI_SSID)
    wlan.connect(WIFI_SSID, WIFI_PASSWORD)

    t0 = time.ticks_ms()
    while not wlan.isconnected():
        # Fortschritt anzeigen
        led.toggle()
        time.sleep(0.2)
        if time.ticks_diff(time.ticks_ms(), t0) > timeout_s * 1000:
            print("Zeitüberschreitung bei der WLAN-Verbindung")
            led.off()
            return False

    led.on()
    ip = wlan.ifconfig()[0]
    print("WLAN verbunden IP:", ip)
    return True

def ensure_connected(check_interval_s=5):
    """Dauerhaft sicherstellen, dass WLAN online bleibt."""
    wlan = network.WLAN(network.STA_IF)
    while True:
        if not wlan.isconnected():
            print("Verbindung verloren versuche neu zu verbinden")
            led.off()
            ok = connect_wifi(timeout_s=15)
            if ok:
                blink(times=2, delay=0.1)
        time.sleep(check_interval_s)

def main():
    ok = connect_wifi(timeout_s=20)
    if not ok:
        # Mehrere Versuche beim Start
        for _ in range(2):
            blink(times=3, delay=0.1)
            if connect_wifi(timeout_s=20):
                break

    if network.WLAN(network.STA_IF).isconnected():
        ip = network.WLAN(network.STA_IF).ifconfig()[0]
        print("Bereit unter IP:", ip)
        # LED dauerhaft an solange verbunden
        led.on()
    else:
        print("Konnte keine WLAN-Verbindung herstellen")
        # Langsames Blinken signalisiert Fehler
        while True:
            led.toggle()
            time.sleep(0.8)

    # Hintergrundüberwachung der Verbindung
    ensure_connected(check_interval_s=10)

if __name__ == "__main__":
    try:
        main()
    except KeyboardInterrupt:
        print("Beendet")
        led.off()
        sys.exit()

Schritt für Schritt Anleitung

Folgende Schritte sind notwendig:

  1. Thonny herunterladen und installieren
    Ladet das Tool Thonny herunter und installiert es auf eurem Computer.
  2. Raspberry Pi Pico 2W verbinden
    Verbindet euren Pico 2W über USB mit dem Computer.
  3. MicroPython auswählen
    Öffnet Thonny und klickt unten rechts auf den Interpreter. Wählt „MicroPython (Raspberry Pi Pico)“ aus.
    Raspberry PI Pico mit Thonny verbinden
  4. Code einfügen
    Fügt den oben gezeigten Code in den Editorbereich ein.
  5. Zugangsdaten anpassen
    Ersetzt im Code DEIN_SSID und DEIN_PASSWORT durch eure WLAN-Daten.
  6. Datei speichern
    Klickt auf das Speicher-Symbol mit dem nach unten zeigenden Pfeil, wählt euren Pico aus und speichert die Datei als main.py.
  7. Skript ausführen
    Klickt auf den Play-Button oben links. Der Pico startet neu und verbindet sich automatisch mit eurem WLAN.

Tipp: Wenn die Verbindung nicht funktioniert, überprüft:

  • ob SSID und Passwort korrekt sind

  • ob euer WLAN-Netzwerk 2,4 GHz verwendet (5 GHz wird vom Pico nicht unterstützt)

  • ob die Datei tatsächlich als main.py gespeichert wurde

Fertig!

Ab jetzt baut euer Raspberry Pi Pico 2W bei jedem Start automatisch eine Verbindung zu eurem Netzwerk auf. Das ist besonders praktisch für Projekte, bei denen euer Pico Daten ins Internet senden oder Geräte im lokalen Netzwerk steuern soll.

Erklärung der verwendeten Bibliotheken

Im Skript kommen mehrere MicroPython-Bibliotheken zum Einsatz, die bereits im System des Raspberry Pi Pico 2 W enthalten sind. Hier ein kurzer Überblick, wofür sie jeweils zuständig sind:

  1. network
    Diese Bibliothek steuert die Netzwerkschnittstellen des Pico.
    Mit network.WLAN(network.STA_IF) wird der Pico als WLAN-Client (Station Mode) eingerichtet, um sich mit einem bestehenden WLAN zu verbinden.
    Über Methoden wie .active(), .connect() oder .isconnected() kann der aktuelle Status abgefragt und gesteuert werden.

  2. time
    Wird für zeitliche Abläufe und Verzögerungen verwendet.
    In diesem Skript sorgt time.sleep() dafür, dass die LED sichtbar blinkt, und time.ticks_ms() dient zur Messung von Zeitdifferenzen während der WLAN-Verbindung.

  3. machine
    Diese Bibliothek bietet Zugriff auf die Hardware des Pico, z. B. Pins, I²C, SPI oder ADC.
    Hier wird sie genutzt, um die interne LED anzusteuern:
    machine.Pin("LED", machine.Pin.OUT) aktiviert die LED als Ausgang.

  4. sys
    Dient zur Systemsteuerung und zum geordneten Beenden des Programms.
    In diesem Fall wird sie in Kombination mit einem try-Block verwendet, um bei einem manuellen Abbruch (KeyboardInterrupt) das Programm sauber zu beenden und die LED auszuschalten.

Diese Bibliotheken sind alle Teil von MicroPython und müssen nicht separat installiert werden. Ihr könnt den Code also direkt auf eurem Raspberry Pi Pico 2 W ausführen, sobald MicroPython eingerichtet ist.

Kurze Codebeschreibung zu main.py für Raspberry Pi Pico 2 W

Dieses Skript verbindet den Raspberry Pi Pico 2 W automatisch mit eurem WLAN und hält die Verbindung stabil. Beim Starten des Boards wird die Verbindung aufgebaut. Fällt sie später aus, versucht das Skript selbstständig erneut zu verbinden. Die eingebaute LED zeigt den Status gut sichtbar an.

Was der Code macht

  1. WLAN Zugangsdaten
    Im Kopf des Skripts tragt ihr SSID und Passwort eures WLAN ein. Optional könnt ihr einen Hostnamen festlegen. Viele Router zeigen den Pico dann unter diesem Namen in der Geräteliste an.

  2. LED Steuerung
    Die LED signalisiert den Verbindungsstatus. Kurzes Blinken zeigt Aktivität an. Dauerhaftes Licht bedeutet verbunden. Langsames Blinken bedeutet Fehler.

  3. Verbindung herstellen
    Die Funktion connect_wifi aktiviert das WLAN Modul, setzt optional den Hostnamen und verbindet sich mit eurem Netzwerk. Sie wartet bis zu einer vorgegebenen Zeit auf Erfolg und gibt dann eine Rückmeldung im Terminal aus. Bei Erfolg zeigt sie die zugewiesene IP Adresse an.

  4. Verbindung überwachen
    Die Funktion ensure_connected prüft in Intervallen, ob der Pico noch online ist. Falls nicht, startet sie einen neuen Verbindungsversuch. So bleibt euer Projekt zuverlässig erreichbar.

  5. Startlogik
    Die Funktion main ruft connect_wifi auf und unternimmt bei Bedarf mehrere Anläufe. Nach erfolgreicher Verbindung bleibt die LED an und die IP Adresse wird ausgegeben. Schlägt alles fehl, blinkt die LED langsam als Fehlerhinweis und das Skript versucht weiterhin regelmäßig erneut zu verbinden.

Nützliche Hinweise

  1. 2,4 GHz verwenden
    Der Pico 2 W unterstützt nur 2,4 GHz. Wenn euer WLAN ausschließlich 5 GHz nutzt, wird keine Verbindung aufgebaut.

  2. IP Adresse prüfen
    Nach erfolgreicher Verbindung seht ihr im Thonny Terminal die IP Adresse. Mit dieser IP könnt ihr euren Pico im Netzwerk ansprechen.

  3. Zeitlimits anpassen
    Die Parameter timeout_s in connect_wifi und die Intervalle in ensure_connected könnt ihr je nach Umgebung anpassen.

  4. Hostname
    Falls euer Router den Hostnamen nicht annimmt, ist das unkritisch. Die Verbindung funktioniert trotzdem.

  5. Fehlerdiagnose
    Keine Verbindung bedeutet oft falsche SSID oder falsches Passwort. Prüft außerdem die Signalstärke am Standort des Pico. Bei häufigen Abbrüchen das Prüfintervall leicht verkürzen und den Standort optimieren.

Sicherheit

Bewahrt Zugangsdaten sicher auf. Wenn ihr das Skript veröffentlicht, entfernt SSID und Passwort oder nutzt Umgebungsvariablen und eine separate Konfigurationsdatei, die nicht geteilt wird.

Weiterführende Tutorials

Möchtet ihr statt des Raspberry Pi Pico 2W lieber einen ESP32 verwenden? Dann schaut euch unser ESP32 C6 WLAN-Tutorial und das ESP32 C3 WLAN-Tutorial an.

Der Code darf frei verwendet werden, ich freue mich aber über eine Nennung oder einen Link auf dieses Projekt als Referenz.

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