Protocolo MQTT na Raspberry Pi com Node Red

nodered mqtt raspberrypi

Nesse artigo vamos aprender a instalar o protocolo MQTT na Raspberry utilizando o sistema operacional Raspbian, e fazer suas configurações de comunicação via Node Red.

Continuaremos nosso estudo de combinar todo o poder da plataforma Node Red com a Raspberry para leitura de sensores e acionamento de relés e motores seguindo o que discutimos no primeiro artigo aqui no Embarcados.

Caso queiram conhecer mais sobre o protocolo MQTT, seus níveis de segurança e resposta, recomendo a leitura do artigo do Marcelo barros também aqui no Embarcados.

Passo 1: Instalando MQTT na Raspberry

Antes de qualquer coisa, precisamos fazer a instalação do MQTT. Para isso, abra o terminal Linux na rasp e faça a atualização dos pacotes utilizando os comandos:

Em seguida vamos fazer a instalação do MQTT-Broker e MQTT Client com os comandos:

Após terminar a instalação, para testar se o MQTT está funcionando corretamente abra dois terminais em um deles digite o comando:

Esse terminal ficará escutando tudo que chegar por MQTT da máquina no topic /teste.

No segundo terminal, vamos enviar as mensagens com o comando:

No campo mensagem, digite o texto que gostaria de enviar após o envio, note que será recebida no primeiro terminal que foi aberto.

Passo 2: Instalando MQTT no Node Red

Inicie seu Node Red em sua raspberry e entre no ambiente de desenvolvimento.

Protocolo MQTT na Raspberry Pi com Node Red

Para fazer a instalação dos nodes do MQTT entre em Ferramentas ao lado do “Deploy” e selecione a opção “Manage Palete”.

deploy manage palete

Na opção install pesquise por mqtt-broker e clique em install. Com isso os nodes do MQTT serão instalados.

install mqtt broker

Passo 3: Teste interno do MQTT no Node Red

Para se fazer um Pub, ou enviar uma mensagem, você precisará de um node de output do MQTT e algo que injete essa mensagem nele. No exemplo usaremos o node de inject configurado em String para enviar um texto via MQTT.

teste send string

No node do MQTT a primeira coisa que precisamos fazer é configurar um servidor ou broker, para isso basta clicar no símbolo de um lápis e digitar localhost na porta 1883 como no exemplo abaixo.

mqtt broker node

Em security é possível configurar um Username e password dessa comunicação para garantir a segurança no dado que esta sendo enviado.

Caso queira utilizar um Servidor web ou outro servidor interno, insira a rota deste servidor na porta configurada, por padrão a porta do MQTT é a 1883.

edit node

Para receber o dado, utilize um Node In do MQTT.

node in

Para configurar o Node In do MQTT siga os mesmos passos no Node Out, apenas escutando o mesmo servidor, porta e topic. Caso tenha configurado o security no node output, não esqueça de colocar as informações de credenciais Username e Password.

Quando fizer o Deploy, ambos os nodes apresentarão o texto de Connected. Caso não aconteça, verifique as informações configuradas e se nossa rasp está com acesso à rede.

Observações: Pode ser que seu roteador ou provedor de internet tenha portas de tráfego que não são por padrão bloqueadas. Confira esses acessos antes de iniciar um projeto com MQTT.

Passo 4: Utilizando os Nodes do Raspberry com MQTT

Exemplo para leitura de sensor digital

leitura sensor presenca

Exemplo para leitura de sensor PWM

leitura sensor distancia

Exemplo para acionamento de pinos I/O

acionamento de pinos

Exemplo para acionamento de pinos I/O interno ao Node Red

acionamento de pinos nodered

Com isso podemos receber e enviar mensagens via protocolo MQTT e ainda seguir com acionamentos ou leituras de pinos GPIO.

Agradecimento especial a Matheus Marabesi que me ensinou muito o conceito e utilização prática do MQTT configurando tanto em terminal quanto no próprio Node Red.

Nos sigam nas redes sociais para ficar por dentro das novidades do Node Red.

Things Hacker Team

Things Hacker Team

facebook.com/ThingsHackerTeam

instagram.com/tht.br

NodeRed-Brasil

NodeRed Brasil

facebook.com/NodeREDBrasil/

instagram.com/noderedbrasil/

twitter.com/noderedbrasil

Me sigam também nas redes Sociais.

Fernando Veiga

Fernando Veiga

linkedin.com/in/pfveiga7

facebook.com/fernando.veiga.3950

instagram.com/pfveiga7

Saiba mais

Curso grátis online de Node.js para iniciantes

Trabalhando com Arduino, Node.js e Angular: Aplicação com sensores

Acessando GPIOs da Raspberry Pi 3 por meio de um servidor web embarcado (node.js, express e wiringpi-node)

Veja + conteúdo

Fernando veiga, Coordenador do Things Hacker Team, professor de Tecnologia apaixonado por astronomia e Física. A 8 anos lecionando para crianças e adolescentes novas formas de ver o mundo através das inovações constantes.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Comentários:
Notificações
Notificar
guest
2 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
tiago alexandre batista
tiago alexandre batista
09/10/2020 23:29

poderiam fazer um tutorial de como acionar uma lâmpada em horários definidos usando o node Red, seria bem didático.

Bento João da Silva Neto João
Bento
31/03/2020 12:59

Poderia me informar onde consigo um exemplo de acionamento de cargas?

Talvez você goste:

Séries

Menu