Caso de estudio · Restauración · ESP32 PLC 21
Cada pedido, un solo camino a la cocina.
Un PLC con WiFi recoge los pedidos. Los Panel PC los muestran en cocina.
Los pedidos entran por muchos sitios. Todos acaban en un solo PLC.
El PLC envía cada pedido a las pantallas: los cocineros ven qué cocinar, la zona de preparación lo ve todo.
Este caso describe el diseño de un sistema de pedidos para restaurantes con equipos de Industrial Shields. No cita a ningún restaurante ni publica resultados de uno. Es un diseño de referencia: el caso dice que se puede adaptar a las necesidades de cada local. Esta página sigue un pedido desde que se toma hasta que la comida llega al cliente.
El reto
Muchas formas de pedir. Una cocina que no puede perder ningún pedido.
Los clientes piden de formas distintas: en la mesa, con su propio móvil, desde la web o por teléfono. La cocina y la zona de preparación necesitan cada pedido en sus pantallas, cada una con los detalles que le hacen falta. Y todos tienen que saber dónde está un pedido, hasta que la comida llega al cliente.
Muchas formas de pedir
El personal introduce los pedidos en la mesa. Los clientes piden con su propio móvil o tablet en el local, a través de una app. Los pedidos a domicilio llegan por la web o por teléfono.
Un controlador para todos
Todos los pedidos van a un PLC por WiFi o por Ethernet. El PLC es el centro de control y procesa cada pedido.
Cada equipo ve su vista
Las pantallas de cocina muestran solo lo que necesitan los cocineros. La zona de preparación ve todos los detalles, para comprobar que no falta nada.
Seguir cada pedido
Cancelar un pedido, marcar los platos que ya están hechos y seguir el pedido en cada paso hasta que el cliente tiene la comida.
Un sistema que cambia con el restaurante
El hardware se puede modificar y el software se puede reprogramar para cada pequeño cambio: una carta nueva, una pantalla nueva, una forma nueva de pedir.
Cómo funciona
Tres fases: tomar, preparar, entregar.
Cada fase sigue una parte de un pedido. Pulsa los botones. Los paneles son simulaciones ilustrativas: pedidos, platos, estados, tiempos y temas son ejemplos, no datos de un restaurante.
Cuatro entradas. Un controlador.
El personal introduce los pedidos en un Panel PC. Los clientes piden con su propio móvil o tablet por WiFi. Los pedidos a domicilio llegan por la web o por teléfono: el personal introduce la llamada en un Panel PC, como un pedido en la mesa. Cada pedido va al PLC, que lo guarda y lo reenvía. Elige un canal y pulsa Enviar el pedido.
- Personal y llamadas: Panel PC, Ethernet
- App del cliente en el local: WiFi
- Web: servidor MQTT a través de una VPN (ejemplo)
Pasos del pedido (ejemplo)
Simulación ilustrativa. Valores de ejemplo, sin datos de un restaurante. Pedidos y números de ejemplo. El caso dice que todos los pedidos van al PLC por WiFi o por Ethernet, y usa un servidor MQTT al que se llega a través de una VPN. No publica cómo llega la web al PLC. Una forma habitual de hacerlo: el servidor de la web publica cada pedido en el servidor MQTT.
El mismo pedido, dos pantallas.
El PLC envía el pedido a los Panel PC por Ethernet, a través de un switch. La pantalla de cocina muestra solo los platos y sus notas. La pantalla de la zona de preparación muestra todos los detalles, para comprobar que no falta nada antes de que salga el pedido. Cambia de pantalla, marca los platos hechos o cancela el pedido.
- Vista de cocina: solo platos y notas
- Vista de preparación: el pedido entero
- Cancelar o marcar como hecho desde un Panel PC
Eventos de las pantallas (ejemplo)
Simulación ilustrativa. Valores de ejemplo, sin datos de un restaurante. Pedido y platos de ejemplo. El caso dice que las pantallas de cocina muestran solo la información útil para los cocineros, que la zona de preparación ve todos los detalles del pedido y que el personal puede cancelar un pedido o marcarlo como hecho. No publica las pantallas.
Seguir el pedido hasta que llega la comida.
Cada paso actualiza el pedido en el PLC, y todas las pantallas ven el nuevo estado. En el envío a domicilio, los repartidores controlan sus pedidos con su propia versión de la app, en su móvil. Elige en el local o a domicilio, y pulsa Paso siguiente.
- Un estado por pedido, el mismo en todas las pantallas
- Los repartidores actualizan sus pedidos desde la app
- Acceso remoto a través de una VPN al servidor MQTT
Mensajes de estado (ejemplo)
Simulación ilustrativa. Valores de ejemplo, sin datos de un restaurante. Estados, tiempos y nombres de temas de ejemplo. El caso dice que el sistema sigue cada pedido en todo momento hasta que el cliente tiene la comida, y que los repartidores controlan sus pedidos con su propia versión de la app. No publica los estados, los temas ni la app.
Arquitectura del sistema
¿Cómo gestiona un PLC el sistema de pedidos de un restaurante?
Un PLC con WiFi y Ethernet recoge los pedidos de todos los canales. Los clientes del local los envían por WiFi desde sus propios móviles y tablets. El personal los introduce en Panel PC conectados al PLC por Ethernet a través de un switch. El PLC procesa cada pedido y lo envía a los Panel PC de la cocina y de la zona de preparación, cada uno con su propia interfaz hecha con Node-RED. Un servidor MQTT, al que se llega a través de una VPN, conecta el PLC con el exterior.
| Dato | Entre | Enlace | Función |
|---|---|---|---|
| Pedido en la mesa o por teléfono | EntrePersonal, Panel PC → PLC | EnlaceEthernet | FunciónEl personal introduce el pedido, también el de las llamadas |
| Pedido desde la app del cliente | EntreMóvil, tablet → PLC | EnlaceWiFi | FunciónLos clientes piden con su propio dispositivo en el local |
| Pedido a domicilio desde la web | EntreWeb → PLC | EnlaceMQTT, VPN | FunciónCamino de ejemplo: el caso no lo publica |
| Pedidos a las pantallas | EntrePLC → switch → Panel PC | EnlaceEthernet | FunciónVista de cocina y vista de la zona de preparación |
| Plato hecho, pedido cancelado | EntrePanel PC → PLC | EnlaceEthernet | FunciónEl nuevo estado llega a todas las pantallas |
| Estado del reparto | EntreApp del repartidor → PLC | EnlaceMQTT, VPN | FunciónEjemplo: en camino, entregado |
| Acceso remoto | EntreServidor MQTT ↔ PLC | EnlaceVPN | FunciónEl caso conecta el servidor MQTT con el PLC a través de una VPN |
Por qué funciona
Un sitio para cada pedido. Una pantalla para cada equipo.
Un sitio para cada pedido
Todos los canales acaban en el PLC. Así, todas las pantallas muestran el mismo pedido, en el mismo estado.
Cable donde importa
El PLC y los Panel PC se comunican por Ethernet a través de un switch. El WiFi es para los móviles y las tablets de los clientes.
Cada equipo ve su trabajo
Los cocineros ven los platos. La zona de preparación ve el pedido entero y comprueba que no falta nada.
Seguirlo hasta el cliente
Cada paso cambia el estado del pedido, desde la cocina hasta la mesa o hasta la puerta.
Pantallas que puedes cambiar
La interfaz está hecha con Node-RED. Una vista nueva o un botón nuevo es un cambio en un flujo, no hardware nuevo.
Abierto al cambio
El PLC se programa con el Arduino IDE. Cuando el restaurante cambia, cambias el programa o añades una pantalla, no todo el sistema.
Hardware utilizado
Un PLC con WiFi para recoger los pedidos. Panel PC para mostrarlos.
ESP32 PLC 21 CORE
Un controlador industrial basado en el ESP32 de doble núcleo, con Ethernet y Wi-Fi integrados, para carril DIN. Se programa en C++ con el Arduino IDE. En este sistema recibe los pedidos por WiFi y por Ethernet, los guarda y los envía a los Panel PC.
- Función
- Recoge los pedidos, guarda su estado, alimenta las pantallas
- Procesador
- ESP32 de doble núcleo, hasta 240 MHz, 16 MB de flash, 520 KB de SRAM
- Ethernet
- 1 x 10/100 Mbit, RJ45
- Inalámbrico
- Wi-Fi 2,4 GHz, Bluetooth LE
- Reloj de tiempo real
- DS3231 con batería de respaldo
- E/S
- 13 entradas, 8 salidas
- Programación
- Arduino IDE
- Montaje
- Carril DIN TS35, IP20
El caso original usaba un PLC M-Duino basado en Arduino con WiFi y Bluetooth, que ya no está en la tienda web. El ESP32 PLC 21 CORE hace hoy el mismo trabajo: tiene los dos enlaces del caso, Ethernet y Wi-Fi. Un uso habitual de su reloj de tiempo real: poner la hora a cada pedido. El caso no cita entradas ni salidas; quedan libres para otras señales.
TouchBerry Pi Panel PC 10.1" FLEX
Las pantallas de la cocina y de la zona de preparación. Un Panel PC industrial con una Raspberry Pi 4 y pantalla táctil, conectado al PLC por Ethernet. Ejecuta la interfaz de Node-RED: el personal introduce los pedidos, los ve, los cancela o los marca como hechos.
- Función
- Pantallas de Node-RED: entrada de pedidos, cocina, preparación
- Pantalla
- 10,1", táctil
- Ordenador
- Raspberry Pi 4
- Enlace con el PLC
- Ethernet, a través de un switch
El caso usa Panel PC basados en una Raspberry Pi 3, y la página antigua enlaza el TouchBerry Pi de 10,1". El modelo actual es el TouchBerry Pi Panel PC 10.1" FLEX, con una Raspberry Pi 4. La familia también tiene modelos de 7" y de 18,5". El caso no publica cuántos Panel PC usa.
Preguntas sobre este caso
¿Cómo gestiona un PLC el sistema de pedidos de un restaurante?
Recoge los pedidos de todos los canales, los guarda y los envía a las pantallas. En este caso, el personal introduce los pedidos en Panel PC, los clientes piden desde su propio móvil por WiFi y los pedidos a domicilio llegan por la web o por teléfono. Un PLC con WiFi y Ethernet es el centro del sistema, y unos Panel PC con una interfaz de Node-RED muestran los pedidos en la cocina y en la zona de preparación.
¿Cómo llegan al PLC los pedidos de una app o de una web?
En el local, los móviles y las tablets de los clientes llegan al PLC por WiFi. Hacia fuera, el caso usa un servidor MQTT conectado al PLC a través de una VPN. No publica el camino de un pedido de la web. Una forma habitual de hacerlo: el servidor de la web publica cada pedido en el servidor MQTT, y el PLC responde en un tema de respuesta. Consulta comandos MQTT a un ESP32 PLC con tema de respuesta y un broker MQTT Mosquitto central.
¿Por qué la cocina y la zona de preparación ven pantallas distintas?
Cada equipo necesita información distinta. Los cocineros ven solo lo que les es útil: los platos y sus notas. La zona de preparación ve todos los detalles del pedido, para asegurarse de que no falta nada antes de servirlo. Dos piezas útiles para estas pantallas: un panel de Node-RED en modo quiosco en una Raspberry Pi y un inicio de sesión de Node-RED en un TouchBerry, para vistas por perfil.
¿Puede el PLC guardar todo el historial de pedidos?
El caso llama al PLC centro de control y almacén de datos, y dice que el sistema necesita un servidor propio. El ESP32 PLC 21 tiene 520 KB de SRAM y 16 MB de flash. Una forma habitual de repartir el trabajo: el PLC guarda los pedidos abiertos y sus estados, y el servidor guarda el historial. Para un historial sencillo en el Panel PC, consulta registro en CSV con una tabla en vivo en Node-RED.
¿Qué pasa con los pedidos abiertos si se cae el WiFi?
El caso no lo dice. En este diseño los Panel PC están conectados al PLC por Ethernet, así que las pantallas de cocina y la entrada del personal no dependen del WiFi. Una forma habitual de hacerlo robusto: una reconexión WiFi sin bloqueo en el programa del PLC, los números de pedido en memoria no volátil para que sobrevivan a un corte de corriente y un reloj sincronizado por NTP para la hora de cada pedido.
¿Cómo se protege el acceso remoto?
El caso llega al PLC desde fuera a través de una VPN conectada al servidor MQTT, así que el PLC no queda abierto a internet. Una forma habitual de hacerlo: usuario y contraseña en el broker, TLS en las conexiones y una red separada para el WiFi de los clientes y para los equipos de la cocina.
Descarga el caso de estudio
PDF de 4 páginas con el reto, la lógica, la arquitectura y el hardware. Sin formularios.
¿Un sistema similar?
Cuéntanos cómo te llegan los pedidos. Te responderá un ingeniero.
Dinos por qué canales te piden, cuántas pantallas necesitas en la cocina y en la zona de preparación, y si haces envíos a domicilio. Te diremos qué controlador y qué Panel PC encajan, y cómo conectarlos.
- Respuesta de nuestro equipo técnico
- Dimensionado del controlador y de los Panel PC para tu cocina
- PLC basados en Arduino, ESP32 o Raspberry Pi