Comparativa entre ESP32 v.s. ESP8266

Al iniciarse en el mundo del IoT surge fácilmente la duda, ¿con que tarjeta desarrollo mi proyecto? Existen dos opciones muy difundidas para empezar a desarrollar. Las tarjetas basadas en el integrado ESP32 y las basadas en el clásico ESP8266. ¿Cuál debería elegir? ¿Qué me ofrece cada una? Revisemos a detalle los pros y contras de cada una.

Los chips ESP32 y ESP8266 son los integrados más comunes para desarrollar aplicaciones IoT y de automatización, dada su compatibilidad con redes inalámbricas. Ambos se consiguen a precios muy accesibles y son ampliamente difundidos en tarjetas de desarrollo. Algunas de sus especificaciones técnicas son:

MicrocontroladorESP8266ESP32
802.11 b/g/n Wi-FiXtensa Single-core 32-bit L106Xtensa Dual-Core 32-bit LX6 with 600 DMIPS
BluetoothNoBluetooth 4.2 and BLE
Frecuencia de Trabajo80 MHz160 MHz
SRAMNo
FlashNo
GPIO1734
PWM por Hardware /SoftwareNo / 8 canales No / 16 canales
SPI/I2C/I2S/UART2/1/2/24/2/2/2
ADC10-bits12-bits
CANNo
Interfaz Ethernet MACNo
Sensor TouchNo
Sensor de TemperaturaNoSí (versiones antiguas)
Sensor de Efecto HallNo
Temperatura de Trabajo-40ºC to 125ºC-40ºC to 125ºC
Precio$ (3$ – $6)$ ($6 – $12)

Como podrás notar tenemos más periféricos en el ESP32. En específico, tenemos más núcleos en el procesador, trabaja al doble de velocidad, Bluetooth, CAN, Ethernet y sensores de distintos tipos. Además, tiene el doble de pines GPIO que el ESP8266. Pero todo tiene su precio, y es que el ESP32 suele costar casi el doble de lo que cuesta un ESP8266, por lo que desarrollar un proyecto sencillo con el último es una mejor idea para no gastar tanto.

El IDE de Arduino

Aún cuando ambos chips tienen diferencias de hardware ambos son compatibles con las librerías de Arduino, por lo que no tendrás complicaciones para programar tu código fácilmente. Aún así, hay diferencias en las librerías que maneja cada integrado, por lo que habrás que hacer ligeras modificaciones para que tu código pueda funcionar de un integrado a otro.

MicroPython

MicroPython es la alternativa para programar sistemas emebebidos. Si estás familiarizado con el lenguaje Python 3 podrás utilizar fácilmente MicroPython. A diferencia de utilizar la IDE de Arduino, cuando programas con MicroPython puedes utilizar los scripts para ambos chips sin necesidad de hacer modificaciones, por lo que supone una ventaja si estas trabajando con ambas tecnologías.

Las tarjetas de desarrollo

Para desarrollar rápidamente el código necesario para hacer funcionar alguno de estos chips necesitas una tarjeta de desarrollo. La NodeMCU es la tarjeta por excelencia para iniciar el desarrollo de aplicaciones de automatización y IoT. Es económica y está basada en el ESP8266. EN cuanto a la ESP32 existe la ESP32-DevKitC, desarrollada tambien por Espressif. Ambas son compatibles con las librerías de Arduino.

Conclusiones

El ESP32 es más potente que el ESP8266, aunque su precio es más elevado. El ESP8266 ya tiene bastante código desarrollado, por lo que las librerías son confiables y están en constante desarrollo. Por otro lado, las tarjetas de desarrollo basadas en el ESP32 están empezando a ganar popularidad, por lo que la comunidad de desarrolladores y la documentación sigue aumentando con el tiempo.

Si deseas empezar a desarrollar una aplicación IoT y quieres empezar a aprender con un proyecto simple, la ESP8266 es perfecta para tí. Si te animas a desarrollar algo más complejo y dedicarle tiempo al código para que tu aplicación aproveche al máximo tu ESP32, vé con este integrado.

Referencias:

ESP32 vs ESP8266 – Pros and Cons