Manual
do
Maker
.
com
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?
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.
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.
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.
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.
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.
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
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
Finalizada a configuração, podemos iniciar a compilação. Basta digitar o comando make.
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.
Agora é uma boa prática testar a comunicação e ver se ela está acontecendo. Para isso, apenas chame o programa mysgw -d.
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:
E os dispositivos periféricos deverão ter o NRF24L01 conectados, além da biblioteca MySensors instalada.
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.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.