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.