Aprenda a instalar o MQTT (Mosquitto) no seu Raspberry PI

8 Comentários

O MQTT é um protocolo de comunicação com baixos requisitos ao nível da largura de banda e também ao nível do hardware, sendo extremamente simples e leve. Este protocolo foi desenvolvido pela IBM e pela Eurotech e tem como finalidade comunicar dados através de redes com pouca largura de banda, com muita latência e, nesse sentido, pouco confiáveis.

Hoje vamos mostrar como podem criar o vosso próprio broker MQTT num Raspberry PI.


Instalação do Broker MQTT Mosquitto no Raspberry PI

Para procederem à instalação do Broker no Raspberry PI devem realizar os seguintes passos:

Passo 1) Aceder ao Raspberry PI via SSH e fazer update e upgrade ao sistema para que todos os repositórios sejam atualizados. Para isso vamos executar os seguintes comandos:

sudo apt-get update
sudo apt-get upgrade

Passo 2) Vamos agora proceder à instalação do Mosquito (MQTT) no Raspberry PI. Para isso usem os seguinte comando:

sudo apt install -y mosquitto mosquitto-clients

Passo 3) Para ativarem o serviço, executem o seguinte comando:

sudo systemctl enable mosquitto.service

Segurança no broker

Uma boa pratica é protegermos o nosso sistema contra acessos indevidos, e uma das melhores formas é utilizando credenciais como, por exemplo, um username e uma password.

Antes de começar temos de primeiro parar o serviço do MQTT usando o seguinte comando:

sudo stop mosquitto

De seguida, criamos um ficheiro que vai ser responsável por guardar as credenciais username e a password que posteriormente ficará encriptada.

sudo mosquitto_passwd -c /etc/mosquitto/passwd 

Nota: devem trocar no comando anterior pelo username que pretendem.

O sistema vai solicitar para indicar uma password duas vezes, portanto, não se esqueça de inserir a mesma duas vezes.

Posto isto, temos de indicar ao sistema onde estão guardadas as credenciais e bloquear o acesso a utilizadores que não se autentiquem.

sudo nano /etc/mosquitto/mosquitto.conf
password_file /etc/mosquitto/passwd 
allow_anonymous false
  • Allow_anonymous false” como descrito anteriormente deverá estar definido como  false para restringir acessos anónimos

Por fim, iniciamos o broker de novo com o seguinte comando:

mosquito -c /etc/mosquitto/mosquitto.conf

Para testar se tudo está a funcionar como planeado devemos executar o seguinte comando:

mosquitto_sub -h localhost -p 1883 -t myTopic -u  -P 

O sistema ficará à escuta no tópico “myTopic” e podemos enviar uma mensagem com um cliente, como por exemplo o MQTT.FX.

Se tudo estiver a funcionar corretamente, deverá visualizar a mensagem que foi enviada no MQTT.FX no terminal do Raspberry PI.

Comentários

8

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Charles
    Charles

    Fantástico! Gostei muito!
    Poderiam complementar com outro artigo abordando o HomeAssistant ou o Hassbian, parte ficarmos (os leitores) com uma visão mais abrangente do que se pode fazer com um raspi so nível de IoT.
    Obrigado

  2. Avatar de Hugo Serras
    Hugo Serras

    Olá, Pedro,

    Boa iniciativa. Por acaso estou neste momento a fazer o meu Trabalho Final de Curso, precisamente com MQTT e Mosquito num RPi. E uma coisa que queriamos, não sabendo se será possivel, é encriptar com um certificado. Eu sei que dá do lado do Raspberry, só não sei ainda como vamos dar a volta do lado do esp8266, que é o que vamos usar.
    Alguma ideia?

    Obrigado

    1. Avatar de Nuno Azevedo
      Nuno Azevedo

      Sim, também é possível colocar o certificado do lado do esp8266

  3. Avatar de Daniel Catarino
    Daniel Catarino

    E possível instalar num rpi (dos primeiros)?

    Já tentei, mas obtenho erro no apt-get update

    1. Avatar de Fabricio
      Fabricio

      da sim, esse erro e no gerenciador de update, confere se pegou a versão mais atual do Raspibian lite.

  4. Avatar de Marco Freire
    Marco Freire

    ‘sudo stop mosquitto’
    ‘sudo: stop: command not found’

    ‘sudo systemctl stop mosquitto’ parece funcionar bem.

  5. Avatar de Marco Freire
    Marco Freire

    ‘mosquito -c /etc/mosquitto/mosquitto.conf’ não funciona.

    ‘sudo systemctl start mosquitto’ parece funcionar bem.