Raspberry Pi 3 na IoT - 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.

 

 

Aprenda mais

 

 

 

Referências

 

Sou engenheiro eletricista formado pela Faculdade de Engenharia de Guaratinguetá (FEG - UNESP) e trabalho com desenvolvimento de sistemas embarcados em São Paulo capital. Curioso e viciado em tecnologia, sempre busco me aprimorar na área de eletrônica e programação, em especial em desenvolvimento de firmware (área que mais gosto de trabalhar e estudar).Para mais informações, acesse minha página no Facebook:https://www.facebook.com/pbertoleti
  • Mark

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