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?
Tópicos
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. O sistema fica nesse formato:

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.
Off-topic
Sabe a AllChips? Não? Então você provavelmente tá perdendo a oportunidade de ganhar uma board Banana Pi, Grid Eye ou Raspberry Pi 3, à sua escolha. Aproveite para seguir o rito e se inscreva aqui para correr o risco de ganhar um free sample, mas corre lá porque está prestes a fechar o evento, dia 31!
Inscreva-se no nosso newsletter, alí em cima à direita e receba novos posts por email.
Siga-nos no Do bit Ao Byte no Facebook.
Prefere twitter? @DobitAoByte.
Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.
Nossos grupos:
Arduino BR – https://www.facebook.com/groups/microcontroladorarduinobr/
Raspberry Pi BR – https://www.facebook.com/groups/raspberrybr/
Orange Pi BR – https://www.facebook.com/groups/OrangePiBR/
Odroid BR – https://www.facebook.com/groups/odroidBR/
Sistemas Embarcados BR – https://www.facebook.com/groups/SistemasEmbarcadosBR/
MIPS BR – https://www.facebook.com/groups/MIPSBR/
Do Bit ao Byte – https://www.facebook.com/groups/dobitaobyte/
Próximo post a caminho!
Olá, parabéns pelo artigo, eu estou iniciando com o mysensors e não estou conseguindo mudar a frequência de 868MHz para 915MHz com transceptor LoRa. Você saberia ajudar nesse problema?