Introducción
Al iniciar un proyecto electrónico, elegir el microcontrolador adecuado es clave. Tres de las opciones más populares son:
-
ESP32 (potente en conectividad WiFi/BLE).
-
STM32 (alto rendimiento y flexibilidad).
-
Raspberry Pi Pico (equilibrio entre simplicidad y potencia).
En este artículo, comparamos sus especificaciones, ventajas y casos de uso para ayudarte a decidir.
Microcontroladores analizados, algunos de ellos con placas de expansión para facilitar el test y prototipado:
🔍 Comparativa Técnica
Característica | ESP32 | STM32 (ej: STM32F4) | RPi Pico (RP2040) |
---|---|---|---|
Núcleo | Dual-core Xtensa LX6 (240 MHz) | ARM Cortex-M4/M7 (hasta 480 MHz) | Dual-core ARM Cortex-M0+ (133 MHz) |
Conectividad | WiFi 4 + Bluetooth 4.2/5.0 | Depende del modelo (USB, CAN) | Sin WiFi/BT (necesita módulos) |
GPIOs | 34-38 (con ADC, DAC, PWM) | Hasta 100+ (múltiples periféricos) | 26 (con ADC, PWM) |
Memoria Flash/RAM | 4-16MB / 520KB | 512KB-2MB / 192KB-1MB | 2-16MB (externo) / 264KB |
Precio (USD) | $5-$15 | $5-$30 | $4-$10 |
Análisis en Bajo Consumo, Conectividad Alternativa, Programación e Integración
En la selección de un microcontrolador, aspectos como eficiencia energética, opciones de conectividad IoT no convencionales, facilidad de programación y adaptabilidad a entornos complejos son críticos. Ampliamos la comparativa anterior con un análisis detallado de estos factores.
Comparativa de Eficiencia en Bajo Consumo
Parámetro | ESP32 | STM32 (ej: STM32L4) | RPi Pico (RP2040) |
---|---|---|---|
Consumo activo (Core) | ~40-80 mA (WiFi/BLE activo) | ~20-40 mA (a 80 MHz) | ~15-30 mA (a 133 MHz) |
Modo Deep Sleep | 5-10 µA (con RTC activo) | 1-2 µA (Stop Mode + RTC) | ~0.5-1 mA (Dormant Mode) |
Wake-up sources | Timer, GPIO, touch, UART | Timer, GPIO, LPUART, ADC | GPIO, Timer |
Tiempo de wake-up | ~100-200 ms (WiFi/BLE) | < 5 µs (Low-Power Run Mode) | ~1-2 ms |
Conclusiones:
-
STM32L4 es el rey del ultra-bajo consumo, ideal para sensores autónomos con batería de larga duración (ej: 10 años con CR2032).
-
ESP32 es eficiente en Deep Sleep, pero el consumo en modo activo es alto si se usa WiFi/BLE.
-
RPi Pico no está optimizado para ultra-low-power, pero es viable con modos Dormant.
Ejemplo práctico: Un sensor de temperatura que envía datos cada hora:
STM32L4: 2 µA en sleep + 10 ms activo → 2 años con batería LiPo 1000mAh.
ESP32: 10 µA en sleep + 200 ms activo (WiFi) → 3-6 meses con misma batería.
Opciones IoT Más Allá de WiFi/BLE
1. ESP32
-
Protocolos soportados:
-
LoRa (con módulos como SX1276).
-
Sigfox (con chips externos).
-
Ethernet (mediante adaptador SPI-ETH como W5500).
-
-
Limitación: Requiere hardware adicional para conectividad no nativa.
2. STM32
-
Protocolos nativos:
-
CAN FD (ideal para automoción).
-
RS-485/Modbus (industrial).
-
Thread/Zigbee (con SoCs como STM32WB).
-
-
Ventaja: Soporte integrado para buses industriales.
3. Raspberry Pi Pico
-
Protocolos posibles:
-
PIO para emulación: UART, SPI, incluso DPI (Video).
-
Módulos externos: LoRa, 2G/4G (ej: SIM7000).
-
-
Limitación: Sin periféricos avanzados de comunicación integrados.
Caso de uso:
Agricultura IoT con LoRa: STM32 + módulo LoRa (mayor eficiencia).
Control industrial: STM32 con CAN bus.
Prototipo rápido con LoRa: ESP32 + módulo RFM95.
Facilidad de Programación
Criterio | ESP32 | STM32 | RPi Pico |
---|---|---|---|
Lenguajes soportados | C/C++ (Arduino, ESP-IDF), MicroPython | C/C++ (STM32CubeIDE, Mbed), MicroPython (limitado) | C/C++, MicroPython (oficial) |
Entorno oficial | ESP-IDF (complejo pero potente) | STM32CubeIDE (con HAL/LL) | Pico SDK (simple) |
Librerías disponibles | Amplio soporte para WiFi/BLE, AWS IoT | Librerías industriales (RTOS, FreeRTOS) | Enfoque educativo (MicroPython) |
Debugging | JTAG/SWD (con adaptador) | JTAG/SWD (mejor integrado) | SWD (con picoprobe) |
Recomendaciones:
-
Principiantes: RPi Pico con MicroPython (sintaxis sencilla).
-
IoT rápido: ESP32 + Arduino (librerías pre-hechas para WiFi/MQTT).
-
Proyectos complejos: STM32 + STM32CubeIDE (control fino de registros).
Adaptabilidad e Integración
1. Flexibilidad Hardware
-
ESP32:
-
Ideal para prototipos con conectividad inalámbrica.
-
Limitado en periféricos avanzados (ej: sin CAN bus nativo).
-
-
STM32:
-
Familias especializadas (STM32F4 para potencia, STM32L4 para bajo consumo).
-
Soporte para RTOS (FreeRTOS, Zephyr).
-
-
RPi Pico:
-
PIO (Programmable I/O): Útil para protocolos personalizados (ej: NeoPixel, VGA).
-
Menos opciones de encapsulado (solo disponible en formato QFN).
-
2. Compatibilidad con Shields/Expansión
-
ESP32: Compatible con shields Arduino (ej: Ethernet, LCD).
-
STM32: Soporta estándares industriales (ej: Morpho headers).
-
RPi Pico: Limitado a HATs diseñados para Raspberry Pi (menos opciones).
3. Integración en PCBs Personalizados
-
ESP32: Módulos certificados (ej: ESP32-WROOM) simplifican diseño RF.
-
STM32: Disponible en múltiples encapsulados (LQFP, BGA).
-
RPi Pico: RP2040 puede soldarse directamente (sin módulo).
¿Cuál Elegir? Resumen Final
Necesidad | ESP32 | STM32 | RPi Pico |
---|---|---|---|
Bajo consumo extremo | ❌ Regular | ✅ Mejor (STM32L4) | ❌ Limitado |
IoT sin WiFi/BLE | ❌ (Requiere HW) | ✅ CAN, LoRa, RS-485 | ❌ (Requiere HW) |
Facilidad de programación | ✅ Arduino | ❌ Complejo (HAL) | ✅ MicroPython |
Integración industrial | ❌ | ✅ | ❌ |
Recomendaciones finales:
-
Proyectos IoT con batería: STM32L4 + módulo LoRa.
-
Prototipos WiFi/BLE rápidos: ESP32.
-
Educación o proyectos con PIO: RPi Pico.
Conclusión
La elección depende del balance entre consumo energético, conectividad, complejidad y coste. Mientras el ESP32 domina en IoT inalámbrico, el STM32 ofrece robustez industrial, y el Pico destaca en simplicidad.
🔧 ¿Tienes un proyecto específico? ¡Coméntalo para ayudarte a decidir!
Ejemplos Prácticos
-
ESP32: Estación meteorológica con envío de datos a la nube.
-
STM32: Controlador PID para un brazo robótico.
-
RPi Pico: Controlador de tira LED NeoPixel con efectos personalizados.
Conclusión
-
IoT → ESP32.
-
Alto rendimiento → STM32.
-
Educación/prototipos → RPi Pico.
🔧 ¿Tienes un proyecto específico? ¡Déjalo en los comentarios para ayudarte a elegir!