EmbeddedIoTLinuxRaspberry

Raspberry Pi Gateway com MySensors

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

SPI - Gateway com MySensors
SPI – Gateway com MySensors

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

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:

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

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

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

Hora da adrenalina:

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.

Atualização do kernel - Gateway com MySensors
Atualização do kernel – Gateway com MySensors

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:

./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:

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:

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:

Integração - Gateway com MySensors
Integração – Gateway com MySensors

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!