← Índice del curso

Internet de las Cosas · Tema 14

Wi-Fi en el microcontrolador

Conectar un ESP32 a Wi-Fi lleva cinco líneas de código y casi dos segundos y medio de radio encendida. Esos dos segundos y medio, repetidos cada pocos minutos, son lo que decide si la batería dura meses o años. Este tema abre la caja negra: qué pasa en cada etapa de la conexión, cómo vigilarla y cómo recortarla.

01 · Punto de partida

Cinco líneas y muchas etapas

En el tema 5 escribiste tu primer firmware conectado: WiFi.begin(ssid, clave), esperar a que el estado sea «conectado» y seguir. Detrás de esa llamada hay una secuencia de etapas, cada una con su tiempo y su consumo. El tema 4 mostró que la transmisión por Wi-Fi domina la energía de un dispositivo con batería, y el tema 13 la ubicó como la red más rápida y más hambrienta. Ahora vamos a la fuente del gasto.

Hay un hecho que ordena todo el tema: el tiempo que tarda en llegar un mensaje por Wi-Fi no lo ocupa el mensaje, sino la preparación. Enviar los datos puede llevar décimas de segundo; encontrar la red, autenticarse, obtener una dirección y resolver el nombre del servidor lleva más de dos segundos. Si el dispositivo se conecta una vez y queda conectado, ese costo se paga una sola vez; si duerme entre envíos para ahorrar batería, lo paga en cada despertar.

Los fragmentos de C++ siguen el estilo Arduino para ESP32. Los nombres de las funciones y los eventos pueden variar entre versiones de la biblioteca; verificalos contra la documentación de la que uses.

02 · Anatomía de la conexión

Las etapas de una conexión

Para que un dispositivo envíe un mensaje por Wi-Fi tiene que atravesar, en orden, siete pasos. Los tiempos de la tabla son órdenes de magnitud para un ESP32 con una red doméstica común.

Etapas de una conexión Wi-Fi hasta enviar el primer mensaje.
EtapaQué haceTiempo típicoSe puede evitar
1. EscaneoBusca la red por su nombre (SSID) probando los canales0,5 a 1,5 sSí, si se guardan el canal y la dirección del punto de acceso (BSSID)
2. Autenticación y asociaciónSe presenta al punto de acceso y se registraDécimas de segundoNo
3. Negociación de la claveIntercambio de cuatro mensajes (WPA2) que genera las claves de cifrado0,2 a 0,5 sNo
4. Dirección IPPide una dirección al servidor DHCP del router0,3 a 1,5 sSí, con IP estática
5. Resolución de nombres (DNS)Traduce el nombre del servidor a su dirección0,05 a 0,5 sSí, guardando la dirección o con un caché
6. Conexión con el servidorAbre la conexión TCP y, si corresponde, el cifrado TLS0,1 a 1 sParcialmente (reutilizando sesiones)
7. EnvíoTransmite el mensaje y espera la respuestaDécimas de segundoNo
Línea de tiempo de una conexión Wi-Fi completa y de una optimizada Dos barras horizontales comparan los segundos con la radio activa. La conexión completa suma 2,5 segundos: escaneo de 1,0 s, asociación y clave de 0,4 s, dirección IP de 0,7 s, DNS de 0,2 s y envío de 0,2 s. La conexión optimizada, con canal guardado, IP estática y dirección del servidor guardada, suma 0,7 segundos: escaneo de 0,1 s, asociación de 0,4 s y envío de 0,2 s. Escaneo 1,0 sClave 0,4 sDirección IP 0,7 sDNS0,2 sEnvío0,2 s Clave 0,4 sEnv. Conexión completa: 2,5 s con la radio activa Con canal, IP y servidor guardados: 0,7 s el escaneo de 0,1 s queda en la franja celeste Más de dos tercios del tiempo era preparación evitable

El gráfico compara dos casos. En el primero, todo desde cero. En el segundo, el dispositivo recuerda lo que ya aprendió: en qué canal está la red y cuál es la dirección de su punto de acceso (se evita el escaneo), qué dirección IP usa (se evita el DHCP) y cuál es la dirección del servidor (se evita el DNS). Quedan las etapas que no tienen atajo: la asociación con la negociación de claves y el envío. El ahorro no sale de comprimir los datos sino de no repetir el trabajo de preparación.

03 · Estados

Estados y eventos

Una conexión Wi-Fi no es una condición binaria. El dispositivo pasa por varios estados, y entenderlos permite reaccionar bien:

  • Desconectado. Sin asociación con ningún punto de acceso. Estado inicial y estado al perder la red.
  • Conectando. En medio del escaneo, la autenticación o la negociación de claves.
  • Asociado, sin IP. Ya habla con el punto de acceso, pero todavía no tiene dirección. No se puede enviar nada.
  • Conectado con IP. Listo para usar la red. No garantiza que haya Internet: el router puede no tener salida.
  • Fallo. La conexión no se logró o se perdió, con un motivo: clave incorrecta, red no encontrada, señal perdida, el punto de acceso rechazó el acceso.

Preguntar el estado cada tanto (polling, como en el programa del tema 5) funciona pero es torpe: se pierde tiempo esperando y puede pasar por alto un estado intermedio. La alternativa es registrar una función que la biblioteca llama cuando ocurre un evento: se asoció, obtuvo IP, se desconectó. El firmware reacciona al instante y puede registrar el motivo de cada fallo, que es el dato que más ayuda a diagnosticar.

#include <WiFi.h>
#include "secretos.h"                          // define WIFI_SSID y WIFI_CLAVE

volatile bool conIP = false;

void alEvento(WiFiEvent_t evento, WiFiEventInfo_t info) {
  switch (evento) {
    case ARDUINO_EVENT_WIFI_STA_CONNECTED:
      Serial.println("Asociado al punto de acceso");
      break;
    case ARDUINO_EVENT_WIFI_STA_GOT_IP:
      conIP = true;
      Serial.print("IP: ");
      Serial.println(WiFi.localIP());
      break;
    case ARDUINO_EVENT_WIFI_STA_DISCONNECTED:
      conIP = false;
      Serial.print("Desconectado, motivo: ");
      Serial.println(info.wifi_sta_disconnected.reason);   // código del motivo
      break;
    default:
      break;
  }
}

void setup() {
  Serial.begin(115200);
  WiFi.onEvent(alEvento);                       // registrar la función
  WiFi.mode(WIFI_STA);
  WiFi.begin(WIFI_SSID, WIFI_CLAVE);
}

void loop() {
  if (conIP) {
    // medir y enviar
  }
  delay(1000);
}

Con eventos, el programa queda dividido en dos partes: una que reacciona a lo que le pasa a la conexión y otra que hace el trabajo cuando hay conexión. Es la misma idea de máquina de estados del tema 5, pero guiada por lo que informa la biblioteca y no por una espera.

04 · Información de la red

Los datos de la conexión y la señal

Al quedar conectado, el dispositivo conoce varios datos que conviene registrar, porque son la mejor ayuda para diagnosticar problemas en campo:

Datos de una conexión Wi-Fi y su utilidad.
DatoQué esPara qué sirve
Dirección IPLa dirección del dispositivo en la red localSaber si obtuvo dirección y a qué subred pertenece
Puerta de enlace (gateway)La dirección del routerComprobar que el router responde
Servidor DNSQuien traduce nombres a direccionesDetectar si falla la resolución de nombres
CanalEl canal de radio (1 a 13 en 2,4 GHz)Guardarlo para reconectar más rápido; detectar congestión
BSSIDLa dirección física del punto de acceso concretoReconectar directo; saber a cuál de varios puntos de acceso se unió
RSSIIntensidad de la señal recibida, en dBmMedir la calidad del enlace
Dirección MACIdentificador físico del dispositivoIdentificarlo en el router; configurar filtros

El RSSI se expresa en dBm, una escala logarítmica donde los valores son negativos y más cercanos a cero significan señal más fuerte. Una guía práctica:

Interpretación orientativa del RSSI para un dispositivo IoT.
RSSICalidadQué esperar
−30 a −50 dBmExcelenteMuy cerca del punto de acceso
−50 a −67 dBmBuenaConexión estable y rápida
−67 a −75 dBmAceptableFunciona, con más reintentos y consumo
−75 a −85 dBmDébilCortes frecuentes; la radio trabaja más y la batería sufre
Menos de −85 dBmInutilizableConexiones que fallan o no se logran

Una señal débil no solo da conexiones inestables: consume más energía, porque el dispositivo retransmite paquetes y mantiene la radio activa más tiempo. Un sensor en el límite de cobertura puede gastar el doble o el triple que otro idéntico cerca del router. Registrar el RSSI en cada reporte permite detectar los equipos mal ubicados antes de que fallen.

05 · Compatibilidad y seguridad

Seguridad y compatibilidad de la red

Antes de que el firmware funcione en la casa de un cliente, la red debe ser compatible con el dispositivo. Los puntos que más problemas dan:

  • Solo 2,4 GHz. Muchos microcontroladores, entre ellos el ESP32 original, no usan la banda de 5 GHz. Si el router tiene un único nombre para las dos bandas, suele funcionar; si el cliente tiene una red solo de 5 GHz, el dispositivo no la ve. Hay que avisarlo en el manual y en el proceso de configuración.
  • Tipo de cifrado. Las redes modernas usan WPA2 o WPA3 con clave compartida. Las abiertas (sin clave) o con cifrado antiguo (WEP, WPA) no deberían usarse: el tráfico queda expuesto. Algunas redes mixtas WPA2/WPA3 requieren compatibilidad de la biblioteca.
  • Redes empresariales. WPA2-Enterprise pide un usuario y un certificado en lugar de una clave única. Es más complejo de configurar, pero algunos ámbitos (oficinas, universidades) no ofrecen otra cosa.
  • Portal cautivo. Redes de hoteles o cafés que, tras conectar, exigen abrir una página web para aceptar condiciones. Un dispositivo sin pantalla no puede hacerlo: queda «conectado» sin Internet.
  • Filtros en el router. Algunos routers solo admiten dispositivos con una MAC registrada, o limitan la cantidad de dispositivos. Un fallo de conexión puede venir de allí.

El cifrado de la red Wi-Fi protege el tramo entre el dispositivo y el router, no el viaje por Internet. Los datos sensibles necesitan, además, un cifrado de extremo a extremo con TLS, que vemos en el bloque de seguridad. Y las claves de la red del usuario son un secreto: se guardan en memoria no volátil, no en el código (tema 5).

06 · Energía

Conectar rápido y dormir bien

Hay dos estrategias para un dispositivo con batería que envía de a ratos, y la decisión entre ellas es probablemente la más importante del diseño energético con Wi-Fi.

Mantener la conexión o reconectar en cada envío.
EstrategiaCómo funcionaConsumoCuándo conviene
Mantener la conexiónLa radio queda asociada al punto de acceso y se activa brevemente para recibir avisos del router (modem sleep)Decenas de mA de forma continuaDispositivos con alimentación eléctrica, o que deben recibir comandos inmediatos
Reconectar en cada envíoEl chip duerme profundamente entre envíos, y al despertar se conecta, envía y vuelve a dormirMicroamperes dormido, más ráfagas de decenas o cientos de mADispositivos con batería que envían cada varios minutos u horas

Mantener la conexión ahorra el trabajo de reconectar pero deja la radio atenta todo el día. Para un chip típico significa del orden de 20 mA continuos, es decir, unos 480 mAh por día: una batería de 2000 mAh duraría unos cuatro días. Reconectar en cada envío es entonces la única opción realista con batería, y por eso importa tanto el costo de cada conexión.

Para acortar cada conexión, estas técnicas, de mayor a menor ahorro:

  • Guardar el canal y el BSSID del punto de acceso en una memoria que sobreviva al sueño profundo (en el ESP32, la memoria de reloj en tiempo real o la flash). Se llama a WiFi.begin con esos datos y se evita el escaneo completo.
  • Usar IP estática (o conservar la dirección ya concedida) y evitar el DHCP. La dirección debe estar reservada en el router para no chocar con otros equipos.
  • Evitar el DNS: usar la dirección IP del servidor directamente, o resolverla una sola vez y guardarla. Si el servidor cambia de IP, un plan B vuelve a resolverla.
  • Reducir la carga útil y enviar todo en una sola conexión, con el mensaje compacto del tema 12.
  • Apagar la radio apenas termina el envío, sin esperas innecesarias, y volver a dormir.

07 · Configuración

El dispositivo como punto de acceso

Un chip con Wi-Fi puede funcionar de dos maneras. Como estación se conecta a un punto de acceso existente, que es lo que hicimos hasta ahora. Como punto de acceso (soft AP) crea su propia red, a la que se conecta el celular del usuario. Esta segunda modalidad resuelve un problema práctico: ¿cómo se le dice a un dispositivo sin pantalla ni teclado cuál es la clave del Wi-Fi de la casa?

El mecanismo habitual: al encenderse por primera vez, o tras mantener un botón, el dispositivo crea una red temporal (por ejemplo, «Sensor-A1B2»), sirve una página web sencilla, y el usuario se conecta desde el celular, elige su red y escribe la clave. El dispositivo la guarda en memoria no volátil, cierra la red temporal y se conecta como estación. Es el primer paso del aprovisionamiento, que estudiamos con las credenciales y la seguridad en el tema 42.

Dos precauciones: la red temporal debe tener una clave (aunque sea impresa en la etiqueta del equipo) y cerrarse sola tras unos minutos, y el dispositivo debe ofrecer una forma de volver a este modo si la red del cliente cambia (por ejemplo, un botón o un tiempo máximo sin conexión).

08 · Analogía con programación

Calcular el costo de conectarse en Python

El programa modela las cinco etapas que consumen tiempo de radio: escaneo, asociación, dirección, DNS y envío. Cada una tiene una duración completa y una optimizada. La radio consume 100 mA mientras está activa y el chip dormido, 0,24 mAh por día; la alternativa de mantener la conexión gasta 20 mA continuos. Con una batería de 2000 mAh calcula los segundos activos, los mAh por día y la autonomía para cada estrategia y dos ritmos de envío.

Python en tu navegador. Los bloques son editables: cambiá los valores y presioná «Ejecutar Python». La primera vez tarda unos segundos en cargar.

BATERIA_MAH = 2000
CORRIENTE_MA = 100            # corriente media con la radio Wi-Fi activa
SUENO_MAH_DIA = 0.24          # chip en sueño profundo (10 µA)
MODEM_SLEEP_MA = 20           # corriente promedio si se mantiene la conexión (modem sleep)

# segundos que consume cada etapa: (versión completa, versión optimizada)
ETAPAS = {
    "escaneo":    (1.0, 0.1),     # buscar la red en todos los canales / ir directo al canal y BSSID guardados
    "asociación": (0.4, 0.4),     # autenticación y negociación de la clave (no se puede evitar)
    "dirección":  (0.7, 0.0),     # pedir IP por DHCP / usar una IP estática
    "DNS":        (0.2, 0.0),     # resolver el nombre del servidor / usar la IP guardada
    "envío":      (0.2, 0.2),     # abrir la conexión y mandar el mensaje
}


def segundos_activo(optimizar):
    return sum(ETAPAS[e][1 if e in optimizar else 0] for e in ETAPAS)


def autonomia(optimizar, periodo_min, mantener=False):
    if mantener:
        mah_dia = MODEM_SLEEP_MA * 24
    else:
        envios = 1440 / periodo_min
        mah_dia = SUENO_MAH_DIA + envios * CORRIENTE_MA * segundos_activo(optimizar) / 3600
    return mah_dia, BATERIA_MAH / mah_dia


casos = [
    ("conexión completa cada vez", set(), False),
    ("canal y BSSID guardados", {"escaneo"}, False),
    ("... más IP estática", {"escaneo", "dirección"}, False),
    ("... más IP del servidor guardada", {"escaneo", "dirección", "DNS"}, False),
    ("mantener la conexión (modem sleep)", set(), True),
]
for periodo in (15, 60):
    print(f"Un envío cada {periodo} minutos:")
    print("  estrategia                               s activos   mAh/día   autonomía")
    for nombre, opt, mantener in casos:
        mah, dias = autonomia(opt, periodo, mantener)
        segs = "continuo" if mantener else f"{segundos_activo(opt):.1f}"
        texto = f"{dias / 365:.1f} años" if dias >= 365 else f"{dias:.0f} días"
        print(f"  {nombre:<40} {segs:>9} {mah:>9.2f}   {texto}")

Resultado con los valores iniciales. Con un envío cada 15 minutos: la conexión completa usa la radio 2,5 s por envío, gasta 6,91 mAh por día y dura 290 días; guardando canal y BSSID bajan a 1,6 s y 1,2 años; con IP estática, 0,9 s y 2,1 años; guardando además la dirección del servidor, 0,7 s, 2,11 mAh por día y 2,6 años. Mantener la conexión gasta 480 mAh por día y dura 4 días. Con un envío por hora, la conexión completa rinde 2,9 años y la optimizada 7,8 años.

El modelo deja tres conclusiones. Una: la conexión optimizada multiplica la autonomía por 3,3 sin cambiar ni el chip ni la batería. Otra: mantener la conexión es entre 70 y 230 veces más caro que reconectar en cada envío (480 mAh por día contra 6,91 de la conexión completa o 2,11 de la optimizada) y no es una opción para un equipo con batería. Y una tercera: el beneficio de optimizar es mayor cuanto más seguido se envía, porque la conexión pasa a ser una fracción mayor del gasto.

09 · Exploración interactiva

Cuánto cuesta conectarse, de extremo a extremo

Este laboratorio ejecuta el mismo modelo del código anterior. Elegí la estrategia, qué etapas optimizar y cada cuántos minutos se envía. La barra superior muestra el desglose de la conexión completa y la inferior, el de tu configuración, con los segundos de radio activa de cada etapa. Los tiempos y la corriente son valores didácticos.

Etapas de una conexión Wi-Fi

Radio activa por envío—
Consumo por día—
Duración de la batería (2000 mAh)—
Mejora frente a la conexión completa—
Resultado—

Elegí los parámetros y presioná «Calcular».

Recorrido guiado

  1. Con los valores iniciales (reconectar, todo completo, cada 15 minutos), calculá. 2,5 s de radio por envío, 6,91 mAh por día y 290 días de batería: «Menos de un año».
  2. Elegí canal y BSSID guardados: el escaneo baja de 1,0 a 0,1 s. Ahora son 1,6 s por envío y 1,2 años: la primera optimización ya multiplica la autonomía por 1,5.
  3. Sumá la IP estática: 0,9 s y 2,1 años. Eliminar el DHCP ahorró casi tanto como el escaneo.
  4. Agregá la IP del servidor guardada: 0,7 s, 2,11 mAh por día y 2,6 años, 3,3 veces más que al principio. Sobran solo la asociación y el envío.
  5. Cambiá a Mantener la conexión: 480 mAh por día y 4 días. Ninguna optimización de las etapas importa, porque la radio nunca se apaga.
  6. Volvé a reconectar con todo optimizado y subí el período a 60 minutos: 0,71 mAh por día y 7,8 años; con 5 minutos baja a 342 días (5,84 mAh por día). El mismo dispositivo cambia de menos de un año a casi ocho según cada cuánto envía.
Desafío: cuándo falla el atajo

Un sensor guarda el canal 6 y el BSSID de su router. Una noche, el router se reinicia y, al volver, elige el canal 11. Al despertar, el sensor intenta conectarse directo al canal 6, no encuentra nada y espera hasta que vence un tiempo (por ejemplo, 5 segundos) a 100 mA: 0,14 mAh perdidos, y sin conexión. Si el firmware no tiene plan B, repite lo mismo cada 15 minutos para siempre; si lo tiene, tras el primer fallo borra lo guardado, hace un escaneo completo (1,0 s), se conecta y guarda los datos nuevos. El costo del plan B es unos 0,14 + 0,07 = 0,21 mAh una vez. Un atajo sin plan B ahorra energía mientras todo sale bien y deja al equipo mudo cuando algo cambia.

10 · Método de trabajo

Lista de verificación de una conexión Wi-Fi

  1. Banda y seguridad: la red del cliente es de 2,4 GHz con WPA2 o WPA3; sin portal cautivo.
  2. Eventos: la conexión se maneja por eventos, y cada desconexión registra su motivo.
  3. Tiempo límite: ningún paso espera para siempre; todos tienen un máximo.
  4. Reconexión con espera creciente y retardo aleatorio (tema 5), tanto para el router como para el servidor.
  5. Datos de diagnóstico: el RSSI, el canal y el motivo del último fallo viajan con cada reporte.
  6. Si tiene batería: sueño profundo entre envíos, canal y BSSID guardados, IP estática o conservada, IP del servidor guardada, y un plan B para cuando fallen los atajos.
  7. Configuración por el usuario: modo de punto de acceso temporal para cargar la red, con clave y cierre automático.
  8. Pruebas reales: con señal débil, con el router apagado, con el canal cambiado, con una red de 5 GHz solamente y con un portal cautivo.

Un criterio de cierre: medí la corriente real de una conexión con un instrumento. Los tiempos de este tema son órdenes de magnitud; los de tu router, tu placa y tu firmware pueden diferir mucho, y solo la medición dice cuánto cuesta cada envío.

11 · Comprensión

Confusiones frecuentes

«Si me conecto una vez, puedo dejar el Wi-Fi conectado y dormir el procesador»

El procesador puede dormir, pero mantener la asociación exige que la radio despierte periódicamente a escuchar al router, con un gasto continuo de decenas de miliamperes. Para batería, el camino es sueño profundo con apagado de la radio y reconexión rápida.

«Más potencia de transmisión, mejor conexión»

Subir la potencia aumenta el consumo y no siempre mejora la comunicación, que es de ida y vuelta: el router también tiene que oír al dispositivo. Lo que más ayuda es la ubicación y la antena.

«Con IP estática no necesito nada más en el router»

Si la dirección está dentro del rango que el router reparte por DHCP, otro equipo puede recibirla y habrá un conflicto. Hay que elegir una dirección fuera del rango o reservarla para la MAC del dispositivo.

«Conectado al Wi-Fi significa que hay Internet»

Solo indica que hay enlace con el router. El router puede no tener salida, el DNS puede fallar o haber un portal cautivo. Hay que comprobar el camino completo, por ejemplo con una petición simple a un servidor conocido.

«El RSSI solo importa para el alcance»

También afecta al consumo y a la estabilidad. Un RSSI débil multiplica las retransmisiones y mantiene la radio activa más tiempo, por lo que acorta la batería. Registrarlo en cada reporte detecta equipos mal ubicados.

«Las credenciales de la red las guardo en el código; es lo más simple»

Quedan expuestas en el binario y en el repositorio, y el producto no funcionará en otra casa sin recompilar. Se cargan en la primera configuración (punto de acceso temporal) y se guardan en memoria no volátil.

12 · Práctica guiada

Predecí antes de comprobar

1. Costo de una conexión

La radio consume 100 mA durante 2,5 s en una conexión completa. ¿Cuántos mAh gasta un envío? ¿Y 96 envíos por día?

Ver solución

100 mA × 2,5 s = 250 mA·s, que dividido por 3600 son 0,0694 mAh por envío. En 96 envíos: 6,67 mAh por día, más 0,24 del sueño: 6,91 mAh. Es lo que el modelo del tema muestra.

2. Qué evita cada atajo

Indicá qué etapa elimina cada técnica: (a) guardar el canal y el BSSID; (b) IP estática; (c) guardar la dirección del servidor.

Ver solución

(a) El escaneo de canales (queda una búsqueda directa de 0,1 s). (b) El DHCP: no hace falta pedir dirección. (c) El DNS: no hace falta resolver el nombre. No eliminan la asociación con la negociación de claves ni el envío en sí.

3. Interpretar el RSSI

Un sensor informa −82 dBm. ¿Qué calidad tiene y qué efectos esperás en la batería? ¿Qué harías?

Ver solución

Es una señal débil: cortes frecuentes y muchas retransmisiones, lo que mantiene la radio activa más tiempo y acorta la batería, quizá a la mitad. Conviene acercar el dispositivo o el punto de acceso, mejorar la antena o agregar un repetidor.

4. Banda de 5 GHz

El cliente tiene un router de doble banda con dos nombres: «Casa» (2,4 GHz) y «Casa-5G» (5 GHz). El dispositivo no logra conectarse a «Casa-5G». ¿Por qué y qué se le indica?

Ver solución

El chip solo opera en 2,4 GHz y no ve la red de 5 GHz. Se le indica que use la red «Casa» de 2,4 GHz. Convendría que la aplicación de configuración lo aclare y filtre las redes que el equipo no puede usar.

5. Mantener o reconectar

Mantener la conexión gasta 20 mA continuos. ¿Cuántos mAh por día son y cuánto dura una batería de 2000 mAh? ¿Cuánto más cuesta que la conexión optimizada del tema (2,11 mAh por día)?

Ver solución

20 mA × 24 h = 480 mAh por día; la batería dura 2000 / 480 ≈ 4 días. Frente a 2,11 mAh por día de la conexión optimizada, es 480 / 2,11 ≈ 228 veces más. Por eso con batería no se mantiene la conexión.

6. El plan B

Un equipo guarda el canal 6 y el BSSID. El router cambia al canal 11. Describí qué hace un firmware con plan B y uno sin él.

Ver solución

Con plan B: intenta la conexión rápida, vence un tiempo corto, borra lo guardado, hace un escaneo completo, se conecta en el canal 11 y guarda los datos nuevos. Solo pierde un intento. Sin plan B: repite la conexión rápida en el canal 6 en cada despertar y nunca se conecta; el equipo queda mudo y gasta batería en intentos inútiles hasta que alguien lo reinicie.

13 · Síntesis

Ideas para recordar

  • Una conexión Wi-Fi tiene siete etapas; la mayor parte del tiempo es preparación (escaneo, dirección, DNS) y no el envío del mensaje.
  • Con batería, la radio activa 2,5 s por envío domina el consumo, y reducirla es la optimización más rentable.
  • La conexión se maneja por eventos (asociado, con IP, desconectado y su motivo) y no esperando en un bucle.
  • El RSSI mide la calidad del enlace; una señal débil acorta la batería porque multiplica las retransmisiones, y conviene reportarlo siempre.
  • Muchos chips solo usan 2,4 GHz; hay que verificar banda, tipo de seguridad (WPA2 o WPA3) y ausencia de portal cautivo.
  • Con batería se duerme profundamente y se reconecta en cada envío; mantener la conexión cuesta decenas de mA continuos.
  • Guardar el canal y el BSSID, usar IP estática y guardar la IP del servidor reduce la conexión de 2,5 s a 0,7 s; la autonomía puede multiplicarse por 3 o más.
  • Todo atajo necesita un plan B: si lo guardado ya no sirve, el firmware vuelve a la conexión completa.
  • El dispositivo puede actuar como punto de acceso temporal para recibir la configuración del usuario, sin pantalla ni teclado.

¿Listo para el tema 15?

Antes de avanzar, medí o estimá cuántos segundos tarda tu dispositivo en conectarse a tu red y enviar un mensaje, y registrá las etapas con marcas de tiempo en el monitor serie. Después aplicá una optimización (el canal guardado, por ejemplo) y compará. Si sabés cuánto ahorraste, ya sabés cuánto vale cada etapa.

En el próximo tema estudiamos Bluetooth Low Energy: servicios, características, el enlace con el celular y por qué su consumo por mensaje es una fracción del de Wi-Fi.