← Índice del curso

Internet de las Cosas · Tema 4

Microcontroladores con conectividad

Hasta ahora conectabas un microcontrolador a un módulo de radio por UART o SPI. Hoy casi todos los proyectos IoT usan un chip que trae la radio adentro. Elegir bien entre ESP32, nRF52840, Pico W o un sistema con LoRa decide cuánto dura la batería, qué redes alcanza y cuánto cuesta cada unidad.

01 · Punto de partida

Del módulo suelto al chip con radio

Hace unos años, conectar un Arduino a Internet significaba sumarle un módulo Wi-Fi, comunicarse con él mediante comandos AT por el puerto serie y administrar dos procesadores con dos programas. Hoy un chip de pocos dólares reúne el procesador, la memoria, los periféricos y la radio en una sola pieza, y corre una pila de red completa con TCP/IP, TLS y MQTT. Esa integración es la razón por la que el IoT se volvió accesible.

Pero «tiene Wi-Fi» no alcanza para elegir. Una plataforma puede ser excelente para un enchufe inteligente y pésima para un sensor con batería; otra puede durar quince años con una pila y no tener radio para llegar a Internet. En el tema anterior armaste la ficha de un caso de uso; en éste la usás para elegir el chip.

Los números de este tema son órdenes de magnitud para razonar, no datos de una hoja de especificaciones. Antes de decidir un diseño real, verificá cada valor en la documentación del fabricante.

02 · Anatomía

Qué trae un microcontrolador conectado

Un microcontrolador con conectividad es un SoC (system on chip): un solo chip con todo lo necesario para un dispositivo IoT. Sumado a lo que ya conocés de los microcontroladores, aparecen tres bloques nuevos.

Bloques de un SoC con conectividad Un recuadro grande representa el SoC. Dentro hay un núcleo de procesamiento, memorias flash y RAM, periféricos como GPIO, ADC, I2C, SPI y UART, un bloque de radio con su antena externa, un bloque de seguridad con cifrado y arranque seguro, y un gestor de energía con modos de sueño. La pila de protocolos TCP/IP, TLS y MQTT corre como software sobre el núcleo y usa la radio. Núcleo(s)CPU 32 bitsy pila de red (software) MemoriasFlash: firmwareSRAM: variables y búferesNVS: configuración PeriféricosGPIO · ADC · PWMI²C · SPI · UART Gestión de energíaModos de sueñoReloj de tiempo realDespertar por pin o temporizador RadioWi-Fi · BLELoRa · 802.15.4 SeguridadAceleración AESAleatoriosArranque seguroCifrado de flash Antenaexterna al chip SoC con conectividad
  • Radio. El bloque que transmite y recibe. Puede ser una sola (Wi-Fi) o varias (Wi-Fi y Bluetooth LE). Necesita una antena externa al chip, cuyo diseño afecta mucho el alcance real.
  • Pila de protocolos. Es software: TCP/IP, TLS, y cliente MQTT o HTTP. Ocupa memoria y tiempo de procesador; por eso los chips con radio traen más RAM y flash que los microcontroladores simples.
  • Seguridad por hardware. Aceleración de cifrado, generador de números aleatorios, arranque seguro y cifrado de la flash. Sin ellos, TLS es lento y el firmware, copiable. Los vemos en los temas 40 a 42.

También es clave la gestión de energía. Un microcontrolador con radio puede pasar de apagar casi todo y gastar microamperes a transmitir con decenas de miliamperes. El diseño de un dispositivo con batería consiste en pasar casi todo el tiempo en el primer estado.

03 · Conectividad

Las radios y para qué sirve cada una

Cada tecnología de radio resuelve un problema distinto. Los detalles de cada una vienen en el bloque de redes; acá solo hace falta ubicarlas, porque el radio determina la plataforma posible.

Radios comunes en dispositivos IoT. Alcances y velocidades son órdenes de magnitud en condiciones normales.
RadioAlcanceVelocidadEnergía por envíoUso típico
Wi-Fi (2,4 GHz)Decenas de metrosMbit/sAlta (conectar cuesta)Dispositivos con red eléctrica o carga frecuente; acceso directo a Internet
Bluetooth Low EnergyDecenas de metrosCientos de kbit/sMuy bajaEnlace con el celular o con un gateway
Thread / Zigbee (802.15.4)Decenas de metros, en mallaCientos de kbit/sBajaDomótica y edificios con muchos nodos
LoRaKilómetrosDecenas de bit/s a pocos kbit/sBaja por mensajeSensores remotos con batería de años
Celular (LTE-M, NB-IoT)Cobertura del operadorkbit/s a Mbit/sMedia a altaEquipos móviles o sin red propia

La cuestión de fondo es que ninguna radio gana en todo: alcance, velocidad y energía se compensan. Por eso los chips más populares incluyen Wi-Fi y Bluetooth LE (el celular casi siempre sirve de puente de configuración), y las aplicaciones de largo alcance recurren a chips o módulos con LoRa o celular.

04 · Familias

Las plataformas más usadas

Seis familias cubren buena parte de los proyectos. La tabla resume sus rasgos; los números son aproximados y varían por modelo y variante.

Plataformas con conectividad. Valores aproximados y didácticos: verificá siempre la hoja de datos del modelo exacto.
PlataformaNúcleoRadiosRAMConsumo dormidoRasgo principal
ESP8266Tensilica a 80 MHzWi-FiUnos 80 KBDecenas de µABarato y muy difundido; ya superado para proyectos nuevos
ESP32Xtensa de 2 núcleos, hasta 240 MHzWi-Fi y BluetoothUnos 520 KBDecenas de µAPotente, gran ecosistema, muchas variantes
ESP32-C3RISC-V a 160 MHzWi-Fi y Bluetooth LEUnos 400 KBPocos µAVersión económica y de menor consumo
Raspberry Pi Pico W2 núcleos Cortex-M0+ a 133 MHzWi-Fi y Bluetooth LE264 KBCerca de 1 mA en la placaProgramación sencilla (MicroPython y C); ahorro de energía limitado
nRF52840Cortex-M4F a 64 MHzBluetooth LE, Thread, Zigbee256 KBPocos µABajísimo consumo; sin Wi-Fi
STM32WLCortex-M4 a 48 MHzLoRa (y otros sub-GHz)64 KBPocos µARadio de largo alcance integrada; poca memoria

De la tabla surgen reglas útiles. Si necesitás Wi-Fi, tu mundo es la familia ESP32 o la Pico W. Si querés Bluetooth LE y años de batería, el nRF52840 es difícil de superar. Si la distancia manda, un chip LoRa. Y si recién empezás, el ESP32 tiene la mayor cantidad de ejemplos, bibliotecas y respuestas en foros.

05 · Consumo

Dónde se va la energía

El comportamiento energético de un dispositivo con radio tiene dos estados muy distintos. Dormido, el chip consume microamperes: casi todo está apagado y un temporizador lo despierta. Activo, con la radio encendida, consume entre decenas y cientos de miliamperes. La relación entre ambos es de cientos de miles de veces, y define el diseño.

mAh por día = corriente dormida × 24 h + envíos por día × corriente activa × segundos activos ÷ 3600

Los dos términos suman a la energía diaria. Con unos números típicos de un ESP32 enviando por Wi-Fi cada 15 minutos: dormido, 10 µA durante 24 horas son 0,24 mAh; despierto, 96 envíos de 2,5 segundos a 100 mA son 6,67 mAh. El 97 % de la energía se gasta en los pocos segundos con la radio encendida, aunque el chip pasa dormido el 99,7 % del tiempo.

De esa cuenta salen las tres palancas del consumo:

  • Acortar el tiempo activo. En Wi-Fi gran parte de los segundos se van en conectarse al punto de acceso y obtener una dirección IP. Reutilizar la dirección, fijar el canal y evitar el DNS pueden bajar de varios segundos a décimas.
  • Enviar menos seguido. Cada envío evitado ahorra su porción completa; es la palanca del tema 1.
  • Elegir una radio más económica por mensaje. Bluetooth LE o LoRa tardan una fracción de segundo y consumen menos corriente que el Wi-Fi.

Los chips ofrecen varios modos de sueño: en el sueño ligero (light sleep) conservan el estado y despiertan rápido; en el sueño profundo (deep sleep) apagan casi todo y al despertar el programa arranca de cero, conservando solo un poco de memoria especial. Elegir el modo es parte del diseño y lo trabajamos en el bloque de bajo consumo.

06 · Formato

Chip, módulo y placa de desarrollo

El mismo SoC llega al producto en tres formas, con consecuencias de costo, tiempo y homologación.

Tres formas de usar un microcontrolador con conectividad.
FormaQué esCuándo convieneCosto oculto
Placa de desarrolloChip, USB, regulador y pines en una plaqueta lista para usarPrototipos y aprendizajeConsumo alto y tamaño grande; no es el producto final
MóduloChip, memoria flash, cristal y antena en una pieza pequeña, con certificación de radioSeries pequeñas y medianasPrecio mayor que el chip suelto
Chip en placa propiaEl SoC soldado en un circuito diseñado para el productoGrandes volúmenesDiseñar antena y circuito de radiofrecuencia; certificar el equipo

Una razón de peso para elegir módulo es la certificación de radio: todo equipo que emite radiofrecuencia debe cumplir la normativa del país donde se vende. Un módulo ya certificado simplifica y abarata ese trámite; un diseño propio con chip suelto exige ensayos que pueden costar miles de dólares y semanas de laboratorio.

07 · Método

Cómo elegir la plataforma

Armá la decisión a partir de la ficha del caso de uso y descartá en este orden, de lo que no admite excepción a lo que se puede negociar:

  1. Radio. ¿Qué red necesita el dispositivo? Si ninguna plataforma tiene el radio, el resto no importa.
  2. Memoria. ¿Entra la pila de red, la seguridad TLS y el firmware con su actualización remota? Esta última pide el doble de flash, porque guarda la versión nueva sin borrar la vieja.
  3. Energía. ¿Alcanza la autonomía con la corriente dormida, la activa y el tiempo de envío?
  4. Periféricos. ¿Hay suficientes pines, convertidores analógico-digitales y buses para los sensores?
  5. Seguridad. ¿Hay arranque seguro, cifrado de flash y aleatoriedad por hardware?
  6. Ecosistema. ¿Hay herramientas, bibliotecas, documentación y soporte? Un chip excelente con pocas herramientas cuesta semanas de trabajo.
  7. Disponibilidad y costo. ¿Se consigue en el volumen que se necesita, y por cuánto tiempo seguirá fabricándose?

Las tres primeras filtran casi siempre; el resto desempata. El laboratorio de este tema reproduce ese filtro con la radio, la memoria y la autonomía.

08 · Analogía con programación

Comparar plataformas en Python

Cada plataforma se describe con su RAM, su corriente dormida y, por cada radio que ofrece, la corriente media activa y los segundos activos por envío. La función evaluar recorre todas, descarta las que no tienen el radio o la RAM pedidos y calcula, para las que quedan, la autonomía con una batería de 2000 mAh según el período entre envíos. La fórmula es la del apartado de energía.

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

# plataforma: RAM en KB, corriente dormido en µA, y por radio (corriente media activa en mA, segundos activo por envío)
PLATAFORMAS = {
    "ESP8266":   {"ram": 80,  "sueno": 20,   "radios": {"wifi": (80, 3.0)}},
    "ESP32":     {"ram": 520, "sueno": 10,   "radios": {"wifi": (100, 2.5), "ble": (50, 0.3)}},
    "ESP32-C3":  {"ram": 400, "sueno": 5,    "radios": {"wifi": (80, 2.5), "ble": (35, 0.3)}},
    "Pico W":    {"ram": 264, "sueno": 1000, "radios": {"wifi": (70, 3.0), "ble": (40, 0.3)}},
    "nRF52840":  {"ram": 256, "sueno": 3,    "radios": {"ble": (8, 0.3)}},
    "STM32WL":   {"ram": 64,  "sueno": 2,    "radios": {"lora": (45, 0.6)}},
}


def evaluar(radio, ram_kb, periodo_min):
    resultado = []
    for nombre, p in PLATAFORMAS.items():
        if radio not in p["radios"]:
            resultado.append((nombre, None, "sin " + radio))
            continue
        if p["ram"] < ram_kb:
            resultado.append((nombre, None, "poca RAM"))
            continue
        corriente, segundos = p["radios"][radio]
        envios = 1440 / periodo_min
        mah_dia = p["sueno"] / 1000 * 24 + envios * corriente * segundos / 3600
        resultado.append((nombre, BATERIA_MAH / mah_dia / 365, "ok"))
    return resultado


def mostrar(radio, ram_kb, periodo_min):
    print(f"Radio {radio}, {ram_kb} KB de RAM, un envío cada {periodo_min} min:")
    for nombre, anios, motivo in evaluar(radio, ram_kb, periodo_min):
        texto = f"{anios:5.1f} años" if anios is not None else f"descartado ({motivo})"
        print(f"  {nombre:<10} {texto}")


mostrar("wifi", 128, 15)
mostrar("wifi", 128, 60)
mostrar("wifi", 400, 15)
mostrar("ble", 64, 5)
mostrar("lora", 32, 30)

Resultado con los valores iniciales: con Wi-Fi, 128 KB y un envío cada 15 minutos, el ESP8266 queda descartado por poca RAM, ESP32 rinde 0,8 años, ESP32-C3 1,0 año y Pico W 0,2 años. Con un envío por hora, ESP32 sube a 2,9 años y ESP32-C3 a 3,8. Si hacen falta 400 KB de RAM, la Pico W se descarta (264 KB). Con Bluetooth LE, 64 KB y envíos cada 5 minutos, el nRF52840 dura 20,8 años, el ESP32-C3 5,7 y el ESP32 3,8. Y con LoRa solo queda el STM32WL, con 13,4 años enviando cada 30 minutos.

El modelo muestra la distancia que hay entre elegir una plataforma «que ande» y una que «dure». La Pico W, con su consumo dormido de unos 1000 µA, no pasa de unos 80 días ni enviando una vez por hora: la corriente dormida pesa tanto como la corriente activa cuando el dispositivo duerme casi todo el tiempo.

09 · Exploración interactiva

Elegir un microcontrolador, de extremo a extremo

Este laboratorio ejecuta el mismo modelo del código anterior. Indicá el radio que necesitás, la RAM mínima, cada cuántos minutos se envía y la autonomía objetivo con una batería de 2000 mAh. Las barras muestran los años de cada plataforma que cumple los requisitos de radio y memoria; las demás aparecen descartadas con el motivo. Las barras celestes alcanzan el objetivo (línea naranja) y las azules no. Los valores son didácticos.

Radio, memoria y batería

Plataformas que cumplen radio y RAM—
Las que alcanzan el objetivo—
Mejor autonomía—
Años con esa plataforma—
Corriente media—
Resultado—

Elegí los requisitos y presioná «Comparar plataformas».

Recorrido guiado

  1. Con los valores iniciales (Wi-Fi, 128 KB, cada 60 minutos, objetivo de 3 años), comparás. ESP32-C3 rinde 3,8 años y cumple; ESP32 llega a 2,9 y no cumple; la Pico W apenas supera los 0,2 años; el ESP8266 queda descartado por RAM.
  2. Pasá el envío a 15 minutos. Ninguna llega a los 3 años: el ESP32-C3 cae a 1,0 y el resultado es «No alcanza». La radio Wi-Fi castiga cuando se usa seguido.
  3. Cambiá el radio a Bluetooth LE con 15 minutos y 3 años. Ahora cumplen tres plataformas: el nRF52840 dura 40,3 años con una corriente media de apenas 6 µA. Una radio más barata por envío cambia todo el panorama.
  4. Con Wi-Fi, pedí 512 KB de RAM: solo el ESP32 sobrevive, con 2,9 años: «No alcanza». A veces los requisitos de memoria (una pila grande, imágenes, un búfer de datos) deciden por sí solos.
  5. Elegí LoRa con 32 KB y 60 minutos: solo el STM32WL es candidato y rinde 24 años. Subí la RAM a 128 KB y el resultado es «Sin candidata»: el único chip con LoRa de la lista tiene 64 KB.
  6. Volvé a Wi-Fi con 128 KB y 60 minutos y mirá la Pico W: su corriente dormida de cerca de 1 mA la deja en 0,2 años aunque la corriente activa sea parecida a la del resto. Dormir bien importa tanto como transmitir poco.
Desafío: cuánto vale acortar la conexión Wi-Fi

Un ESP32 con Wi-Fi cada 15 minutos rinde 0,8 años porque cada envío activa la radio unos 2,5 s a 100 mA: 96 × 100 × 2,5 / 3600 = 6,67 mAh por día, más 0,24 del sueño, 6,91 en total. Si se reutiliza la configuración de red (dirección IP fija, canal guardado, sin DNS) y el tiempo activo baja a 0,5 s, el gasto de envíos cae a 1,33 mAh y el total a 1,57 mAh por día: 2000 / 1,57 ≈ 1272 días, es decir 3,5 años. Sin cambiar de chip ni de batería, la autonomía se multiplicó por 4,4 optimizando el firmware. El tiempo con la radio encendida es el parámetro más rentable de ajustar.

10 · Comprensión

Confusiones frecuentes

«El ESP32 es el mejor, así que lo uso siempre»

Es una excelente plataforma general, pero no la más económica para un producto masivo, ni la de menor consumo con Bluetooth, ni tiene LoRa. Un nRF52840 le gana en batería con BLE y un chip LoRa en alcance. Se elige por requisitos, no por fama.

«Si el chip dice 10 µA, mi placa va a gastar 10 µA»

La cifra del fabricante es del chip dormido. La placa de desarrollo suma conversor USB, regulador y LED que gastan miliamperes. Para medir el consumo real hay que medir el diseño completo, y para productos de batería, diseñar el circuito sin esos componentes.

«Más RAM y más núcleos siempre ayudan»

Un procesador más potente consume más, cuesta más y se programa con más cuidado. Si el trabajo es leer un sensor y enviar un mensaje, sobra casi todo. Se necesita lo que exige la pila de red, la seguridad y la actualización remota, más un margen razonable.

«Wi-Fi es la mejor opción porque ya hay Wi-Fi en todos lados»

Para dispositivos con red eléctrica o carga frecuente es excelente. Para un sensor con batería de años, conectar al Wi-Fi cada vez es de las operaciones más caras en energía. En ese caso pesan más el Bluetooth LE con un gateway, o LoRa.

«Un módulo es lo mismo que una placa de desarrollo»

La placa de desarrollo es una herramienta de laboratorio con extras para facilitar el uso. El módulo es una pieza para integrar en un producto, con la radio certificada y sin esos componentes de consumo. Comparten chip, pero no objetivo.

«El consumo depende solo del chip»

Depende también del firmware: cuánto tiempo mantiene la radio encendida, con qué frecuencia envía, qué modo de sueño usa y cuántos periféricos deja activos. El mismo chip puede durar meses o años según cómo esté programado.

11 · Práctica guiada

Predecí antes de comprobar

1. Elegir por requisito

Proponé una plataforma para cada caso: (a) un sensor de humedad a 3 km de la casa, con batería, que informa cada 30 minutos; (b) una lámpara inteligente con Wi-Fi, enchufada, que se controla desde el celular; (c) un sensor de temperatura de oficina con BLE que debe durar 5 años con una pila.

Ver solución

(a) STM32WL u otro chip con LoRa: el alcance de kilómetros y la batería mandan. (b) ESP32 o ESP32-C3: tiene energía de la red, necesita Wi-Fi y el ecosistema ayuda. (c) nRF52840: BLE con consumo de microamperes, ideal para años con una pila.

2. Energía por día

Un ESP32 duerme con 10 µA y cada 15 minutos transmite por Wi-Fi durante 2,5 s a 100 mA. ¿Cuántos mAh por día gasta y cuánto dura una batería de 2000 mAh?

Ver solución

Dormido: 0,010 mA × 24 h = 0,24 mAh. Envíos: 96 por día × 100 mA × 2,5 s / 3600 = 6,67 mAh. Total 6,91 mAh por día. La batería dura 2000 / 6,91 ≈ 290 días, es decir 0,8 años.

3. Qué pesa más

En el ejercicio anterior, ¿qué porcentaje de la energía se gasta durmiendo y cuál transmitiendo? ¿Qué conviene optimizar?

Ver solución

Durmiendo: 0,24 / 6,91 ≈ 3,5 %. Transmitiendo: 96,5 %. Conviene optimizar la transmisión: acortar el tiempo activo de la conexión o enviar menos seguido. Bajar la corriente dormida de 10 a 5 µA ahorraría menos del 2 % del total.

4. Acortar la conexión

Con ese ESP32, el tiempo activo se reduce de 2,5 s a 0,5 s por envío. ¿Cuánto dura ahora la batería?

Ver solución

Envíos: 96 × 100 × 0,5 / 3600 = 1,33 mAh. Total 1,33 + 0,24 = 1,57 mAh por día. 2000 / 1,57 ≈ 1272 días, 3,5 años. Sin tocar el hardware, la autonomía se multiplicó por 4,4.

5. El costo de dormir mal

Una Pico W duerme con unos 1000 µA y envía por Wi-Fi una vez por hora (70 mA durante 3 s). ¿Cuántos mAh por día y cuánto dura una batería de 2000 mAh?

Ver solución

Dormida: 1 mA × 24 h = 24 mAh. Envíos: 24 × 70 × 3 / 3600 = 1,4 mAh. Total 25,4 mAh por día; 2000 / 25,4 ≈ 79 días. Casi todo el gasto (94 %) es de la corriente dormida, y por eso la plataforma no es apta para batería sin rediseñar la alimentación.

6. La memoria de la actualización remota

Un firmware con la pila de red ocupa 900 KB. ¿Cuánta flash necesita un esquema de actualización remota que conserva la versión actual mientras descarga la nueva?

Ver solución

Al menos 1800 KB para las dos copias del firmware, más espacio para el cargador de arranque, la configuración y un margen. En la práctica, un módulo con 4 MB de flash es la elección típica. Una plataforma con 1 MB de flash no admitiría este esquema.

12 · Síntesis

Ideas para recordar

  • Un microcontrolador con conectividad es un SoC que integra núcleo, memorias, periféricos, radio, aceleración de seguridad y gestión de energía; la antena queda fuera del chip.
  • Ninguna radio gana en todo: Wi-Fi da velocidad y acceso directo a Internet, BLE da bajo consumo y enlace con el celular, LoRa da kilómetros, y el celular cubre equipos sin red propia.
  • Las plataformas habituales son ESP8266, ESP32, ESP32-C3, Pico W, nRF52840 y STM32WL; cada una tiene su lugar según radio, memoria y consumo.
  • La cifra de consumo dormido del chip no es la de la placa de desarrollo: ésta suma componentes que pueden gastar miliamperes.
  • El consumo se divide entre el estado dormido (microamperes) y el activo con radio (decenas o cientos de miliamperes); en la mayoría de los diseños la transmisión domina la energía.
  • Las palancas para ahorrar son acortar el tiempo con la radio encendida, enviar menos seguido y usar una radio más barata por mensaje.
  • El mismo chip llega al producto como placa de desarrollo, módulo certificado o chip en placa propia; el módulo simplifica la homologación de radio.
  • Se elige descartando por radio, memoria y energía, y desempatando con periféricos, seguridad, ecosistema, costo y disponibilidad.

¿Listo para el tema 5?

Antes de avanzar, tomá la ficha de un caso de uso del tema anterior y elegí una plataforma: indicá qué radio necesita, cuánta memoria, cuál sería su corriente media y cuánto dura con una batería dada. Si podés justificar la elección con números, estás listo para programarla.

En el próximo tema armamos el entorno de desarrollo y el primer dispositivo conectado: toolchain, placa de desarrollo, y un programa mínimo que se conecta a la red y comunica su estado.