Entrar ou criar conta

Laboratório em bancada

Laboratório: Plataforma IoT local com Mosquitto, Node-RED e sensor MQTT simulado

Você terá um ambiente funcional de IoT rodando localmente, com broker MQTT Mosquitto, automação e dashboard no Node-RED, e um sensor simulado enviando dados. Tempo estimado: 90 a 120 minutos.

IoT do zero com MQTT, Eclipse Mosquitto e Node-RED
Ligado ao treinamento IoT do zero com MQTT, Eclipse Mosquitto e Node-RED
Duração estimada
90 min
Passos
12
Validações
4
Objetivo

Este laboratório ensina a montar uma plataforma IoT aberta, usando apenas software livre, em um ambiente controlado. Você vai instalar e configurar o broker MQTT Mosquitto, criar fluxos no Node-RED para consumir, processar e exibir dados de sensores simulados, e testar a comunicação ponta a ponta. O foco é entender cada etapa, desde a publicação de dados até a visualização, com ênfase em práticas seguras e reprodutíveis.

Topologia

Três componentes: 1) Um broker MQTT Mosquitto rodando em uma VM Linux (exemplo: 192.168.56.10); 2) Node-RED rodando na mesma VM, conectado ao Mosquitto via localhost; 3) Um cliente MQTT (sensor simulado) rodando na mesma VM, publicando dados para o Mosquitto. Todos os serviços usam portas padrão em localhost e na rede privada.

┌─────────────┐         ┌──────────────┐         ┌─────────────┐
│ Sensor MQTT│───────▶│ Mosquitto    │◀──────▶│ Node-RED    │
│ (simulado) │   MQTT │ Broker       │   MQTT │ Dashboard   │
└─────────────┘         └──────────────┘         └─────────────┘
      │                         │                       │
      └────────────localhost/network─────────────┘

Equipamentos e software

ItemRequisito, licença ou versão
Máquina virtual Linux (Ubuntu 22.04 ou Debian 11)1 vCPU, 1 GB RAM, 10 GB disco, acesso root ou sudo
Eclipse MosquittoEPL/EDL · v2.0.x (consulte a documentação)
Node-REDApache 2.0 · v3.x (consulte a documentação)
mosquitto-clientsEPL/EDL · v2.0.x (consulte a documentação)
curlcurl license · a versão estável atual

Roteiro

  1. Preparar o ambiente Linux

    Atualize o sistema e instale dependências básicas. Isso garante que os pacotes estejam atualizados e evita conflitos.

    sudo apt update && sudo apt upgrade -y
    sudo apt install -y wget curl nano

    O que você deve ver: Sistema atualizado, sem erros.

  2. Instalar o Mosquitto Broker e clientes

    Instale o broker MQTT Mosquitto e as ferramentas de linha de comando. O Mosquitto é o núcleo da comunicação MQTT.

    sudo apt install -y mosquitto mosquitto-clients

    O que você deve ver: Mosquitto instalado e serviço iniciado automaticamente.

  3. Verificar serviço Mosquitto

    Confirme se o broker está rodando. Sem isso, nada mais funciona.

    sudo systemctl status mosquitto

    O que você deve ver: Status 'active (running)'.

  4. Instalar Node-RED

    Node-RED permite criar fluxos visuais para consumir e processar dados MQTT. Usaremos o script oficial de instalação.

    bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

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

  5. Iniciar Node-RED

    Inicie o Node-RED. O serviço roda por padrão na porta 1880.

    node-red-start

    O que você deve ver: Mensagem 'Server now running at http://127.0.0.1:1880/'

  6. Configurar Node-RED para iniciar automaticamente

    Garanta que Node-RED suba com o sistema. Isso é essencial em produção.

    sudo systemctl enable nodered.service

    O que você deve ver: Saída indicando que o serviço foi habilitado.

  7. Criar um fluxo MQTT no Node-RED

    Abra o Node-RED via navegador (http://localhost:1880). Adicione um nó 'mqtt in', configure para conectar ao broker local (localhost, porta 1883), tópico 'sensor/temperatura'. Adicione um nó 'debug' ligado ao 'mqtt in'. Isso permite visualizar mensagens recebidas.

    O que você deve ver: Fluxo criado e implantado no Node-RED.

  8. Simular um sensor MQTT publicando dados

    Use o cliente de linha de comando para publicar valores simulados de temperatura. Isso valida a cadeia de comunicação.

    mosquitto_pub -h localhost -t sensor/temperatura -m '{"valor": 26.5, "unidade": "C"}'

    O que você deve ver: Mensagem aparece no painel 'debug' do Node-RED.

  9. Automatizar publicações simuladas

    Crie um loop para enviar valores periódicos. Isso simula um sensor real.

    for i in {1..5}; do mosquitto_pub -h localhost -t sensor/temperatura -m '{"valor": '$((20 + $RANDOM % 10))', "unidade": "C"}'; sleep 2; done

    O que você deve ver: Várias mensagens aparecem no Node-RED.

  10. Criar dashboard no Node-RED

    Instale o pacote 'node-red-dashboard' pelo menu de paletas. Adicione um nó 'ui_gauge' e conecte ao fluxo. Isso permite visualizar os dados em tempo real.

    O que você deve ver: Dashboard disponível em http://localhost:1880/ui mostrando os valores recebidos.

  11. Configurar autenticação básica no Mosquitto

    Segurança é fundamental. Crie um usuário e senha para o broker.

    sudo mosquitto_passwd -c /etc/mosquitto/passwd usuarioiot
    sudo nano /etc/mosquitto/conf.d/autenticacao.conf

    O que você deve ver: Arquivo de senha criado e configuração salva.

  12. Reiniciar Mosquitto e testar autenticação

    Reinicie o serviço para aplicar a configuração. Teste publicação com usuário e senha.

    sudo systemctl restart mosquitto
    mosquitto_pub -h localhost -t sensor/temperatura -u usuarioiot -P <senha> -m '{"valor": 28, "unidade": "C"}'

    O que você deve ver: Mensagem publicada com sucesso e recebida pelo Node-RED.

Como saber que funcionou

TesteComandoCritério
Verificar status do Mosquittosudo systemctl status mosquittoStatus 'active (running)'
Testar publicação MQTT sem autenticação (após configuração de senha)mosquitto_pub -h localhost -t sensor/temperatura -m 'teste'Publicação deve falhar, indicando que autenticação é obrigatória
Testar publicação MQTT com autenticaçãomosquitto_pub -h localhost -t sensor/temperatura -u usuarioiot -P <senha> -m 'teste'Mensagem recebida no Node-RED
Visualizar dados no dashboard do Node-REDValores de temperatura aparecem em tempo real

Troubleshooting

SintomaCausa provávelCorreção
Node-RED não conecta ao MosquittoConfiguração incorreta do nó MQTT (host, porta ou autenticação)Verifique se o host é 'localhost', porta 1883 e credenciais corretas
Mosquitto não inicia após configuração de autenticaçãoErro de sintaxe no arquivo de configuraçãoRevise o arquivo em /etc/mosquitto/conf.d/autenticacao.conf
Dashboard do Node-RED não mostra dadosFluxo não implantado ou nó desconectadoClique em 'Deploy' e revise conexões dos nós
Publicação MQTT retorna erro de conexão recusadaMosquitto não está rodando ou firewall bloqueando portaVerifique status do Mosquitto e regras de firewall

Segurança e hardening

  • Nunca use credenciais padrão em produção
  • Restrinja o acesso à porta 1883 apenas à rede necessária
  • Habilite TLS para transporte seguro (consulte a documentação do Mosquitto)
  • Faça backup dos arquivos de configuração e senhas

Checklist final

Referências

  1. Eclipse Mosquitto - Documentação oficial
  2. MQTT - Especificação OASIS
  3. Node-RED - Documentação oficial