Pular para o conteúdo principal

Edge Box RPi 200 com Node Red e MQTT

Introdução

MQTT (Message Queuing Telemetry Transport) é um protocolo de mensagens leve ideal para aplicações de IoT (Internet das Coisas) devido à sua eficiência e aos baixos requisitos de largura de banda. Ele facilita a comunicação entre dispositivos em um modelo de publicação-assinatura, permitindo a troca de dados em tempo real em redes não confiáveis. Com o Node-RED, a integração do MQTT possibilita uma conectividade perfeita entre dispositivos de borda e servidores centrais ou outros dispositivos, promovendo uma transmissão e processamento de dados eficientes. O EdgeBox Edge Controller, ao oferecer suporte nativo a MQTT, elimina a necessidade de gateways de hardware adicionais, permitindo a instalação de um broker MQTT diretamente no próprio EdgeBox. Isso reduz a complexidade, minimiza a latência e aumenta a confiabilidade, pois os dados podem ser processados e utilizados na borda sem depender de intermediários externos, otimizando assim a arquitetura de sistemas IoT.

Primeiros Passos

Antes de iniciar este projeto, você pode precisar preparar seu hardware e software com antecedência, conforme descrito aqui.

Preparação de Hardware

Edge Box RPi 200

Preparação de Software

O Edge Box-200 chega até você com o Raspberry Pi OS pré-instalado. Se você estiver inicializando este dispositivo pela primeira vez, leia nosso Wiki Getting Started. Nós preparamos um Guia de Introdução ao Node-RED. É recomendado que você revise este guia antes de prosseguir para este wiki.

Configurar o EdgeBox como Broker MQTT

  • Etapa 01 : Acesse o EdgeBox RPi 200 via SSH ou VNC e atualize o Raspberry Pi OS:
sudo apt update
  • Etapa 02 : Em seguida, instale o Mosquitto nele. Para isso, abra o terminal e execute este comando:
sudo apt-get install mosquitto 
  • Etapa 03 :Em seguida, instale o cliente de linha de comando do Mosquitto executando o seguinte comando no terminal:
sudo apt-get install mosquitto-clients -y
  • Etapa 04 : Quando a instalação do broker MQTT estiver concluída, será necessário ajustar seus arquivos de configuração. O arquivo de configuração padrão pode ser encontrado em /etc/mosquitto/mosquitto.conf. Para acessar e modificar este arquivo, use o editor nano executando o seguinte comando no terminal:
sudo nano /etc/mosquitto/mosquitto.conf

No arquivo de configuração, vamos desativar as configurações padrão com esta linha:

include_dir /etc/mosquitto/conf.d

para

#include_dir /etc/mosquitto/conf.d

Em seguida, vamos aplicar uma política que impede que usuários anônimos se conectem ao broker adicionando a linha:

allow_anonymous false

Para armazenar senhas com segurança, vamos especificar um local de arquivo adicionando:

password_file /etc/mosquitto/pwfile

Depois, para definir a porta de escuta como 1883, vamos adicionar:

listener 1883

Salve as modificações pressionando Ctrl+S e saia do editor com Ctrl+X.

  • Etapa 05 : Para definir nomes de usuário e senhas, concedendo acesso a clientes MQTT, ou redefinir senhas existentes, utilize o seguinte comando no terminal:
sudo mosquitto_passwd -c /etc/mosquitto/pwfile <username>

Após gerar um nome de usuário e senha, reinicie o Edgebox

sudo reboot

Você pode iniciar o broker Mosquitto digitando o seguinte comando no terminal:

sudo systemctl start mosquitto

sudo systemctl status mosquitto Para verificar se o broker Mosquitto está em execução

sudo systemctl stop mosquitto Para interromper o broker Mosquitto

sudo systemctl restart mosquitto Para reiniciar o broker Mosquitto

sudo systemctl enable mosquitto Para garantir que o broker Mosquitto seja inicializado na inicialização do sistema

Testar Conexão

  • Etapa 01 : Abra uma nova sessão SSH ou terminal e execute o seguinte comando para assinar um tópico
mosquitto_sub -h localhost -t test -u <USER> -P <PASSWORD>
  • Etapa 02 : Em outra sessão SSH ou terminal, execute o seguinte comando para publicar uma mensagem no mesmo tópico. Certifique-se de inserir o nome de usuário e a senha corretamente.
mosquitto_pub -h localhost -t test -m "Hello, world!" -u <USER> -P <PASSWORD>

Você deverá ver a mensagem "Hello, world!" aparecer na primeira janela de sessão SSH onde você executou o comando mosquitto_sub. Certifique-se de inserir o nome de usuário e a senha corretamente.

Editar Fluxos

Nodo MQTT-in

O nodo MQTT-in assina tópicos MQTT e recebe mensagens do broker. Quando uma mensagem é publicada em um de seus tópicos assinados, o nodo MQTT-in é ativado e encaminha a mensagem recebida para os nodos subsequentes no fluxo para processamento adicional.

  • Etapa 01 Arraste e solte um nodo MQTT-in da paleta do Node-RED para a área de desenho.

  • Etapa 02 Clique duas vezes no nodo MQTT-in para abrir sua caixa de diálogo de configuração.

  • Etapa 03 Na caixa de diálogo de configuração, configure os seguintes campos:

    • Server: Certifique-se de que os detalhes do broker estejam pré-preenchidos. Caso contrário, clique no ícone de lápis para adicionar o endereço IP do broker, nome de usuário e senha.

    • Action: Selecione se deseja assinar um único tópico ou usar uma assinatura dinâmica. Para uma assinatura dinâmica, extraia o tópico MQTT desejado do payload da mensagem usando um nodo de função ou outros nodos de processamento. Aqui, vamos assinar um único tópico.

    • Topic: Insira o tópico MQTT ao qual você deseja assinar.

    • QoS: Escolha o nível de Qualidade de Serviço (QoS) desejado para a entrega da mensagem (0, 1 ou 2).

    • Name: Opcionalmente, atribua um nome significativo ao seu nodo.

  • Etapa 04 Clique em Done para salvar a configuração.

Nodo MQTT-out

O nodo MQTT-out (saída MQTT) é usado para publicar mensagens em tópicos MQTT. Você pode configurar o tópico e o payload da mensagem a ser publicada, que podem ser estáticos ou gerados dinamicamente com base em dados de outros nodos no fluxo.

  • Etapa 01 Arraste e solte um nodo MQTT-out da paleta do Node-RED para a área de desenho.

  • Etapa 02 Clique duas vezes no nodo MQTT-out para abrir sua caixa de diálogo de configuração.

  • Etapa 03 Na caixa de diálogo de configuração, clique no ícone de lápis ao lado do campo Server para criar uma nova configuração de broker.

  • Etapa 04 Edite as configurações do broker MQTT adicionando o endereço do broker no campo server, a porta e quaisquer credenciais de autenticação, se necessário (por exemplo, nome de usuário e senha).

  • Etapa 05 Clique em Done para salvar as configurações do broker.

  • Etapa 06 Na caixa de diálogo de configuração, configure os seguintes campos:

    • Topic: Insira o tópico MQTT no qual você deseja publicar mensagens.

    • QoS: Escolha o nível de Qualidade de Serviço (QoS) desejado para a entrega da mensagem (0, 1 ou 2).

    • Retain: Escolha se deseja reter a mensagem publicada no broker (true ou false).

    • Name: Opcionalmente, atribua um nome significativo ao seu nodo.

  • Etapa 07 Clique em Done para salvar a configuração.

Usamos o nodo inject para injetar a mensagem em um determinado intervalo e também usamos o nodo debug para inspecionar a mensagem publicada.

Você pode ver a representação gráfica abaixo para entender como conectar e configurar os nodos MQTT-in, MQTT-out, debug e inject.

Suporte Técnico e Discussão de Produto

Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...