O clique
Alguém pede a peça B no dashboard. O navegador envia o comando por Socket.IO ao servidor Node.js, que valida a peça, aplica o limite de frequência e confere se o broker está no ar.
SENAI São Caetano do Sul
Engenharia de Controle e Automação
Do clique no navegador à esteira em movimento. Um centro de distribuição automatizado em escala reduzida — Arduino, ESP32, MQTT e um dashboard em tempo real.
// O projeto
Umcentrodedistribuiçãointeirocabenumabancada.Quatroesteiras,seissensoresedoismicrocontroladoresprovam,emescalareduzida,oqueaintralogísticafazemescalareal:pedido,decisão,movimentoeconfirmação.Nenhumapeçaédebitadanoescuro.
// O caminho de um pedido
Alguém pede a peça B no dashboard. O navegador envia o comando por Socket.IO ao servidor Node.js, que valida a peça, aplica o limite de frequência e confere se o broker está no ar.
Hardware de bancada, software de produção. Cada número abaixo está no código e na documentação do repositório.
4
esteiras
1 principal + 3 secundárias com driver IRF520
6
sensores IR
TCRT5000 no topo e nas junções
5
estados
máquina de estados finita no Arduino Uno
17
métricas
dfi_* expostas ao Prometheus
7
tópicos MQTT
contrato dataflow/* com retained e LWT
12,5 s
timeout
da partida do motor até a junção
// Arquitetura
Um comando atravessa seis camadas e o evento volta pelo mesmo caminho. No modo simulador, as três últimas são trocadas por uma máquina de estados em JavaScript que emite exatamente os mesmos eventos.
Dashboard
HTML · CSS · JS · vista 3D
Node.js
Express · Socket.IO · /metrics
Broker MQTT
Mosquitto · HiveMQ Cloud
ESP32
gateway Wi-Fi ↔ serial
Arduino Uno
FSM · sensores · motores
Esteiras
4 esteiras · 6 sensores
Estados: AGUARDANDO_PEDIDO, VERIFICANDO_ESTOQUE, ACIONANDO_ESTEIRA, ENTREGANDO_PECA, ERRO.
// Destaques técnicos
Cada entrega passa por checagem prévia, topo livre, passagem na junção e saída. Débito só na confirmação do sensor — nunca no escuro.
Watchdog de 2 s que desliga os motores, causa do reset reportada no boot, LCD opcional e interrupções com limitador de rajadas.
Um simulador reproduz a FSM inteira e emite os mesmos eventos do servidor real. Clone, rode e veja funcionando em 30 segundos.
Prometheus e Grafana com três dashboards: visão geral, performance e confiabilidade da bancada.
Helmet com CSP, CORS restrito, limite de comandos por cliente, validação de entrada e health check que responde 503 quando o broker cai.
43 testes da lógica do firmware rodando no PC, E2E com Playwright e um CI que compila os sketches e barra o uso de RAM do Uno.
// Agora, por dentro
Esta página é a vitrine. O repositório tem tudo: firmware, servidor, dashboard, diagramas elétricos, roteiros de teste e o guia para montar a bancada do zero. Comece pelo simulador — 30 segundos e nenhum hardware.
$ git clone https://github.com/MatheusNespolo/DataFlowInventory.git$ cd DataFlowInventory/simulator$ npm install && npm start