16 Comentários

Raspberry Pi 3 na IoT – MQTT e Python

MQTT e Python

Este artigo mostrará como instalar e utilizar o MQTT e Python na Raspberry Pi 3, sendo assim um dos caminhos para se fazer projetos IoT nesta plataforma.

Pré-requisitos

Para reproduzir o conteúdo deste artigo, os seguintes pré-requisitos são necessários:

  • Possuir uma Raspberry Pi 3 com uma distribuição Linux instalada*;
  • A Raspberry Pi 3 deve ter acesso à Internet (Wi-Fi ou cabeada);
  • Ter noções básicas de MQTT;
  • Ter noções básicas de programação em Python.

*Este experimento foi feito e testado somente na distribuição Raspbian, porém não vejo razão para não funcionar nas demais.

Por que usar MQTT na Raspberry Pi 3?

O MQTT (Message Queue Telemetry Transport) é um leve e eficiente protocolo voltado para IoT. Possui header extremamente compacto e exige pouquíssimos recursos de hardware, processamento e baixíssima banda para funcionar. Como é calcado no TCP, possui também portanto garantia de entrega das mensagens (algo essencial em IoT).

Além disso, utilizando-se de um servidor (broker) na nuvem, a comunicação torna-se a nível global. Ou seja, é possível interagir via MQTT com a Raspberry Pi 3 de qualquer lugar do planeta que possua acesso à Internet. 

Outro ponto interessante é que este protocolo possui implementações nos mais diversos sistemas operacionais, permitindo assim que dispositivos totalmente diferentes "conversem" pela Internet.

Broker utilizado

Há muitos brokers disponíveis na Internet (tanto grátis quanto pagos). Neste exemplo, utilizaremos o broker oficial do Eclipse (iot.eclipse.org), pois consiste de um broker grátis e com baixo downtime.

Preparação

Antes de codificar o experimento / projeto, primeiro é necessário baixar o Paho-MQTT. O Paho-MQTT trata-se do cliente MQTT oficial, sendo este disponível para as mais diversas linguagens (incluindo Python).

Para tal, primeiramente abra o terminal/console na Raspberry Pi 3. Uma vez aberto, clone o repositório do Paho-MQTT para Python utilizando o seguinte comando:

Este processo pode demorar alguns minutos, dependendo da velocidade de sua conexão com a Internet. Uma vez clonado o repositório, deve-se entrar na pasta com o conteúdo do mesmo e instalar o Paho-MQTT para Python. Para tal, utilize os seguintes comandos:

Após a instalação, está tudo pronto para se começar a desenvolver aplicações em Python que utilizem MQTT.

Mãos à obra!

O projeto / experimento consistirá de uma aplicação Python capaz de escrever na tela todas as mensagens recebidas pelo broker em um determinado tópico. É chegada a hora de fazer código! Para isto, salve o seguinte código como MQTT.py em alguma pasta conhecida:

Para executar no terminal, vá a pasta onde o arquivo MQTT.py está salvo e utilize o seguinte comando:

A aplicação será iniciada e todas as mensagens recebidas no tópico PAHOMQTTRaspPi3 irão aparecer na tela. 

Para testar, utilize qualquer cliente MQTT (como, por exemplo, o MQTTLens para PC ou o MyMQTT para Android) em qualquer sistema operacional, conecte-se ao broker iot.eclipse.org e publique no tópico PAHOMQTTRaspPi3 uma mensagem qualquer. A mensagem irá aparecer na tela do terminal da Raspberry Pi 3!

Para sair da aplicação, pressione Ctrl + C.

Saiba mais

Referências

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.

Raspberry Pi » Raspberry Pi 3 na IoT - MQTT e Python
Comentários:
Notificações
Notificar
guest
16 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Letícia
Letícia
05/11/2019 18:23

Teria como fazer o oposto? Ao invés de ler o que esta no Eclipse IoT, gravar algo que tenha sido lido por uma programação na Raspberry?

Davi Galhardo
Davi Galhardo
25/03/2019 04:01

nessa parte
{ #definicoes:
Broker = "iot.eclipse.org"
PortaBroker = 1883
KeepAliveBroker = 60
TopicoSubscribe = "PAHOMQTTRaspPi3" }

para adicionar Login e Senha.
Utilizo Mosquitto em outra Raspberry como broker, com login e senha,
onde coloco esses dados?

Otávio Neto
Otávio Neto
18/02/2019 16:40

Tenho algumas dúvidas e se você pudesse me ajudar seria excelente pra mim. Vamos lá: Como faço pra enviar mensagens pelo raspberry para ver pelo MQTTLens? No meu projeto estou controlando um sensor pela rasp, preciso enviar um sinal pra ele medir e depois enviar essas medições por mqtt pra nuvem. Teria algum servidor que hospede esses meus dados na nuvem para ficarem salvos?

Hillermann Lima
Hillermann Lima
20/01/2019 17:50

Muito bom. Usei o Mosquitto na minha rasp e só troquei os dados do Broker. Rodou de primeira. Valeu pelo excelente tutorial.

Matheus Correa
Matheus
10/10/2018 19:32

como processar esse dado recebido do tópico e enviar para outro tópico?

Andre Queiroz
Andre
05/09/2018 01:27

Excelente,

berdam
berdam
12/12/2017 10:32

Quando rodei o arquivo, aconteceu esse erro. Como resolver ?

File "client_mqtt.py", line 38, in
client = mqtt.Client()
AttributeError: 'module' object has no attribute 'Client'

Roniere Rezende
Membro
20/10/2017 12:44

Muito bom o texto Pedro! Gostaria de saber se a partir desse protocolo, eu consigo enviar dados de um sensor e processá-los em nuvem. Se sim, qual servidor seria melhor para isso?

Mark
Mark
06/09/2017 20:02

Excelente guia! Simples, direto e eficiente. Valuezão!

Talvez você goste:

Séries

Menu

WEBINAR
 
Debugging
em Linux embarcado

 

Data: 30/09 às 19:30h - Apoio: Mouser Elecctronics
 
INSCREVA-SE AGORA »



 
close-link