🛠 Client HTTP : consommer une API depuis la Pico W

Raspberry Pi Pico W · intermediaire · Schéma : IMG-pico-w-intermediaire-2-picow-http-client.svg — Pico W interrogeant un service web distant via le routeur, reponse JSON affichee dans le terminal serie, comparatif des trois piles MicroPython, CircuitPython et Arduino en legende

Objectifs

Dans l'autre sens : la Pico W devient cliente HTTP. C'est le geste fondateur de tout tableau de bord de capteurs, réveil connecté ou affichage de météo. MicroPython embarque la bibliothèque requests, qui masque les sockets derrière un requests.get / requests.post. Tu verras aussi comment le même geste s'écrit sur les deux autres piles recommandées pour la Pico W : CircuitPython (module wifi + socketpool, port officiel raspberry_pi_pico_w) et Arduino via le core communautaire Philhower arduino-pico (recommandé par Adafruit, WiFi.h cartographié sur le pilote cyw43).

Matériel

Code complet

# http_client.py — GET + POST JSON depuis la Pico W (MicroPython)
import machine, network, time

wlan = network.WLAN; wlan.active(True)
if not wlan.isconnected:
    wlan.connect('my_ssid', 'my_password')
    while not wlan.isconnected:
        machine.idle

import requests                      # bundlé dans MicroPython
r = requests.get('http://example.com')
print(r.status_code, r.text[:60])    # 200 + début du corps

# Version CircuitPython (board raspberry_pi_pico_w) — identifiants dans
# CIRCUITPY_WIFI_SSID / CIRCUITPY_WIFI_PASSWORD du fichier settings.toml :
#   import wifi, socketpool, requests
#   pool = socketpool.SocketPool(wifi.radio)
#   r = requests.get('http://example.com', pool=pool)
# > 
# wifi.radio.connect non revérifiés sur la doc CircuitPython (404 au fetch).

Vérification attendue

200 suivi des premiers caractères de la page s'affiche sur la console. Avec une API JSON, remplace le troncature par r.json pour obtenir un dictionnaire Python exploitable. En HTTPS (https://), MicroPython vérifie le certificat : une horloge juste et des CA valides sont nécessaires (voir le tuto NTP).

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels