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:
- Thonny herunterladen und installieren
Ladet das Tool Thonny herunter und installiert es auf eurem Computer. - Raspberry Pi Pico 2W verbinden
Verbindet euren Pico 2W über USB mit dem Computer. - MicroPython auswählen
Öffnet Thonny und klickt unten rechts auf den Interpreter. Wählt „MicroPython (Raspberry Pi Pico)“ aus.

- Code einfügen
Fügt den oben gezeigten Code in den Editorbereich ein. - Zugangsdaten anpassen
Ersetzt im CodeDEIN_SSIDundDEIN_PASSWORTdurch eure WLAN-Daten. - 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. - 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:
-
network
Diese Bibliothek steuert die Netzwerkschnittstellen des Pico.
Mitnetwork.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. -
time
Wird für zeitliche Abläufe und Verzögerungen verwendet.
In diesem Skript sorgttime.sleep()dafür, dass die LED sichtbar blinkt, undtime.ticks_ms()dient zur Messung von Zeitdifferenzen während der WLAN-Verbindung. -
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. -
sys
Dient zur Systemsteuerung und zum geordneten Beenden des Programms.
In diesem Fall wird sie in Kombination mit einemtry-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
-
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. -
LED Steuerung
Die LED signalisiert den Verbindungsstatus. Kurzes Blinken zeigt Aktivität an. Dauerhaftes Licht bedeutet verbunden. Langsames Blinken bedeutet Fehler. -
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. -
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. -
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
-
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. -
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. -
Zeitlimits anpassen
Die Parameter timeout_s in connect_wifi und die Intervalle in ensure_connected könnt ihr je nach Umgebung anpassen. -
Hostname
Falls euer Router den Hostnamen nicht annimmt, ist das unkritisch. Die Verbindung funktioniert trotzdem. -
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.

