Site icon Embarcados – Sua fonte de informações sobre Sistemas Embarcados

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:

*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