Pular para o conteúdo

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

01Dashboard · Socket.IO

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.

  1. 01 O clique
  2. 02 A nuvem
  3. 03 O gateway
  4. 04 A decisão
  5. 05 O movimento
  6. 06 A entrega

Em números

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

Seis camadas, um contrato

docs/ARCHITECTURE.md

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.

  1. 01

    Dashboard

    HTML · CSS · JS · vista 3D

  2. 02

    Node.js

    Express · Socket.IO · /metrics

  3. 03

    Broker MQTT

    Mosquitto · HiveMQ Cloud

  4. 04

    ESP32

    gateway Wi-Fi ↔ serial

  5. 05

    Arduino Uno

    FSM · sensores · motores

  6. 06

    Esteiras

    4 esteiras · 6 sensores

Estados: AGUARDANDO_PEDIDO, VERIFICANDO_ESTOQUE, ACIONANDO_ESTEIRA, ENTREGANDO_PECA, ERRO.

// Destaques técnicos

Feito para não falhar em silêncio

  • 3 s · 12,5 s · 3 s

    Supervisão por marcos

    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.

  • C++ · ATmega328P

    Firmware que se defende

    Watchdog de 2 s que desliga os motores, causa do reset reportada no boot, LCD opcional e interrupções com limitador de rajadas.

  • npm start

    Testável sem hardware

    Um simulador reproduz a FSM inteira e emite os mesmos eventos do servidor real. Clone, rode e veja funcionando em 30 segundos.

  • 17 métricas dfi_*

    Observabilidade de verdade

    Prometheus e Grafana com três dashboards: visão geral, performance e confiabilidade da bancada.

  • /api/status

    Seguro por padrão

    Helmet com CSP, CORS restrito, limite de comandos por cliente, validação de entrada e health check que responde 503 quando o broker cai.

  • GitHub Actions

    Qualidade contínua

    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.

simulador · sem hardware
$ git clone https://github.com/MatheusNespolo/DataFlowInventory.git
$ cd DataFlowInventory/simulator
$ npm install && npm start