Entrar ou criar conta

ULC Lab · implementação reproduzível

Laboratório: Integração MQTT ponta a ponta com Mosquitto, Node-RED e sensores simulados

Você terá um ambiente MQTT funcional com Mosquitto, um sensor simulado publicando dados e um sistema TI consumindo e processando essas informações via Node-RED. O laboratório leva cerca de 2 horas.

MQTT industrial do zero à integração OT/IT
Ligado ao treinamento MQTT industrial do zero à integração OT/IT
ULC-LAB-INDU-0002 · Status de validaçãoNão validado pela Upnetix: roteiro derivado da documentação oficial, para você executar e validar
Duração estimada
120 min
Passos
13
Validações
4
Versões da documentação consultada
Eclipse Mosquitto a versão estável atual · Node-RED a versão estável atual · Python 3.6 ou superior · paho-mqtt (Python) a versão estável atual
Objetivo

Demonstrar, na prática, como implantar um broker MQTT Mosquitto em uma máquina virtual, conectar um sensor simulado (publicador) e um sistema TI (assinante) usando Node-RED, e validar a troca de mensagens entre OT e IT. O foco é entender o fluxo de dados, configuração básica e pontos críticos de integração em um cenário industrial típico.

Topologia

Três máquinas (ou VMs) em uma rede privada: (1) Broker Mosquitto (192.168.56.10), (2) Sensor simulado com Python (192.168.56.20), (3) Node-RED como sistema TI (192.168.56.30). O sensor publica dados no tópico 'planta/sensor1'. Node-RED assina esse tópico e exibe/processa os dados.

         +-------------------+
         |  Sensor Simulado |
         | (192.168.56.20)  |
         +--------+----------+
                  |
                  | MQTT pub
                  v
+-----------------+-----------------+
|        Mosquitto Broker           |
|         (192.168.56.10)           |
+-----------------+-----------------+
                  |
                  | MQTT sub
                  v
         +-------------------+
         |     Node-RED      |
         | (192.168.56.30)  |
         +-------------------+

Equipamentos e software

ItemRequisito, licença ou versão
VM ou PC para Mosquitto1 vCPU, 512MB RAM, porta 1883 aberta, Linux Ubuntu 20.04 ou superior
VM ou PC para Sensor Simulado1 vCPU, 512MB RAM, Python 3.6+ instalado
VM ou PC para Node-RED1 vCPU, 1GB RAM, Node.js 14+ instalado
Eclipse MosquittoEPL/EDL · a versão estável atual
Node-REDApache 2.0 · a versão estável atual
PythonPSF · 3.6 ou superior
paho-mqtt (Python)EPL · a versão estável atual

Roteiro

  1. Preparar as VMs ou máquinas físicas

    Garanta que as três máquinas estejam na mesma rede privada e possam se comunicar. Configure IPs estáticos conforme a topologia.

    sudo nano /etc/netplan/01-netcfg.yaml

    O que você deve ver: As máquinas respondem a ping entre si.

  2. Instalar o Mosquitto Broker

    No host 192.168.56.10, instale o Mosquitto. Ele será o ponto central de comunicação MQTT.

    sudo apt update && sudo apt install mosquitto mosquitto-clients

    O que você deve ver: Mosquitto instalado e rodando como serviço.

  3. Configurar Mosquitto para acesso na LAN

    Edite o arquivo de configuração para permitir conexões externas na porta 1883.

    sudo nano /etc/mosquitto/mosquitto.conf
    # Adicione ou descomente:
    listener 1883 0.0.0.0
    allow_anonymous true

    O que você deve ver: Mosquitto ouvindo na porta 1883 para qualquer IP.

  4. Reiniciar o Mosquitto e validar o serviço

    Reinicie o serviço para aplicar as configurações.

    sudo systemctl restart mosquitto
    sudo systemctl status mosquitto

    O que você deve ver: Status ativo (running) para o serviço Mosquitto.

  5. Instalar dependências Python para o sensor simulado

    No host 192.168.56.20, instale Python e a biblioteca paho-mqtt.

    sudo apt update && sudo apt install python3 python3-pip
    pip3 install paho-mqtt

    O que você deve ver: Biblioteca paho-mqtt instalada sem erros.

  6. Criar script Python do sensor simulado

    Crie um script que publique valores aleatórios de temperatura a cada 2 segundos no tópico 'planta/sensor1'.

    nano sensor_simulado.py
    
    # Conteúdo:
    import time
    import random
    import paho.mqtt.client as mqtt
    broker = '192.168.56.10'
    topic = 'planta/sensor1'
    client = mqtt.Client()
    client.connect(broker, 1883, 60)
    while True:
        temp = round(random.uniform(20, 30), 2)
        client.publish(topic, f'Temperatura:{temp}')
        time.sleep(2)

    O que você deve ver: Script salvo e pronto para execução.

  7. Executar o sensor simulado

    Inicie o script Python para começar a publicar dados.

    python3 sensor_simulado.py

    O que você deve ver: Sem erros. O script roda continuamente.

  8. Instalar Node-RED

    No host 192.168.56.30, instale Node.js e Node-RED.

    sudo apt update && sudo apt install nodejs npm
    sudo npm install -g --unsafe-perm node-red

    O que você deve ver: Node-RED instalado globalmente.

  9. Iniciar Node-RED e acessar a interface

    Inicie o Node-RED e acesse a interface web.

    node-red
    # Acesse http://192.168.56.30:1880 no navegador

    O que você deve ver: Interface do Node-RED acessível no navegador.

  10. Criar fluxo Node-RED para assinar o tópico MQTT

    Adicione um nó MQTT IN, configure para conectar ao broker (192.168.56.10:1883) e assine 'planta/sensor1'. Conecte a um nó debug para visualizar as mensagens.

    No editor web, arraste 'mqtt in' > configure broker > tópico 'planta/sensor1' > conecte a 'debug'. Clique em Deploy.

    O que você deve ver: Fluxo criado e ativo. Mensagens aparecem no painel debug.

  11. Validar fluxo de dados ponta a ponta

    Com tudo rodando, verifique se as mensagens publicadas pelo sensor aparecem no Node-RED.

    Observe o painel debug do Node-RED.

    O que você deve ver: Mensagens como 'Temperatura:24.87' aparecem em tempo real.

  12. Testar publicação manual com mosquitto_pub

    No host do sensor ou do broker, publique uma mensagem de teste.

    mosquitto_pub -h 192.168.56.10 -t planta/sensor1 -m 'TesteManual'

    O que você deve ver: A mensagem 'TesteManual' aparece no Node-RED.

  13. Encerrar processos e limpar ambiente

    Pare os scripts e serviços para finalizar o laboratório.

    Ctrl+C nos terminais do sensor e do Node-RED
    sudo systemctl stop mosquitto

    O que você deve ver: Todos os processos encerrados sem erros.

Como saber que funcionou

TesteComandoCritério
Verificar conexão do sensor ao brokersudo netstat -tnp | grep 1883Conexão ESTABLISHED entre sensor e broker.
Mensagens do sensor visíveis no Node-REDMensagens de temperatura aparecem no painel debug.
Testar publicação manual via mosquitto_pubmosquitto_pub -h 192.168.56.10 -t planta/sensor1 -m 'TesteValida'Mensagem 'TesteValida' aparece no Node-RED.
Verificar logs do Mosquittosudo tail -f /var/log/mosquitto/mosquitto.logEntradas de conexão e publicação visíveis sem erros.

Troubleshooting

SintomaCausa provávelCorreção
Node-RED não recebe mensagensBroker ou sensor não acessível na redeVerifique IPs, firewall e conectividade com ping e telnet na porta 1883
Erro de conexão no sensor simuladoBroker Mosquitto não está rodando ou IP incorretoConfirme se o serviço Mosquitto está ativo e IP correto no script
Mosquitto não aceita conexões externasConfiguração listener ausente ou firewall bloqueandoRevise mosquitto.conf e regras de firewall
Mensagens não aparecem no Node-REDTópico errado ou fluxo não implantadoConfirme o tópico e clique em Deploy no Node-RED
Mosquitto não inicia após ediçãoErro de sintaxe no arquivo de configuraçãoRevise o mosquitto.conf e consulte a documentação

Segurança e hardening

  • Não use 'allow_anonymous true' em produção; configure autenticação e ACLs
  • Restrinja o acesso à porta 1883 apenas para hosts autorizados
  • Monitore logs de conexão e publicação para detectar acessos indevidos
  • Atualize Mosquitto e dependências para evitar vulnerabilidades conhecidas

Checklist final

Referências

  1. Mosquitto Documentation · Eclipse Foundation (Mosquitto) (mosquitto.org)
  2. Node-RED Documentation · Node-RED (OpenJS Foundation) (nodered.org)
Verificação editorial
Publicado
09/09/2026
Última revisão
09/09/2026
Versão do conteúdo
1.0
Referências
2 oficiais
Revisão técnica
redação e revisão por IA, URLs conferidas na publicação
Status
Atual
Encontrou um erro? Escreva para comercial@upnetix.com.br com o endereço da página. A revisão semestral por IA nunca altera comandos ou configurações sem passar pela fila de revisão.