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:
sudo apt-get update sudo apt-get upgrade
Em seguida vamos fazer a instalação do MQTT-Broker e MQTT Client com os comandos:
sudo apt-get install mosquitto sudo apt-get install mosquitto-clients
Após terminar a instalação, para testar se o MQTT está funcionando corretamente abra dois terminais em um deles digite o comando:
mosquitto_sub -h localhost -t /teste
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:
mosquitto_pub -m "Mensagem" -t /teste
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.

Para fazer a instalação dos nodes do MQTT entre em Ferramentas ao lado do “Deploy” e selecione a opção “Manage Palete”.
Na opção install pesquise por mqtt-broker e clique em install. Com isso os nodes do MQTT serão instalados.

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.
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.
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.
Para receber o dado, utilize um Node In do MQTT.

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
Exemplo para leitura de sensor PWM
Exemplo para acionamento de pinos I/O
Exemplo para acionamento de pinos I/O interno ao Node Red
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
NodeRed-Brasil
Me sigam também nas redes Sociais.
Fernando Veiga
facebook.com/fernando.veiga.3950
Saiba mais
Curso grátis online de Node.js para iniciantes
Trabalhando com Arduino, Node.js e Angular: Aplicação com sensores

















poderiam fazer um tutorial de como acionar uma lâmpada em horários definidos usando o node Red, seria bem didático.
Poderia me informar onde consigo um exemplo de acionamento de cargas?