🛠 Se connecter à un réseau Wi-Fi (station, WPA2/WPA3)
Objectifs
Premier vrai pas réseau de la Pico W : rejoindre un point d'accès Wi-Fi en mode station. Le CYW43439 est un radio Wi-Fi 4 (802.11n) mono-bande 2,4 GHz uniquement — oublie les réseaux 5 GHz — avec WPA3 supporté. Tu vas utiliser le module network de MicroPython (le chemin recommandé par la datasheet : MicroPython est « the fastest way to get code running on Pico W »), comprendre le cycle active → connect → isconnected, et récupérer l'adresse IP.
Matériel
- 1 × Raspberry Pi Pico W + câble micro-USB data
- Firmware MicroPython
raspberry_pi_pico_w(build_picow, inclut le pilote cyw43) - Un point d'accès 2,4 GHz (WPA2 ou WPA3) — pas de 5 GHz
- Console série (Thonny,
picocom…) 115200 bauds
Code complet
# main.py — connexion Wi-Fi station sur Pico W (MicroPython)
# Sauvegardé sous main.py, il se lance à chaque mise sous tension.
import machine, network, time
def do_connect:
wlan = network.WLAN # interface station (par défaut)
wlan.active(True) # alimente l'interface du CYW43439
if not wlan.isconnected:
print('connecting to network...')
wlan.connect('my_ssid', 'my_password') # identifiants WPA2/WPA3
while not wlan.isconnected:
machine.idle # dort entre les tentatives (économise)
print('network config:', wlan.ipconfig('addr4'))
do_connect
# Dépannage : wlan.status donne le code d'échec d'association.
# Après wlan.connect, MicroPython réessaie indéfiniment par défaut.
Vérification attendue
La console affiche network config: ('192.168.x.x', '255.255.255.0', ...) : la Pico W a obtenu son bail DHCP. Tu peux la ping depuis ton PC (même réseau). La LED du CYW43 peut clignoter pendant l'association. Teste le WPA3 si ta box le propose : le pilote cyw43 le gère.
Erreurs fréquentes
- Réseau 5 GHz : le CYW43439 est 2,4 GHz uniquement — la connexion échoue silencieusement ou par timeout. Vérifie le SSID bande 2,4 GHz de ta box.
- Firmware MicroPython standard (non
_picow) :network.WLANrenvoie une erreur ou aucune interface — re-flashe le build Pico W. - Identifiants avec caractères spéciaux mal échappés dans la chaîne Python : teste avec un mot de passe simple d'abord.
- Boucle d'attente sans
machine.idle: ça marche, mais tu saturés le CPU pour rien ;idlemet le cœur en attente entre deux tentatives. - Antenne obstruée : la zone keep-out de 14 × 9 mm en bord de carte ne doit être recouverte de rien, surtout pas de métal (coque métallique = cage de Faraday, gain dégradé — documenté dans la datasheet).
wlan.statusau lieu de rester bloqué surisconnected: c'est l'outil de diagnostic des échecs d'association (mauvais mot de passe, AP introuvable…).
Autres tutoriels pour cette carte
- Faire clignoter la LED embarquée (elle est derrière la puce Wi-Fi !)
- Bouton et potentiomètre sans marcher sur le sans-fil (GPIO libres & ADC)
- Servir une page web depuis la Pico W (socket TCP + HTTP)
- Client HTTP : consommer une API depuis la Pico W
- Heure exacte via NTP : l'horloge temps réel des projets connectés
- Client MQTT : télémétrie IoT légère sur la Pico W
Exemples de code pour cette carte
clignotante.pyPythonbouton-interruption.pyPythonpwm-servo.pyPythonlecture-adc.pyPythonneopixel.pyPythonoled-i2c.pyPython