Manual

do

Maker

.

com

Raspberry Pi Gateway com MySensors

Raspberry Pi Gateway com MySensors

Escrevi recentemente sobre a configuração de um gateway para redes mesh com Raspberry Pi, mas uma atualização importante foi feita e não poderia deixar de escrever a respeito, já que recursos que considero fundamentais foram incluídos. Dado os fatos, o setup precisará ser refeito e o procedimento é um pouco diferente. Vamos encarar essa atualização?

Gateway com MySensors

Não vou me aprofundar em detalhes, se for o caso, leia esse outro artigo a respeito. Pretendo ser o mais breve possível nesse artigo, incluindo um pouco de debug dessa vez.

Habilitar o SPI

O primeiro passo é habilitar o SPI. Após fazer login no Raspberry Pi (local ou remotamente), execute:

sudo su
raspi-config

Selecione o menu "Advanced Options" e a opção "SPI". Habilite-a e aceite tudo o que aparecer, então será solicitado um reboot pela própria interface em curses. Após o reboot, faça novamente o login e repita o comando "sudo su" para manter-se com direitos administrativos do sistema.

Upgrade do Jessie para o Stretch

Mas, você pode ter algum problema ao compilar o MySensors, relacionado ao SPI. Principalmente se estiver utilizando uma versão antiga do Raspbian. Nesse caso (no meu caso), o negócio é fazer um upgrade. Eu tenho que começar do Wheezy para o Jessie e depois para o Stretch, mas vou exemplificar diretamente do jessie para o Stretch.

Faça um upgrade da versão atual

Primeiro, é bom fazer um upgrade da versão atual para evitar problemas com o sistema. Execute esses comandos:

sudo su
apt-get update
apt-get upgrade
apt-get dist-upgrade

Se você nunca fez uma atualização antes, isso deve levar um tempo. Supondo que nada saia mal:

dpkg -C
apt-mark showhold

Marcando os pacotes dessa maneira você previnirá que pacotes que podem causar problemas sejam atualizados. Hora de substituir os repositórios:

sudo sed -i 's/jessie/stretch/g' /etc/apt/sources.list
apt-get update

Faça agora uma simulação para ver se tudo estará ok (e evitar aborrecimentos com prompts de resets de serviços do sistema):

apt-get --simulate upgrade

Hora da adrenalina:

apt-get upgrade
apt-get dist-upgrade

Se tudo der certo e nada der errado, parabéns, seu sistema está atualizado. O próximo passo pode ser diretamente a compilação do MySensors.

Atualizar o kernel

No Raspberry Pi você pode tanto compilar seu próprio kernel como atualizá-lo a partir do repositório, ou ainda, utilizar o aplicativo rpi-update. Após efetuar o reboot do sistema, fique a vontade para experimentá-lo.

Compilar o MySensors

Sempre que possível, use o git (é uma sugestão). Se você ainda não instalou o git, faça-o e clone o repositório:

sudo su
apt-get install git
git clone https://github.com/mysensors/MySensors.git --branch master
cd MySensors

./configure

Tradicionalmente no Linux, quando se está compilando pacotes a partir dos códigos fonte, três passos são necessários; configure, make e make install. O configure pode ocasionalmente receber parâmetros. No caso do MySensors, eles são bastante variáveis, dependendo da forma que deseja configurar o gateway. Eu configurei o gateway para ser um client também, além de ter habilitado o MQTT na configuração. Basicamente, utilizei esse comando:

./configure --my-transport=nrf24 --my-gateway=ethernet \
--my-port=5003 --my-controlle-ip-address=192.168.1.2 \
--my-gateway=mqtt --my-mqtt-publish-topic-prefix=mysensors-out \
--my-mqtt-subscribe-topic-prefix=mysensors-in \
--my-mqtt-client-id=dobitaobyte --my-mqtt-password=senha

Com isso, habilitei o rádio NRF24L01, coloquei o gateway na interface de rede, porta 5003. Você pode passar IP ou URL, mas no meu caso preferi passar o IP, apesar de ter um servidor DNS configurado nesse Raspberry Pi para resolver nomes na Internet e em minha rede local. Se desejar configurar um DNS server também, leia esse outro artigo. Após o IP,  habilitei o MQTT, o tópico de leitura e de escrita e o ID do gateway. Se desejar ver todas as opções disponíveis, use o comando:

./configure --help

make

Finalizada a configuração, podemos iniciar a compilação. Basta digitar o comando make.

make install

O make install se comporta conforme o parâmetro install foi configurado no Makefile. No caso do MySensors, o serviço é habilitado e o binário copiado para o respectivo diretório.

Testando a comunicação

Agora é uma boa prática testar a comunicação e ver se ela está acontecendo. Para isso, apenas chame o programa mysgw -d.

Controller

Pra mim o conceito é um pouco fresco, estou fazendo testes ainda. O que acontece é que após iniciar o serviço do MySensors, será necessário um controlador para fazer o gerenciamento dos dispositivos. Eu estou utilizando o Domoticz, que possui versões para X86 e ARM, em diferentes sistemas operacionais. Já vamos ver isso no próximo artigo, ok?

Resumidamente, o Raspberry rodará 2 serviços:

  • MySensors - para fazer a interface de rádio como uma rede mesh
  • Domoticz - o controlador que coletará dados dos dispositivos que se comunicarem por rádio com o Raspberry

E os dispositivos periféricos deverão ter o NRF24L01  conectados, além da biblioteca MySensors instalada.

Comunicação

Mais uma vez, a comunicação e monitoramento ficarão pro próximo artigo relacionado. E não se esqueça, leia o artigo anterior porque lá tem conceitos e também a configuração para habilitar o NRF24L01.

Inscreva-se no nosso canal Manual do Maker no YouTube.

Também estamos no Instagram.

Nome do Autor

Djames Suhanko

Autor do blog "Do bit Ao Byte / Manual do Maker".

Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.