Skip to Content

Episode 1 — Pump failure alerts on your phone via Telegram with an ESP32 PLC

The complete prompt so Claude Code writes the firmware for you: alerts in seconds, no SCADA, no server
July 21, 2026 by
Technical Team

De Prompt a Planta es la serie donde compartimos, en abierto y completos, los prompts que permiten programar un PLC de Industrial Shields con Claude Code. La IA escribe el código; tú lo validas en banco de pruebas.

El problema

Una bomba o una máquina falla y nadie se entera hasta que alguien pasa por delante — o hasta que el producto ya lleva horas parado. La solución clásica pasa por un SCADA o un servidor intermedio. Aquí no: el propio PLC habla directamente con la API de Telegram y el aviso llega al móvil de mantenimiento en segundos.

El hardware

Un ESP32 PLC 14 de Industrial Shields, con la entrada digital I0_0 conectada al contacto libre de tensión del relé térmico de la bomba (o a la señal de 24V de un presostato). Nada más.

El prompt (cópialo entero)

Pégalo tal cual en Claude Code. Si tu modelo es otro de la familia ESP32 PLC, cámbialo en la primera línea: el mapeo de entradas/salidas cambia entre modelos.

Quiero programar un ESP32 PLC 14 de Industrial Shields para que avise por
Telegram cuando falle una bomba.

Hardware: ESP32 PLC 14 de Industrial Shields (si tu modelo es otro de la
familia ESP32 PLC — 19R, 21, 38R, 42, 57R o 58 — escribe aquí el tuyo: el
mapeo de entradas/salidas cambia entre modelos). La entrada digital I0_0
recibe la señal de fallo: un contacto libre de tensión del relé térmico de la
bomba (o, si en tu caso es una señal de 24V de un presostato, indícalo en el
código con un comentario para poder adaptarlo).

Importante: dime también qué placa debo seleccionar en Arduino IDE (paquete de
placas de Industrial Shields) para que I0_0 corresponda al pin físico correcto
de mi modelo, y si esa entrada admite otro nombre en mi placa, indícalo.

Comportamiento que necesito:
1. Conexión WiFi con reconexión no bloqueante: si se pierde la red, el ESP32
   debe seguir leyendo la entrada y controlando con normalidad, e intentar
   reconectar en segundo plano sin usar delay() ni bloquear el loop.
2. Cuando I0_0 pase de OK a fallo, enviar un mensaje a Telegram con la hora y
   la máquina afectada.
3. Cuando el fallo desaparezca (I0_0 vuelve a OK), enviar otro mensaje
   confirmando que se ha resuelto.
4. Si el fallo persiste, enviar un recordatorio cada 30 minutos, no más seguido.
5. En ningún caso enviar un mensaje por cada vuelta del loop: solo en cambios
   de estado y en los recordatorios de 30 min.
6. Usar la librería HTTPClient sobre HTTPS contra la API de Telegram Bot
   (api.telegram.org, método sendMessage), con BOT_TOKEN y CHAT_ID como
   constantes al principio del código, claramente marcadas como placeholder.

Al final del código, explícame:
- Cómo se cablea físicamente la entrada I0_0 (con qué polaridad y qué pasa si
  el contacto es NA o NC).
- Cómo consigo el BOT_TOKEN hablando con @BotFather en Telegram.
- Cómo consigo el CHAT_ID de mi chat o grupo.

Antes de nada, dime cómo validar el sistema en un banco de pruebas simulando el
fallo con un interruptor manual en I0_0, antes de conectarlo a la máquina real.

Qué obtienes

Claude Code entrega el sketch completo, listo para subir con Arduino IDE: la lógica de estados (fallo aparece / fallo resuelto / recordatorio cada 30 minutos, sin spam), la reconexión WiFi no bloqueante y las llamadas HTTPS a Telegram. Y además te explica el cableado de I0_0 (contacto NA o NC), cómo crear el bot con @BotFather y cómo obtener tu CHAT_ID.

Antes de conectarlo a la máquina real

Regla de la casa: la IA escribe el código, el técnico lo valida. Monta primero un banco de pruebas con un interruptor manual en I0_0 simulando el fallo, comprueba los tres mensajes (fallo, resuelto, recordatorio) y la reconexión WiFi, y solo entonces cablea el contacto real.

Tiempo

Antes: entre medio día y un día de programación. Con esto: prompt, código y validación en banco en menos de una hora.

Variant

Si en tu planta ya tienes Node-RED corriendo, el nodo node-red-contrib-telegrambot hace lo mismo desde el servidor, sin tocar firmware, y además acepta comandos entrantes desde Telegram hacia la máquina.


Cada semana, un prompt real y verificado. Próximo episodio: publicar las variables de tu máquina por MQTT en JSON — la puerta de entrada a la Industria 4.0. Y si quieres el archivo completo de prompts en tu correo, apúntate a la newsletter De Prompt a Planta.

​Search in our Blog

Technical Team July 21, 2026
Share this post
Tags

Looking for your ideal Programmable Logic Controller?

Take a look at this product comparison with other industrial controllers Arduino-based. 

We are comparing inputs, outputs, communications and other features with the ones of the relevant brands.

PLC Comparison