Como integrar sensores Modbus TCP ao Grafana com Node-RED e MQTT
Aprenda passo a passo como ler dados de CLP industrial usando Modbus TCP, despachar via MQTT com Node-RED e exibir gráficos em tempo real no Grafana.
Resumo
- O protocolo Modbus TCP funciona como um tradutor universal que permite computadores e CLPs conversarem pela rede de computadores padrão.
- O Node-RED atua como a ferramenta de fluxo visual que coleta os dados do chão de fábrica sem a necessidade de escrever códigos complexos do zero.
- O protocolo MQTT funciona como um carteiro leve e rápido, ideal para entregar mensagens de sensores em tempo real para qualquer sistema interessado.
- O Grafana transforma números brutos de sensores em painéis visuais intuitivos que facilitam o monitoramento da saúde de máquinas industriais.
- A construção de uma arquitetura modular baseada em tópicos MQTT desacoplados garante facilidade de manutenção e alta escalabilidade no parque fabril.
O desafio de ligar o chão de fábrica à nuvem
No ambiente industrial moderno, extrair dados de máquinas antigas e novas é o primeiro passo para otimizar a produção. Muitas vezes, esses equipamentos conversam em linguagens proprietárias ou protocolos tradicionais difíceis de acessar diretamente por ferramentas modernas de visualização. Para resolver isso, criamos pontes de dados eficientes que transformam sinais elétricos em métricas web legíveis, semelhante ao que fazemos ao desenhar uma arquitetura de mensageria resiliente para sistemas distribuídos.
O ecossistema que une Modbus TCP, Node-RED, MQTT e Grafana resolve essa dor com elegância, baixo custo e alta confiabilidade. O CLP, ou Controlador Lógico Programável, é o cérebro eletrônico que comanda motores, esteiras e válvulas no chão de fábrica. Ele armazena variáveis em registradores internos que podem ser lidos por solicitação direta através da rede Ethernet utilizando o protocolo Modbus TCP.
Entendendo a arquitetura de leitura e transporte
O Modbus TCP é uma evolução do clássico Modbus Serial, adaptado para rodar sobre redes TCP/IP comuns. Ele funciona no modelo de requisição e resposta, onde o computador solicita o valor de um endereço específico e o CLP responde com o dado bruto coletado dos sensores. Na prática, isso significa que precisamos de um sistema que faça essas perguntas ao CLP repetidamente sem travar a rede.
É exatamente aqui que entra o Node-RED, uma ferramenta de programação visual baseada em fluxos que simplifica a integração de APIs, hardwares e bancos de dados. Com blocos visuais arrastados na tela, conseguimos configurar facilmente nós que solicitam dados do CLP via Modbus em intervalos regulares. Além disso, antes de enviar esses dados adiante, podemos aplicar lógicas de filtragem semelhantes às rotinas automatizadas que usamos ao auditar fluxos de dados em pipelines de infraestrutura.
Configurando o Node-RED para interagir com o CLP
Para começar a puxar os dados do CLP, precisamos instalar os nós de comunicação adequados no ambiente Node-RED. O processo envolve conectar um bloco de injeção de tempo a um bloco de leitura Modbus, apontando para o endereço IP do controlador industrial. Cada registrador Modbus possui um número específico que corresponde a uma temperatura, pressão ou estado de um motor.
Abaixo temos um exemplo de script auxiliar em JavaScript que o Node-RED pode executar para tratar o pacote bruto recebido do CLP antes de publicá-lo na rede:
// Exemplo de script de tratamento no Node-RED para dados Modbus TCP
msg.payload = {
sensor_id: 'temperatura_caldeira_01',
valor_bruto: msg.payload[0],
temperatura_celsius: (msg.payload[0] * 0.1).toFixed(2),
timestamp: new Date().toISOString()
};
return msg;
Esse tratamento inicial garante que qualquer oscilação elétrica ou dado fora de escala seja limpo antes de seguir viagem. Na prática, economizamos largura de banda e evitamos poluir o banco de dados com ruído desnecessário.
Publicando métricas industriais via protocolo MQTT
Assim que o Node-RED extrai e limpa os dados do CLP, precisamos enviá-los para um intermediário leve que distribua essas informações para quem quiser escutar. O MQTT cumpre esse papel com perfeição, funcionando como um sistema de mensageria baseado em tópicos onde dispositivos publicam e assinam atualizações instantaneamente.
Configuramos o Node-RED para enviar o objeto JSON tratado para um broker MQTT local, como o Mosquitto, usando uma estrutura de tópicos limpa e hierárquica. Por exemplo, publicar em uma estrutura como fabrica/linha1/estufa/temperatura permite que qualquer aplicativo ou banco de dados escute aquele canal específico sem sobrecarregar o CLP com centenas de conexões diretas simultâneas.
Armazenando dados para histórico e análise
Embora o MQTT seja excelente para o transporte em tempo real, ele não foi feito para guardar histórico de longo prazo. Para alimentar gráficos que mostram o comportamento da fábrica ao longo de dias ou semanas, precisamos injetar essas mensagens MQTT em um banco de dados otimizado para séries temporais, como o InfluxDB ou o TimescaleDB.
Criamos um fluxo simples no Node-RED que escuta o tópico MQTT da estufa e grava o valor recebido diretamente no banco de dados junto com a data e hora exatas. Essa etapa garante que, caso o painel de visualização caia por um instante, nenhum dado histórico precioso seja perdido no processo.
Visualizando tudo em tempo real com o Grafana
Com os dados armazenados de forma estruturada, chegou a hora de construir o painel visual definitivo no Grafana. Conectamos o Grafana ao nosso banco de dados de séries temporais e criamos gráficos de linha, medidores de ponteiro e alertas visuais baseados em limites críticos de temperatura ou pressão.
O Grafana permite configurar atualizações automáticas a cada segundo, entregando aos operadores de plantão uma visão cirúrgica e instantânea do que acontece no chão de fábrica. Se a temperatura de um motor ultrapassar o limite seguro, o painel muda de cor imediatamente, permitindo ações corretivas antes que ocorra uma parada indesejada na produção.
Considerações finais sobre monitoramento industrial
Integrar sensores Modbus TCP com dashboards modernos usando Node-RED, MQTT e Grafana democratiza o acesso aos dados industriais sem exigir investimentos milionários em softwares proprietários. Essa abordagem modular garante resiliência, flexibilidade e total controle sobre a infraestrutura de telemetria da sua empresa, modernizando operações legadas com ferramentas ágeis e de código aberto.