🛠 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

Objetivos

En el sentido inverso: la Pico W se convierte en cliente HTTP. Este es el gesto fundacional de cualquier panel de sensores, despertador conectado o visualización de meteorología. MicroPython incluye la biblioteca requests, que oculta los sockets detrás de un requests.get / requests.post. También verás cómo el mismo gesto se escribe en las otras dos pilas recomendadas para la Pico W: CircuitPython (módulo wifi + socketpool, puerto oficial raspberry_pi_pico_w) y Arduino a través del core comunitario Philhower arduino-pico (recomendado por Adafruit, WiFi.h mapeado sobre el controlador cyw43).

Material

Código completo

# 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).

Verificación esperada

Se muestra 200 seguido de los primeros caracteres de la página en la consola. Con una API JSON, reemplaza la truncación por r.json para obtener un diccionario Python utilizable. En HTTPS (https://), MicroPython verifica el certificado: se necesita un reloj preciso y CA válidas (ver el tutorial de NTP).

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales