USD

Cómo seleccionar y usar el módulo ESP32 con Wi-Fi/Bluetooth adecuado para una aplicación de IoT industrial

Por Jacob Beningo

Colaboración de Editores de Digi-Key de América del Norte

A medida que la automatización industrial se acelera, los ingenieros en la fábrica trabajan para conectar los sistemas a internet de las cosas (IoT), lo que, en muchos sentidos, ha hecho que las plantas de fábrica más antiguas queden en el pasado. Sin embargo, tanto para sistemas nuevos como heredados, la conectividad inalámbrica a IoT mediante Wi-Fi o Bluetooth se ha hecho relativamente simple utilizando módulos y kits ESP32.

Creado y desarrollado por Espressif Systems, ESP32, una serie de microcontroladores de bajo costo y de bajo consumo con sistema en chip con Wi-Fi y Bluetooth de modo dual integrados, es un avance para los ingenieros de automatización que no quieren verse envueltos en los matices de la radiofrecuencia (RF) y el diseño inalámbrico. Como una radio combinada Wi-Fi/Bluetooth de bajo costo, la serie ha ganado popularidad no solo entre los aficionados sino también entre los desarrolladores de IoT. Su bajo consumo de energía, sus múltiples entornos de desarrollo de código abierto y sus bibliotecas la hacen perfectamente adecuada para desarrolladores de todo tipo.

Sin embargo, la serie ESP32 viene en tantos módulos y placas de desarrollo diferentes que puede ser difícil seleccionar los modelos correctos.

Este artículo presenta soluciones de la serie ESP32 y muestra cómo los desarrolladores pueden identificar el módulo y la placa de desarrollo correctos para comenzar a conectar su aplicación a IoT.

El módulo ESP32

El módulo ESP32 es una solución de Wi-Fi/Bluetooth todo en uno, integrada y certificada que proporciona no solo la radio inalámbrica, sino también un procesador integrado con interfaces para conectarse con varios periféricos. El procesador en realidad tiene dos núcleos de procesamiento cuyas frecuencias operativas pueden controlarse independientemente entre 80 megahercios (MHz) y 240 MHz. Los periféricos del procesador facilitan la conexión a una variedad de interfaces externas como:

  • Interfaz periférica serial (SPI)
  • I2C
  • Transmisor receptor asíncrono universal (UART)
  • I2S
  • Ethernet
  • Tarjetas SD
  • Interfaces táctiles y capacitivas

Hay varios módulos ESP32 diferentes que un desarrollador puede seleccionar según sus necesidades de aplicación. El primer módulo ESP32 y el más popular es el ESP32-WROOM-32D, que funciona hasta 240 MHz (Figura 1). El módulo incluye una antena de rastreo de placa de CI, que simplifica la implementación. También evita tener que agregar el hardware adicional y la complejidad de diseño asociada con una antena conectada IPEX. Sin embargo, si se selecciona la opción de conector IPEX, hay muchas buenas opciones de antenas, como la W24P-U de Inventek Systems.

Imagen del módulo ESP32-WROOM-32D de Espressif SystemsFigura 1: El módulo ESP32-WROOM-32D funciona a velocidades de hasta 240 MHz y contiene 8 MB de flash de la SPI integrada. (Fuente de la imagen: Espressif Systems)

El módulo contiene 4 megabytes (MB) de flash y tiene 38 pines dispuestos para minimizar el tamaño del módulo, lo que lo hace casi cuadrado. De hecho, el WROOM-32D es completamente compatible con los pines del ESP-WROOM-32U (Figura 2). El WROOM-32U reemplaza la antena de rastreo integrada de la placa de CI con un conector IPEX, basado en el diseño U.FL de Hirose. Al hacerlo, el WROOM-32U ahorra espacio en la placa y permite a los desarrolladores conectar una antena externa que pueden colocar dentro de su producto para obtener características óptimas de RF.

Imagen del módulo ESP32-WROOM-32U de Espressif SystemsFigura 2: El ESP32-WROOM-32U es compatible con los pines del WROOM-32D, pero reemplaza la antena de rastreo integrada de este último con un conector IPEX para una antena externa, lo que permite obtener características de RF optimizadas. (Fuente de la imagen: Espressif Systems)

Un punto interesante sobre los módulos WROOM-32D es que también tienen varios tamaños de memoria flash. Los módulos vienen en variantes de soporte de memoria adicionales, como el ESP32-WROOM-32D con 8 MB y el ESP-WROOM-32D con 16 MB.

Selección de una placa de desarrollo ESP32 para control industrial

Los módulos ESP32 son una gran opción al diseñar una placa que se utilizará en la producción o cuando se colocarán en una placa que se usará en un volumen "alto". Para el desarrollo de dispositivos de bajo volumen en la planta de fabricación, los desarrolladores pueden usar una placa de desarrollo ESP32. Estas placas van desde placas muy básicas para "comenzar" hasta placas sofisticadas que incluyen procesadores secundarios y LCD. Hay algunas que también son adecuadas para aplicaciones de automatización industrial, suponiendo que la simplicidad del desarrollo es un requisito clave.

Por ejemplo, tenemos la ESP32-DEVKITC-32D-F (Figura 3). Esta es una placa adaptadora simple para el WROOM-32D que tiene todos los circuitos de acondicionamiento de energía y programación que un diseñador o desarrollador necesita para comenzar. La placa se alimenta a través de un microconector USB incorporado o a través de la cabecera de conexión V-IN. Se pueden usar puentes o cables para conectar varios componentes al WROOM-32D.

Imagen de la placa de desarrollo ESP32-DEVKITC-32D-F de Espressif SystemsFigura 3: La placa de desarrollo ESP32-DEVKITC-32D-F incluye cabeceras de conexión para conectarse a cualquiera de los pines del WROOM-32D y puede alimentarse a través de USB para fines de desarrollo. (Fuente de la imagen: Espressif Systems)

Otro ejemplo es el escudo Airlift ESP32 de Adafruit Industries. Este no solo incluye el WROOM-32D, sino que también tiene espacio adicional para la creación de prototipos (Figura 4). Este espacio para la creación de prototipos se puede usar para agregar conexiones a otros escudos además de agregar circuitos personalizados. Un desarrollador podría usar esta área para construir circuitos de entrada y salida para aplicaciones de automatización industrial de bajo voltaje. También hay un conector de tarjeta SD integrado que facilita el desarrollo de una aplicación de registro de datos.

Imagen del escudo Adafruit Airlift ESP32Figura 4: El escudo Adafruit Airlift ESP32 permite a los diseñadores crear prototipos a partir de su diseño o construir circuitos únicos que puedan usarse en aplicaciones de automatización industrial. El Airlift incluye un espacio para prototipos que se puede utilizar para circuitos dedicados. (Fuente de la imagen: Adafruit Industries)

Puede haber algunas aplicaciones de automatización industrial en las que se utiliza una placa de desarrollo con un procesador adicional, y donde el ESP32 solo proporcionará conectividad en lugar de manejar toda la carga de la aplicación. En estas aplicaciones, la placa de desarrollo o el producto pueden tener conectores PMOD de expansión integrados.

En lugar de diseñar a medida una placa PMOD para el ESP32, los desarrolladores pueden aprovechar la placa adaptadora PMOD ESP32 de Digilent (Figura 5).

La placa PMOD ESP32 proporciona un conector estándar PMOD junto con lo siguiente:

  • Un indicador de encendido led
  • Un botón de usuario integrado
  • Expansión de E/S de cuatro pines
  • Puentes para la configuración de arranque

Imagen de la placa PMOD ESP32 de DigilentFigura 5: La placa PMOD ESP32 de Digilent proporciona el módulo ESP32 en un formato de expansión fácil de conectar para usar con otros procesadores y placas de desarrollo. (Fuente de la imagen: Digilent)

La placa ESP-WROVER-KIT de Espressif Systems proporciona una solución de desarrollo para el ESP32 completa con todo lo que los diseñadores necesitan para desarrollar una aplicación basada en ESP32 (Figura 6). Por ejemplo, la WROVER incluye un convertidor USB a serie FT2232HL de FTDI que facilita la programación del módulo ESP32 sin la necesidad de herramientas de programación personalizadas. La placa también incluye una pantalla LCD integrada de 3.2 pulgadas, un conector microSD, un led rojo, verde y azul (RGB) y una interfaz de cámara. La placa de desarrollo también tiene todas las E/S alineadas y fácilmente accesibles a través de cabeceras con pines.

Diagrama de la placa ESP-WROVER-KIT de EspressifFigura 6: La placa ESP-WROVER-KIT de Espressif proporciona a los desarrolladores de automatización industrial un módulo ESP32 que tiene acceso a LED RGB, ranura microSD, cámara, pantalla LCD y expansión de E/S de fácil acceso. (Fuente de la imagen: Espressif Systems)

Una vez que un diseñador decide cuál módulo y cuál placa de desarrollo se adaptan mejor a su aplicación, debe dedicarse a buscar el entorno de desarrollo para el ESP32 que mejor se adapte a sus necesidades.

Selección de un entorno de desarrollo ESP32

El ESP32 se ha vuelto tan popular que se puede elegir entre varios entornos de desarrollo diferentes para desarrollar y programar el dispositivo. Las herramientas de desarrollo más populares incluyen:

  • El marco de desarrollo de IoT (IDF) de Espressif
  • El entorno completo de desarrollo integrado (IDE) de Arduino
  • MicroPython

El primer entorno, IDF de Espressif, es una cadena de herramientas de desarrollo para desarrolladores de software integrado con experiencia. La cadena de herramientas incluye varias piezas útiles, como un IDE para desarrollar la aplicación, un compilador, bibliotecas y ejemplos. El IDF utiliza FreeRTOS como sistema operativo base en tiempo real (RTOS) junto con la pila TCP/IP lwIP y TLS 1.2 para Wi-Fi.

Para los desarrolladores que tienen poca experiencia en programación, el popular IDE de Arduino también se puede utilizar para desarrollar una aplicación e implementarla en el ESP32. Si bien el IDE de Arduino es un poco más lento y pesado que un entorno de desarrollo profesional, ofrece muchos ejemplos y soporte para el ESP32, lo que puede hacer que el desarrollo para un novato sea mucho más fácil.

Finalmente, para los desarrolladores que estén interesados en desarrollar su aplicación en Python, el ESP32 es compatible con el núcleo de código abierto MicroPython. Los desarrolladores pueden cargar MicroPython en el ESP32 y luego desarrollar scripts de Python para su aplicación. Esto puede hacer que sea muy fácil actualizar la aplicación sobre la marcha en un entorno industrial y eliminar las capas de experiencia requeridas que normalmente vienen con el desarrollo integrado.

Consejos y trucos para trabajar con el ESP32

Comenzar a usar el ESP32 no es difícil, y una búsqueda en la web proporcionará descripciones detalladas de cómo configurar los diversos entornos de software. Dicho esto, hay muchos detalles y muchas decisiones que deben tomar en cuenta los desarrolladores que trabajan con el ESP32 por primera vez. A continuación, se brindan algunos "consejos y trucos" para comenzar:

  • Identifique y configure cuidadosamente los pines de arranque de un módulo (MTDI, GPIO0, GPIO2, MTDO y GPIO5) para cargar una aplicación desde la fuente de memoria correcta (flash interna, QSPI, descarga, habilitar/deshabilitar mensajes de depuración).
  • Establezca la velocidad de transmisión en baudios de salida en serie a la misma velocidad en baudios que tiene el firmware de arranque del ESP32. Esto permitirá el monitoreo de los mensajes de arranque del ESP32 y los mensajes de depuración de la aplicación, sin reconfigurar la velocidad de transmisión en baudios.
  • Los usuarios que no tienen experiencia en programación embebida deben grabar MicroPython en el ESP32 para que el código de la aplicación pueda escribirse en el lenguaje del script de Python, que es fácil de aprender.
  • Para la aplicación, busque en internet ejemplos y bibliotecas para el ESP32 para acelerar el desarrollo y la integración de la aplicación (ya hay muchos ejemplos excelentes disponibles).
  • Durante el diseño, asegúrese de que los pines de interconexión de arranque se puedan usar para arrancar en el modo de actualización. Esto hará que sea muy fácil actualizar el firmware en el campo.

Los desarrolladores que siguen estos consejos y trucos verán que pueden ahorrarse mucho tiempo y muchos inconvenientes al trabajar con el ESP32 por primera vez.

Conclusión

Como se muestra, la serie ESP32 tiene varios módulos y placas de desarrollo diferentes que los desarrolladores pueden aprovechar para comenzar a diseñar su aplicación de IoT industrial. La ventaja de usar la serie ESP32 para este propósito es que simplifica el desarrollo al eliminar la necesidad de comprender los circuitos de RF y certificar el receptor inalámbrico. La serie ESP32 también es ampliamente compatible, no solo por el fabricante del módulo, sino también dentro de los círculos profesionales y aficionados. Los desarrolladores que no están familiarizados con el software integrado pueden usar fácilmente el IDE de Arduino o programar su aplicación inalámbrica usando MicroPython.

En resumen, la serie ESP32 es una excelente opción para conectar equipos de automatización industrial de manera rápida y eficiente.

Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de Digi-Key Electronics o de las políticas oficiales de Digi-Key Electronics.

Acerca de este autor

Jacob Beningo

Jacob Beningo es un consultor de software integrado que actualmente trabaja con clientes en más de una docena de países para transformar drásticamente sus negocios mejorando la calidad del producto, el costo y el tiempo de comercialización. Ha publicado más de 200 artículos sobre técnicas de desarrollo de software embebido, es un conferenciante y entrenador técnico muy solicitado y tiene tres títulos que incluyen una Maestría en Ingeniería de la Universidad de Michigan. No dude en ponerse en contacto con él en jacob@beningo.com, en su sitio web www.beningo.com, y suscríbase a su boletín mensual Embedded Bytes Newsletter.

Acerca de este editor

Editores de Digi-Key de América del Norte