Ir al contenido

Interfaz web para programar un ESP32 PLC por aire (OTA)

8 de julio de 2024 por
Interfaz web para programar un ESP32 PLC por aire (OTA)
Boot & Work Corp. S.L, Martí Schnabel

Introducción

El ESP32 destaca como un microcontrolador versátil y potente, que además permite actualizaciones por aire (OTA, Over-The-Air). Este artículo explora el ESP32 OTA Web Updater, una herramienta que simplifica la actualización inalámbrica del código en dispositivos ESP32, en concreto en un ESP32 PLC.

Veremos las funcionalidades que hacen valioso el ESP32 OTA Web Updater para desarrolladores y aficionados. Desde la carga inicial del código por el puerto serie hasta la creación de un servidor web embebido accesible desde un navegador, cada aspecto contribuye a que cargar código por OTA en un PLC ESP32 resulte cómodo.

Requisitos

Para seguir este tutorial es necesario cumplir los siguientes requisitos:

  • ESP32 PLC: disponer de cualquier modelo de nuestro ESP32 PLC con el dispositivo alimentado dentro del rango especificado de 12-24 V.
  • Arduino IDE: tener Arduino IDE en tu ordenador con el paquete de placas industrialshields-esp-32 integrado en el IDE. Sigue este tutorial para instalarlo si no lo tienes.
  • Conexión WiFi: disponer de una red WiFi estable y accesible para que el PLC ESP32 se conecte y se comunique con otros dispositivos.


ESP32 OTA Web Updater

El ESP32 OTA Web Updater facilita la actualización inalámbrica del código en dispositivos ESP32. Estas son sus funcionalidades principales:

Carga inicial del código por el puerto serie: La primera versión del código debe cargarse en el ESP32 por el puerto serie. Esto sienta la base para las futuras actualizaciones por aire (OTA).

Creación del servidor web: El ESP32 incorpora un servidor web al que se accede desde un navegador. Este servidor es la interfaz para cargar el código de forma remota, de manera sencilla y cómoda.

Inclusión del código base: Todo código destinado a actualizaciones por aire debe incorporar el código base. Este fragmento esencial permite que el ESP32 se reescriba y se reprograme a través de OTA. Si no se carga este código base junto con el sketch principal, se pierde el acceso al servidor web para futuras actualizaciones.

Este es el código base necesario en cada carga al PLC ESP32:

OTA_ESP32.ino

Descargar


Configuración de las credenciales WiFi: En el código hay valores de ejemplo para las credenciales WiFi. Debes sustituir YourSSID y YourPassword por los datos reales de tu red WiFi. Con este paso el ESP32 podrá conectarse a la red WiFi indicada.

/* Write your SSID and Password to access to your Wifi */

const char* ssid = "YourSSID";

const char* password = "YourPassword";

Carga del código: Tras configurar las credenciales WiFi e integrar el código base, carga el sketch en el ESP32. Así el dispositivo se conecta a la red WiFi indicada y activa el servidor web para las siguientes actualizaciones por aire. Ten en cuenta que puedes cargar solo el código base, sin ningún otro código, si quieres dejar el ESP32 preparado para futuras cargas OTA.

Actualización del código

Para iniciar la actualización, abre un navegador e introduce la dirección IP del ESP32 (visible en el monitor serie al conectarse a la WiFi) o usa el DNS local esp32.local indicado en el código, que utiliza mDNS. Aparecerá una página de inicio de sesión, como se ve en la figura siguiente.

Página de inicio de sesión

Introduce las credenciales que prefieras. Por defecto, el usuario es admin y la contraseña es admin. Tras iniciar sesión correctamente accederás a la página para cargar código nuevo en el PLC ESP32 por aire (OTA), como muestra la figura siguiente.

Página de actualización

Implementación del código nuevo

Para futuras actualizaciones es fundamental reprogramar el PLC ESP32 con el código inicial. Además, inserta tu código nuevo donde se indica en el código base: el código de setup debajo de /* Additional set up code here */ y el código de loop debajo de /* Additional loop code here */.


Por ejemplo, un programa sencillo para hacer parpadear un LED sería:

/* Code from the core code */


void setup(){

​ ​/* Set up code from the core code */


​​/* Additional set up code here */

​pinMode(Q0_0, OUTPUT);

}


void loop() {

​/* Loop code from the core code */


​/* Additional loop code here */

  ​digitalWrite(Q0_0, HIGH);

  ​delay(1000);

  ​digitalWrite(Q0_0, LOW);

  ​delay(1000);

}

Generación de un archivo .bin

Para cargar el código en el ESP32 por OTA, debe estar en formato binario. Sigue estos pasos:

  1. En Arduino IDE, ve al menú Programa.
  2. Pulsa Exportar binario compilado, como muestra la figura siguiente.


Generación de un archivo .bin

Esta acción genera un archivo .bin con el código compilado, necesario para el proceso de actualización OTA.

Carga del código nuevo por aire (OTA)

Una vez generado el archivo .bin, vuelve a la página web OTA. Con el campo de archivo, selecciona el .bin generado y pulsa el botón "Update". La barra de progreso indica el estado de la carga. Durante el proceso el ESP32 se reiniciará y se aplicará el código nuevo. Sigue el progreso en el monitor serie para ver los mensajes de la actualización o posibles errores.


Captura de la actualización de un código


Con estos pasos has implementado, compilado y cargado correctamente código nuevo en tu PLC ESP32 por aire, una forma cómoda y eficiente de mantener el dispositivo actualizado.

Buscar en nuestro blog

Interfaz web para programar un ESP32 PLC por aire (OTA)
Boot & Work Corp. S.L, Martí Schnabel 8 de julio de 2024
Compartir esta publicación
Etiquetas

¿Estás buscando tu Controlador Lógico Programable ideal?

Echa un vistazo a esta comparativa de producto de varios controladores industriales basados en Arduino.

Comparamos entradas, salidas, comunicaciones y otras especificaciones con las de los equipos de otras marcas destacadas.

Comparativa de PLCs