¿Necesitas que tu Raspberry Pi Pico W tenga una dirección IP fija para un proyecto IoT (sensores, dashboards, control remoto, web server, MQTT, etc.)? En este tutorial te enseño cómo dejarla estática con MicroPython, de forma clara y sin trucos raros.
- Qué lograrás: que tu Pico W mantenga la misma IP cada vez que arranca.
- Qué usarás: MicroPython y la función
WLAN.ifconfig(). - Cómo lo confirmarás: imprimiendo
wlan.ifconfig(), haciendo ping y/o revisando tu router.
Tip maker: si tu router permite “Reserva DHCP” (asignar la misma IP por MAC), esa opción suele ser aún más limpia. Pero cuando quieres independencia del router o estás moviendo el proyecto entre redes, la IP estática desde el código es súper útil.
Antes de empezar
Para que esto salga a la primera, verifica estas cositas:
- Raspberry Pi Pico W con firmware MicroPython instalado.
- Acceso a tu red Wi-Fi (SSID y contraseña).
- Tu red es 2.4 GHz (la Pico W trabaja en 2.4 GHz).
- Conocer (o poder consultar) Gateway y Máscara de tu red local.
Cómo elegir una IP estática sin conflictos
La mayoría de los problemas con “IP estática” no vienen del código… vienen de escoger una IP que ya está ocupada o que está dentro del rango que el router reparte por DHCP.
Regla práctica: elige una IP en tu misma subred (por ejemplo, si tu PC está en 192.168.1.x, tu Pico debe estar en 192.168.1.x), y evita el rango DHCP de tu router (en muchos routers ese rango empieza en .100 o .50, pero depende del modelo/configuración).
| Dato | Ejemplo | ¿De dónde lo saco? |
|---|---|---|
| Gateway (router) | 192.168.1.1 | En tu PC (info de red) o en el panel del router |
| Máscara | 255.255.255.0 | En tu PC (info de red) o en el panel del router |
| DNS | 8.8.8.8 | Puede ser el del router o uno público |
| IP estática | 192.168.1.50 | Elige una libre y fuera del rango DHCP |
Si no estás seguro de qué IPs están ocupadas, revisa la lista de “clientes”/“dispositivos conectados” en tu router. Ahí se ve lo que ya está usando direcciones.
Código MicroPython: conectar Wi-Fi y fijar IP
Este ejemplo conecta tu Pico W a tu Wi-Fi, espera a que realmente tenga conexión, y luego fija la IP estática con ifconfig(). Al final imprime la configuración para que la veas en la consola.
import network
import time
# ====== Ajusta estos valores ======
SSID = "TU_SSID"
PASSWORD = "TU_PASSWORD"
STATIC_IP = "192.168.1.50"
SUBNET = "255.255.255.0"
GATEWAY = "192.168.1.1"
DNS = "8.8.8.8"
# ================================
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
# Conectar a Wi-Fi
wlan.connect(SSID, PASSWORD)
# Esperar conexión
timeout_s = 15
t0 = time.time()
while not wlan.isconnected():
if time.time() - t0 > timeout_s:
raise RuntimeError("No se pudo conectar al Wi-Fi. Revisa SSID/clave/señal (y que sea 2.4 GHz).")
time.sleep(0.5)
# Fijar IP estática (IP, máscara, gateway, DNS)
wlan.ifconfig((STATIC_IP, SUBNET, GATEWAY, DNS))
print("✅ Conectado. Configuración de red:", wlan.ifconfig())
Para que “persista” al reiniciar: guarda este código en main.py (o llama una función desde main.py). Así, cada vez que la Pico W arranca, configura la red automáticamente.
Tip rápido: si estás probando desde un IDE conectado por USB, primero corre el script. Luego prueba alimentando la Pico W con un cargador (sin PC) para confirmar que arranca sola y mantiene la IP.
Cómo verificar que funcionó
- En la consola: debes ver la tupla (IP, máscara, gateway, DNS) con la IP que elegiste.
- Ping desde tu PC: prueba
ping 192.168.1.50(usa la IP que configuraste). - En el router: revisa “dispositivos conectados” y confirma que la Pico aparece con esa IP.
Errores comunes (y cómo salir de ellos)
- No conecta (timeout): SSID/clave incorrectos, señal débil, o estás intentando conectar a 5 GHz. Usa 2.4 GHz.
- IP duplicada: escogiste una IP que ya usa otro dispositivo. Cambia la IP o crea una reserva DHCP en el router.
- No responde al ping: firewall del PC (menos común), gateway/máscara mal, o la Pico no está en la misma subred.
- Se “pierde” al reiniciar: el código no está en
main.py(o no se ejecuta al arrancar).
FAQ
¿Puedo usar el DNS de mi router?
Sí. Si tu gateway es 192.168.1.1, normalmente puedes usar 192.168.1.1 como DNS. Si quieres algo sencillo y estable, 8.8.8.8 también suele funcionar bien.
¿Es mejor IP estática o reserva DHCP?
Reserva DHCP es genial cuando controlas el router y quieres evitar conflictos de forma centralizada. IP estática en el dispositivo es útil cuando quieres que el proyecto sea “portable” (lo llevas a otra red) o cuando no tienes control del router.
¿Dónde guardo las credenciales Wi-Fi sin exponerlas?
Lo más simple es tener un archivo local (por ejemplo secrets.py) con SSID/clave y que tu main.py lo importe. Así no las andas pegando por todos lados.
¿Qué estás construyendo?
Si estás montando un sensor, un mini web server o un controlador remoto con la Pico W, cuéntamelo en comentarios: así te recomiendo la estructura de proyecto (archivos, reconexión automática, watchdog, logs, etc.) para que quede a prueba de “se fue la luz y volvió”.