Automação Residencial

Automação com Broker MQTT e Raspberry Pi

Eletrogate 10 de fevereiro de 2022

Introdução

Com a tecnologia se atualizando constantemente, promovendo o aumento contínuo de usuários, é possível que os aparelhos que antes eram considerados grandes e de pequena funcionalidade na época de sua criação possam ter novas versões, cada vez mais atualizadas e aptas a proporcionarem uma maior interação com os utilizadores, além de reduzir o espaço físico utilizado, proporcionando um aumento da acessibilidade. Pode-se citar como alguns exemplos os celulares, televisores, computadores, entre outros.

A automação foi tão bem aceita no ramo industrial que os outros setores se interessaram nesse sistema e quiseram se adequar a esse meio, podendo citar principalmente o âmbito residencial. Mais conhecida como Domótica, a automação residencial visa o agrupamento de serviços tecnológicos que, de forma integrada, buscam satisfazer as necessidades básicas de segurança, gestão energética e comunicação de uma casa, almejando sempre oferecer aos usuários um maior conforto, seja nas tarefas básicas como ligar e desligar televisores, rádios, lâmpadas, eletrodomésticos, até nas tarefas mais complexas, como o reconhecimento facial para o acesso a casa, entre outros.

O início da automação residencial foi muito problemático, pois as empresas que atuavam nessa área não desejavam a conexão dos seus dispositivos com os de outras marcas concorrentes. Isso ocasionou a criação de diferentes softwares para um mesmo tipo de produto, fazendo com que o consumidor final ficasse com pequenas “ilhas” de dispositivos que não se comunicavam dentro de sua casa, além de gerar a necessidade dos usuários possuírem um celular com um bom armazenamento para terem esses aplicativos funcionando ao mesmo tempo.

Para resolver este e outros problemas, foram desenvolvidas diversas plataformas de integração, entre elas destacamos:

  • Protocolo MQTT para a comunicação entre os dispositivos;
  • Serviço de armazenamento chamado “Broker”;
  • Plataformas que se comunicam ao mesmo tempo com diversos produtos presentes no mercado;
  • Computadores ou minicomputadores (Raspberry Pi) que possibilitam a instalação e um bom funcionamento dessas plataformas.

Trataremos a seguir da instalação do Sistema Operacional no Raspberry Pi e o Broker MQTT Mosquitto, com o intuito de ajudar você, caro leitor, que está procurando mais informações sobre essas duas ferramentas tão utilizadas no ramo da Domótica (Automação Residencial).


O que é Raspberry Pi?

Raspberry Pi é um computador de placa única que cabe na sua mão, onde alguns dos seus modelos são praticamente do tamanho de um cartão de crédito. Oferece todos os recursos necessários para utilizar esse tipo de equipamento, podendo conectar em sua placa os dispositivos: mouse, teclado e monitor, funcionando assim como um computador desktop. Se você, leitor, está querendo montar um computador caseiro para realizar diversas tarefas, está diante do equipamento certo!

Raspberry Pi 4B (Fonte: Raspberry Pi)

O Raspberry Pi foi desenvolvido pela Fundação Raspberry Pi, no Reino Unido, tendo o seu primeiro modelo lançado em 2012. Passou por várias atualizações, mais ou menos quinze no total, mas sempre evoluindo e aumentando as suas habilidades através de novos recursos de acordo com os avanços da tecnologia. Hoje são comercializados quatro modelos: ZeroW, 3 A+, 3 B+ e 4 B, sendo recomendado a utilização dos dois últimos modelos em uma automação residencial. A figura abaixo ilustra um pouco do histórico de modelos Raspberry Pi:

Gerações do Raspberry Pi na linha do tempo (Fonte: IoT Industrial Devices).

Para ligar esse equipamento pela primeira vez, é necessário a utilização de:

  • Teclado;
  • Mouse;
  • Monitor ou televisão com entrada HDMI;
  • Fonte de alimentação apropriada para cada versão. Para o Raspberry Pi 4 B e Raspberry Pi 400, é necessário utilizar uma fonte de alimentação 5V x 3A com cabo USB do tipo C. Já para os demais modelos, deve-se usar a fonte de alimentação com micro USB;
  • Cartão SD, sendo aconselhado um cartão de no mínimo 8 GB de qualidade;
  • Instalar o Raspberry OS, mais conhecido como Raspbian, através do Raspberry Pi Imager.

Obs.: Fontes ou cabos de alimentação de má qualidade podem provocar o mal funcionamento do Raspberry Pi.


Desenvolvimento do Projeto

Materiais necessários para o projeto Automação com Broker MQTT e Raspberry Pi

O que é o Raspberry Pi Imager?

Raspberry Pi Imager é a ferramenta mais fácil de ser utilizada para gravar as imagens no cartão SD, pois ela realiza o download da imagem automaticamente e logo em seguida faz a instalação do sistema operacional do Raspberry Pi. É compatível com Mac OS, Ubuntu 18.04 e Windows. É importante lembrar que a formatação do cartão SD antes da instalação do Raspberry Pi OS fica de acordo com a opção do usuário.

No site oficial do Raspberry Pi é possível baixar o Raspberry Pi Imager para Windows, Mac OS e Ubuntu: https://www.raspberrypi.com/software/

Uma vez escolhido o sistema operacional desejado (ao clicar em CHOOSE OS) e o disco onde será instalado (ao clicar em CHOOSE STORAGE), a opção WRITE será habilitada e ao clicar dará início à instalação do  SO escolhido. Finalizada a gravação, basta retirar a memória micro SD do gravador e inserir no Raspberry Pi, realizar a conexão dos periféricos: mouse, teclado, monitor e fonte de alimentação com a placa e ligar.


Configuração Inicial do Raspberry Pi

Depois de realizar todas as conexões dos periféricos e ligar a sua placa, é fundamental fazer algumas configurações básicas para que o seu minicomputador funcione confome desejado.

De acordo com a documentação do Raspberry Pi (2021), a primeira forma de configurar é:

  • Clicando no símbolo do Raspberry Pi;
  • Preferências;
  • Raspberry Pi Configuration.

Neste local, o usuário poderá configurar: o sistema, display, interfaces, performance e localização. Para ter acesso a internet, basta você conectar a sua placa em uma rede Wi-Fi, clicando no ícone no canto superior a direita na área de trabalho ou conectando um cabo de rede no conector RJ45 do Raspberry Pi.

Assim que as configurações forem realizadas, basta clicar em OK. Para salvar essas modificações, é necessário reiniciar o seu Raspberry Pi. Para isso o usuário precisa:

  • Clicar no símbolo da Raspberry Pi;
  • Desconectar;
  • Reboot

A segunda maneira de configurar o seu Raspberry Pi é para aqueles usuários que adoram mexer com linha de programação. Para isso, é preciso acessar o terminal de comandos e utilizar o comando: sudo raspi-config. Nele, temos as mesmas opções de configurações que já foram citadas anteriormente (RICHARDSON; WALLACE, 2013).

sudo raspi-config

 

Realizadas as configurações, basta movimentar as setas do teclado até chegar em Finish que retornará para o terminal de comandos.

Uma configuração considerada básica, mas com grande importância é na troca da senha de acesso ao Raspberry Pi. Todos possuem o mesmo padrão para usuário e senha, sendo login (usuário): pi e password (senha): raspberry, por isso é muito importante modificar a senha para que ninguém consiga entrar no seu minicomputador sem a sua permissão.

Para modificar a senha é necessário utilizar o comando: passwd e informar a senha atual e a nova senha (Raspberry Pi, 2021).

passwd

Caso apareça um erro dizendo que não tem permissão para realizar esse comando, basta inserir sudo antes:

sudo passwd

Para que as modificações tenham efeito, é necessário reiniciar o sistema. Para isso, utilize o seguinte comando:

sudo reboot

Pronto, o sistema já iniciará com todas as modificações desejadas funcionando.


Acesso Remoto ao Raspberry Pi

Nesse modo não é necessário mouse, teclado ou monitor conectado ao Raspberry Pi, porém só é possível após a configuração básica que apresentaremos aqui.

Existem duas maneiras muito difundidas do usuário acessar seu minicomputador: a primeira pelo acesso físico utilizando os periféricos conectados a placa (mouse, teclado), a segunda pela conexão remota através dos protocolos SSH (Secure Shell) ou VNC (Virtual Network Computing).

O que é SSH e como utilizar no Raspberry Pi?

O SSH (Secure Shell) é um protocolo de rede que criptografa os dados, a fim de tornar as operações de redes mais seguras. Ele permite que o usuário acesse virtualmente a linha de comandos do Raspberry Pi em um outro computador (JUCÁ; PEREIRA, 2018).

De acordo com a documentação do Raspberry Pi (2021), para o SSH funcionar da forma correta é indispensável que o usuário siga os seguintes passos:

1. Para acessar o terminal do Raspberry Pi em outro computador, primeiramente o usuário terá que descobrir qual é o endereço de IP do seu Raspberry. Para isso deverá utilizar o comando:

hostname -I

2. Após isso, o usuário vai precisar habilitar o servidor SSH presente no Raspberry Pi. Para isso, é necessário:

  • Clicar no símbolo do Raspberry Pi na área de trabalho;
  • Preferências;
  • Raspberry Pi Configuration;
  • Interfaces;
  • Selecionar Enable na opção SSH;
  • Clicar em OK.

3. Para realizar a conexão de um computador Apple Mac, Linux ou Windows 10 (que esteja atualizado com a versão de outubro de 2018 ou posterior) a um Raspberry Pi sem a necessidade de baixar outro aplicativo, é preciso abrir o terminal de comandos, utilizar o comando: ssh pi @ <IP>, tendo que substituir o <IP> pelo IP do Raspberry Pi. Após realizar a conexão, o usuário deverá digitar yes para o aviso de segurança / autenticidade e em seguida informar o login e a senha do Raspberry Pi que deseja conectar.

Caso o seu desktop não consiga realizar esta última etapa, é indispensável que o usuário baixe um programa de acesso SSH, o mais comum é o chamado PuTTY (JUCÁ; PEREIRA, 2018).

Para realizar o download deste programa, clique no link a seguir: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html.

Depois de fazer o download, é essencial colocar o IP do Raspberry Pi em Host Name (or IP address) e clicar em Open.

Em seguida, é necessário informar o login e a senha do Raspberry Pi e pronto, você já está conectado ao seu minicomputador:

 

O que é VNC e como utilizar na Raspberry Pi?

O VNC (Virtual Network Computing) é um protocolo que permite ao usuário a visualização e o controle da área de trabalho de um computador, no caso o Raspberry (que já possui o servidor VNC instalado), através de um outro computador com o VNC Viewer (HALFACREE, 2020).

Para instalar o cliente VNC Viewer, da Real VNC clique no link a seguir: https://www.realvnc.com/pt/connect/download/viewer/

Após realizar a instalação, é necessário habilitar o VNC no Raspberry Pi. Para isso, basta seguir os seguintes passos (Raspberry Pi, 2021):

  • Clicar no símbolo do Raspberry Pi na área de trabalho;
  • Preferências;
  • Raspberry Pi Configuration;
  • Interfaces;
  • Clicar em Enable na opção VNC;
  • Clicar em OK.

O próximo passo é informar o IP do Raspberry Pi no programa VNC Viewer, a fim de realizar a conexão entre cliente e servidor:

É necessário informar agora o nome de usuário e a senha do Raspberry Pi:

Pronto, o acesso ao seu desktop do Raspberry Pi já está disponível:


Automação Residencial com Servidor Local

 

O que é Broker MQTT Mosquitto?

Antes de falar sobre o Broker MQTT Mosquitto, é interessante comentar um pouco sobre o protocolo MQTT. Criado pela IBM no final dos anos 90, este protocolo atua como um intermediador na comunicação das máquinas e seus dispositivos (sensores).

Logo oficial MQTT (Fonte: MQTT.org)

Para fazer o armazenamento dos dados que são medidos e informados pelos sensores, foi criado o Broker MQTT. A sua forma de trabalhar é por meio do modelo de publicação e assinatura (Publisher e Subscribe), onde um ou mais dispositivos que queiram receber as informações de um outro equipamento faz a assinatura do tópico desses dados no Broker e recebe automaticamente essas informações.

Fonte: MSDN Blog

Existem várias empresas que fornecem o Broker MQTT, sendo que o mais conhecido é o Broker Mosquitto, desenvolvido pela Eclipse Foundation, o projeto Mosquitto é um Broker de código aberto compatível desde computadores de placa única (Raspberry Pi) até servidores mais completos, considerado altamente versátil e podendo ser encontrado em várias plataformas.

Bora então conhecer um pouco mais sobre a instalação dessa ferramenta?


Instalação do Broker MQTT Mosquitto no Raspberry Pi

Antes de iniciar a instalação do Mosquitto é importante definir um IP fixo da Raspberry Pi para que seu Broker não mude de endereço IP ao ser reiniciado o roteador ou o Raspberry Pi.

Abra um terminal no Raspberry Pi localmente ou via acesso SSH e digite:

sudo nano /etc/dhcpcd.conf

O editor de texto nano abrirá o arquivo dhcpcd.conf para que possa configurar um IP fixo no Raspberry Pi.

Desça o cursor até encontrar o texto marcado pela seta vermelha da figura abaixo e configure conforme sua rede local.

Obs.: Retire o # do início da linha desejada para que a mesma deixe de ser um comentário no texto e passe a ser um comando a ser executado.

Utilize interface eth0 caso esteja conectado a um cabo de rede, ou interface wlan0 caso esteja conectado a uma rede WIFI;

static ip_address = seu ip/máscara de rede

static routers = ip do seu roteador

static domain_name_servers = IP do seu roteador 8.8.8.8. O primeiro endereço DNS é o IP do próprio roteador. Caso queira utilizar mais DNS pode incluir mais ou utilizar os fornecidos pelo Google como o 8.8.8.8 ou o fornecido pelo seu provedor de Internet.

Para salvar essas informações basta apertar em Ctrl+x e depois S para sim e salvar. Após essa etapa, você deve reiniciar o seu Raspberry para que ele utilize o IP fixado na etapa acima.

Depois de ter reiniciado é importante fazer o update e upgrade ao sistema, a fim de atualizar todos os seus repositórios e o sistema operacional se necessário. Para isso, basta executar os seguintes comandos:

sudo apt-get update
sudo apt-get upgrade

Para instalar o Broker MQTT Mosquitto, basta escrever o seguinte comando:

sudo apt-get install -y mosquitto mosquitto-clients

Para deixar o seu Broker protegido, é necessário utilizar os seguintes comandos para permitir que apenas pessoas/dispositivos que possuam usuário e senha cadastrada para fazer alguma modificação ou acesso.

sudo nano /etc/mosquitto/mosquitto.conf

 Dentro do mosquitto.conf você deve localizar a seguinte linha e apagar

include dir /etc/mosquitto/conf.d

 Após isso, você deve escrever os seguintes comandos:

allow_anonymous false – responsável por informar ao Broker que pessoas anônimas, sem estar autenticadas estão proibidas de fazer Publisher e Subscribe no Broker;

password_file /etc/mosquitto/pwfile – arquivo responsável por armazenar usuários e senhas no Broker;

listener 1883 – encarregado de informar qual a porta que o Broker está utilizando para comunicação na rede local.

Para salvar essas informações basta apertar em Ctrl+x e depois S para sim, e Enter para salvar.

Para criar um arquivo com usuário e senha no Broker basta escrever o seguinte comando:

sudo mosquitto_passwd -c /etc/mosquitto/pwfile admin

Aqui, será criado um usuário chamado admin como exemplo, o Broker irá pedir uma senha. Você deverá escrever a senha desejada e reescrever a fim de obter validação.

Por fim, você deverá reiniciar o Raspberry Pi desligando a fonte de alimentação e ligando novamente ou pelo seguinte código:

sudo reboot

Pronto, o seu Broker MQTT Mosquitto está configurado e pronto para uso, utilizando o endereço IP fixo local para acesso.

Diversos aplicativos e plataformas de automação serão capazes de reconhecer os dispositivos existente na residência através da autenticação que os mesmos farão via Broker MQTT.

 


Conclusão

Após fazer todos os downloads e instalar os programas citados aqui, o seu Raspberry Pi está pronto para começar a trabalhar, seja para atividades básicas que são realizadas em um computador, ou com a automação residencial em conjunto com o Broker MQTT Mosquitto para o armazenamento de dados dos dispositivos utilizados.

Assim, objetivamos auxiliar todos os interessado nesse mundo da Domótica, informando sobre as principais características destas ferramentas, no caso o Raspberry Pi e o Broker MQTT Mosquitto e também sobre o passo a passo para fazer as instalações e configurações necessárias de forma correta.

Com um Broker MQTT local você poderá comunicar dispositivos de diferentes fabricantes que possuam acesso via MQTT ou também construir seus próprios dispositivos para automação utilizando Arduino, Esp8266, Esp32 entre outros. A vantagem de ser local, é que sua automação não deixa de funcionar em caso de falhas de comunicação com a Internet.

Gostou desse artigo? Deixe aqui a sua curtida e nos envie um recado nos comentários caso tenha ajudado você, ou se por ventura tiver alguma dúvida ou sugestão. A sua participação é importantíssima para que possamos trazer mais conteúdos, além de nos incentivar. Muito obrigado!


Referências

1. Fundação Raspberry Pi, disponível em https://www.raspberrypi.org

2. Raspberry Pi. Documentação do Raspberry Pi. Disponível em: <https://www.raspberrypi.com/documentation/computers/getting-started.html#setting-up-your-raspberry-pi>. Acesso em: 29 nov. 2021.

3. Olhar Digital, Raspberry Pi: o que é, para que serve e como comprar.  18 de fevereiro de 2019. Disponível em https://olhardigital.com.br/2019/02/18/noticias/raspberry-pi-o-que-e-para-que-serve-e-como-comprar/

4. Michael Yuan, Conhecendo o MQTT. 03 de outubro de 2017. Disponível em https://developer.ibm.com/br/articles/iot-mqtt-why-good-for-iot/

5. Renan Neri, Matheus Lomba e Gabriel Bulhões, MQTT. Disponível em https://www.gta.ufrj.br/ensino/eel878/redes1-2019-1/vf/mqtt/

6. Eclipse Fondation, Mosquitto. Disponível em https://mosquitto.org

7. Infortrônica Para Zumbis, Instalar o broker MQTT Mosquitto na Raspberry Pi (Automação Residencial). 23 de julho de 2017. Disponível em https://www.youtube.com/watch?v=gQhSyAmnGgY.

8. Opensourse.com, What is a Raspberry Pi?. Disponível em https://opensource.com/resources/raspberry-pi.

9. Halfacree, G. THE OFFICIAL Raspberry Pi Beginner’s Guide. How to use your new computer (2020, p. 237). Disponível em: <https://magpi.raspberrypi.com/books/beginners-guide-4th-ed>. Acesso em: 31 dez. 2021.

10. Jucá, S.; Pereira, R. Aplicações Práticas de sistemas embarcados Linux utilizando Raspberry Pi. Disponível em: <https://podeditora.com.br/wp-content/uploads/2019/03/Livro-Aplicacoes-Praticas-Rpi-Pod-site.pdf>. Acesso em: 29 dez. 2021.

11. Richardson, M. Wallace, S.; Primeiros Passos com o Raspberry Pi. Disponível em: <https://dev.bydas.com/mzformativa/admin/common/files/1408699616_primeiros-passos.pdf>. Acesso em: 28 dez. 2021.

Autores

Mateus Borges Araújo (Aluno de Engenharia de Controle e Automação / IFG – Itumbiara).
Ghunter Paulo Viajante (Professor da área de Indústria / IFG – Itumbiara).
Josemar Alves dos Santos Junior (Professor da área de Indústria / IFG – Itumbiara).

Tenha a Metodologia Eletrogate na sua Escola! Conheça nosso Programa de Robótica Educacional.


Sobre o Autor


IFMaker Itumbiara

O IFMaker Itumbiara é um espaço para ensino de desenvolvimento de projetos voltados à cultura Maker. As publicações e projetos são realizados por professores e alunos do Instituto Federal de Goiás – Campus Itumbiara (Goiás).


Eletrogate

10 de fevereiro de 2022

A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.

Tenha a Metodologia Eletrogate dentro da sua Escola! Conheça nosso Programa de Robótica nas Escolas!

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!