Introducción
En esta guía veremos los pasos para comprobar y configurar la funcionalidad WiFi de tu PLC ESP32. Con un ejemplo sencillo disponible en Arduino IDE aprenderás a establecer una conexión de red, interactuar con un servidor y enviar peticiones HTTP. Así podrás comprobar que tu montaje funciona correctamente y prepararte para desarrollar aplicaciones más avanzadas.
Para seguir la guía necesitarás componentes de hardware y de software, que se detallan en la sección de requisitos. Una vez montado todo, podrás probar y confirmar la conectividad del PLC consultando los resultados en el monitor serie.
Requisitos
Hardware
- 1 x PLC basado en ESP32
- Fuente de alimentación (12 - 24 V)
- Cable micro tipo B, para programar el PLC basado en ESP32
Software
Prueba de verificación
Para comprobar que la conexión WiFi de tu PLC ESP32 está bien configurada, puedes usar uno de los ejemplos de Arduino IDE. Ve a Archivo > Ejemplos > WiFi y elige uno de los ejemplos WiFi disponibles. En esta guía usaremos el ejemplo WiFiClient.
Este sketch se conecta a una red WiFi determinada, establece una conexión TCP con data.sparkfun.com por el puerto 80 y envía una petición GET con datos como un identificador de stream, una clave privada y un valor incremental. La respuesta del servidor se lee y se muestra en el monitor serie, lo que permite verificar que la conexión y la transmisión de datos funcionan correctamente.
Cómo funciona
- Conexión WiFi:
- La función setup() se conecta a la red WiFi con el SSID y la contraseña indicados. La dirección IP del dispositivo se imprime en el monitor serie.
- Conexión TCP:
- En la función loop() se establece una conexión TCP con el servidor indicado (host) por el puerto 80.
- Transmisión de datos:
- El programa construye una petición HTTP GET con streamId, privateKey y un valor numérico incremental, y después la envía al servidor.
- Respuesta del servidor:
- La respuesta del servidor se lee y se muestra en el monitor serie, lo que permite verificar el funcionamiento.
- Gestión del timeout:
- Si no se recibe respuesta en 5 segundos, se cierra la conexión y se muestra un mensaje de timeout.
Cómo usarlo
- Sustituye los valores de ejemplo ssid y password por las credenciales de tu red WiFi.
- Indica en host el servidor al que quieres conectarte. Por ejemplo, puedes usar data.sparkfun.com.
- Si lo necesitas, personaliza streamId y privateKey para que coincidan con la API o los requisitos de tu servidor.
- Sube el código a tu ESP32 con el botón Subir de Arduino IDE.
- Abre el monitor serie para observar el proceso de conexión, la transmisión de datos y la respuesta del servidor.
Salida esperada
Cuando se establece la conexión a la red WiFi en el bloque setup(), el monitor serie debe mostrar una salida parecida a esta (sustituye "your-ssid" y la dirección IP por el nombre real de tu red y la IP asignada):
Durante la función loop(), el dispositivo envía una petición HTTP GET al servidor indicado. Como ejemplo, esto es lo que puedes ver en el monitor serie al usar el sketch:
Esto demuestra que el ESP32 se ha comunicado correctamente con el servidor y ha recibido una respuesta. Puedes adaptar este ejemplo para realizar otras funciones, como enviar datos de sensores o interactuar con otros servicios, modificando la petición HTTP y su carga útil.
Nota: ten en cuenta que, si usas un PLC M-Duino o Ardbox W-Fi & BLE, la placa Arduino y el ESP32 están conectados mediante el puerto Serial1 del Arduino <-> puerto Serial2 del ESP32. Si quieres monitorizar esta información con el ESP32, puedes usar la misma configuración que se muestra en este artículo. Pero si quieres imprimir los mensajes en el puerto serie del M-Duino, tienes que configurar el código para que lea los datos recibidos por Serial1 y los imprima por Serial. Encontrarás más información al respecto en este artículo.