Criando end-devices LoRa: arquitetura e especificações

No meu último artigo no portal Embarcados abordei sobre as plataformas de desenvolvimento de baixo custo que possuíam módulos/transceivers LoRa integrados. Como sequência, inicio uma série de artigos para falar características dos elementos (dispositivos) de uma rede baseada na tecnologia LoRa, os end-devices e gateways.

 

 

Visão geral da arquitetura dos end-devices LoRa

 

A fim de projetar e desenvolver um dispositivo embarcado com tecnologia LoRa, deve-se ter em mente a estrutura geral de sua arquitetura, em termos de hardware, e possíveis especificações para caracterização do dispositivo para a sua aplicação específica.

 

end-devices LoRa - Arquitetura geral de dispositivo LoRa baseado em chipsets SX127x
Fig. 1 - Arquitetura geral de dispositivo LoRa baseado em chipsets SX127x

 

A arquitetura geral padrão desses dispositivos é ilustrada na Fig. 1. Note que a arquitetura especificada faz uso de transceivers LoRA da família SX127x. Caso seja utilizado outro transceiver, como o RN2483 da Microchip, a arquitetura pode variar um pouco. Assim, definida sua estrutura. Os elementos como fonte de energia (bateria), microcontrolador e sensores necessitam ser especificados. Cada elemento deve ser escolhido baseado no requisito de sua aplicação (caso de uso):

  • MCU: alguns requisitos de projeto podem interferir na etapa da escolha do microcontrolador. Dependendo da aplicação, um modelo com mais do que 32KB de memória flash para firmware possa ser necessário. Isso deve-se ao stack (pilha) do protocolo LoRaWAN embarcado. Para comunicação direta M2M (machine-to-machine) nó a nó, 32KB podem ser suficientes. De outro lado, para obter uma maior eficiência energética (com low-power modes) e maior poder de processamento, algum ARM poderia ser uma opção para o desenvolvimento do projeto. A Fig. 2 ilustra algumas especificações definidas pela SEMTECH.

 

Especificações mínimas e recomendadas para MCU com stack LoRaWAN
Fig. 2 - Especificações mínimas e recomendadas para MCU com stack LoRaWAN

 

  • Bateria: a escolha do modelo de bateria vai estar totalmente relacionada com o tipo de aplicação. Para uso de dispositivos em telemetria são usadas baterias AA (totalizando 3V), objetivando uma vida útil média entre 2 a 7 anos. Baterias CR2032 são preferidas para dispositivos wearables. Em outras aplicações como transportes e cidades inteligentes uma bateria recarregável de Lítio-polímero poderia ser usada permitindo um ciclo de re-utilização do dispositivo;
  • Sensores: estes são responsáveis pela parte específica da sua aplicação. Podendo ser desde um simples sensor de temperatura, giroscópio ou até um GPS. Ao configurar o funcionamento do seu dispositivo, recomenda-se medir o consumo médio do sensor utilizado. Como exemplo ilustrativo, a Fig. 3, do white paper Low Power Sensing da NXP, ilustra um diagrama de máquina de estados para atingir o objetivo de consumo mínimo de energia ao ativar um sensor.

 

Diagrama de estados para ativação de sensor com consumo mínimo de energia
Fig. 3 - Diagrama de estados para ativação de sensor com consumo mínimo de energia

 

 

Desenvolvimento e integração do end-device

 

Definido um projeto baseado na tecnologia LoRa, também faz-se necessária a escolha da arquitetura de rede. Em aplicações de telemetria e asset tracking, por exemplo, o uso do protocolo LoRaWAN torna-se essencial. De outra maneira, o uso de uma rede local envolvendo apenas comunicação M2M pode ser obtida sem o uso do LoRaWAN e consequentemente sem a instalação de um gateway LoRaWAN. A Figura 4 ilustra a topologia LoRaWAN.

 

Ilustração da topologia de uma rede LoRaWAN em termos de seus elementos
Fig. 4 - Ilustração da topologia de uma rede LoRaWAN em termos de seus elementos

 

Para um detalhamento maior sobre LoRaWAN, acesse este artigo anterior do portal.

 

 

Firmware para a comunicação

 

O desenvolvimento do firmware do sistema embarcado também ganha uma importância devido à questão do tempo de desenvolvimento de um protótipo/ideia (time-to-market). Assim, pode-se listar as principais bibliotecas e ferramentas já disponíveis para o uso da tecnologia LoRa.

 

Como exemplo base, segue uma imagem, Fig. 5, de um documento da STM sobre arquitetura de firmwares para uso dos transceivers LoRa SX127x na família STM32.

 

Estrutura para desenvolvimento de firmware
Fig. 5 - Estrutura para desenvolvimento de firmware

 

Exemplificando a partir da STM, o desenvolvedor ficaria a cargo de realizar a integração de sua aplicação com códigos da camada MAC LoRa. A fim de exemplificar, um hello world básico seria o de mandar via LoRa (seja usando rede LoRaWAN ou comunicação entre dois dispositivos LoRa) a informação lida por uma porta analógica do microcontrolador.

 

Tratando-se de plataformas que utilizam a interface Arduino para desenvolvimento, como algumas das citadas em meu último artigo, existem algumas bibliotecas abertas para comunicação usando a camada física e para configuração do dispositivo como endpoint LoRaWAN.

 

PingPong application (RX-TX) entre dois dispositivos

 

Nesta biblioteca temos o código exemplo de uma transmissão direta entre dois endpoints LoRa via comunicação RX-TX. A biblioteca é excelente para projetos que envolvam comunicação de longas distâncias com baixo consumo de energia. Os códigos deste exemplo podem ser encontrados neste link e informações sobre a biblioteca no site AirSpayce. A Fig. 6 ilustra a serial aberta para o exemplo de comunicação RX-TX utilizando esta biblioteca.

 

Exemplo LoRa RX-TX com a biblioteca RadioHead
Fig. 6 - Exemplo LoRa RX-TX com a biblioteca RadioHead

 

Os parâmetros que podem ser alterados pelo usuário de forma simples para envio de mensagens é o payload (número de bytes da mensagem). Outro parâmetro retornado na comunicação RX-TX é o RSSI.

 

LoRaWAN endpoint

 

O end-device LoRaWAN pode ser definido de acordo com uma das classes de operação. A biblioteca Arduino-LMIC apresenta uma implementação para comunicação com gateway LoRaWAN. Você pode conectar um endpoint LoRaWAN com Arduino via um gateway da The Things Network (TTN). Este vídeo do Andrea Spiess detalha perfeitamente o passo a passo. Como mencionei em meu último artigo, ainda não utilizei nenhuma placa com esta biblioteca pois não possuo nenhum gateway LoRaWAN até o momento.

 

A depender de sua aplicação, o uso de uma rede própria a partir do uso da tecnologia LoRa como meio de comunicação (camada física) possa ser interessante. Como mencionado algumas vezes, a rede LoRaWAN possui suas limitações.

 

Antena para comunicação do módulo com a rede

 

Objetivando um maior alcance possível aliado a um baixo custo do dispositivo, deve-se fazer a escolha da antena para seu endpoint. Diferentes opções estão disponíveis. Alguns modelos são listados abaixo, baseados no módulo apresentando em meu último artigo.

 

Fig. 7 - Diferentes antenas disponíveis para uso como módulo LoRa

 

Uma lista detalhada de diferentes modelos disponíveis pode ser encontrada no site da Taoglass, por exemplo. A configuração do diferente tipo de antena, como diretividade e ganho, influenciam no alcance da comunicação. Aos interessados em simular e calcular parâmetros, a SEMTECH oferece o LoRa modem calculator tool para simulação desses parâmetros.

 

LoRa modem calculator tool
Fig. 8 - LoRa modem calculator tool

 

Construção do nó LoRa

 

A partir da visão geral da arquitetura de um nó (endpoint) LoRa pode-se construir o dispositivo com base em ferramentas de baixo custo, como o Arduino UNO e suas variações. Aos interessados em montar dispositivos para comunicação via rádio (RX-TX) ou com integração com rede LoRaWAN, o tutorial do site MobileFish é um ótimo guia inicial.

 

Criando end-device LoRa a partir de Arduino UNO
Fig. 9 - Criando end-device LoRa a partir de Arduino UNO

 

Outras alternativas de montagem de endpoints a partir de placas open-source hardware podem ser encontradas no site da The Things Network. Na Fig. 10 pode-se ver um exemplo de um endpoint montado a partir de um STM32 com painel solar para alimentação de bateria.

 

End-device LoRa com STM32 e painel solar
Fig. 10 - End-device LoRa com STM32 e painel solar

 

Também apresento um endpoint próprio (Fig. 11) que fiz para medição de temperatura e umidade do solo. O módulo é baseado em um Arduino standalone com o módulo RF95W.

 

Endpoint LoRa para medição de umidade do solo
Fig. 11 - Endpoint LoRa para medição de umidade do solo

 

De outra maneira, o uso de uma plataforma de desenvolvimento para construção de endpoints pode ser viável. A depender do custo e suas funcionalidades, pode-se validar o uso de uma ferramenta deste tipo. Uma opção bastante interessante é a Whisper Node (Fig. 12), da empresa Australiana Wisen.

 

Whisper Node LoRa
Fig. 12 - Whisper Node LoRa

 

A placa é projetada para minimizar o consumo em aplicações de sensoriamento e redes de sensores sem fio. Em conjunto com as bibliotecas listadas acima e a LowPower library consegue-se o consumo mínimo de bateria. Além da possibilidade de uso de módulo RTC com a mesma, outra grande vantagem da placa sobre as outras é a possibilidade do uso de baterias CR2032 (fornecendo 3V) para alimentação. Para aplicações portáteis e compactas, o uso deste tipo de bateria pode se tornar um diferencial. A Fig. 13 ilustra o design da placa.

 

Fig. 13 - Whisper node LoRa: detalhamento da placa

 

Apesar de ser um placa (módulo) já pronta para desenvolvimento do sistema embarcado, trata-se, em minha opinião, da melhor solução de baixo custo para uso como endpoint LoRa. As placas apresentadas em meu artigo anterior podem ser soluções para o desenvolvimento, porém a Whisper node atende as mesmas características, aliada a um custo menor, com eficiência energética e com possibilidades de add-ons (como módulo RTC, conector de bateria CR2032).

 

Whisper node alimentado com pilhas AAA
Fig. 14 - Whisper node alimentado com pilhas AAA

 

Para os interessados em mais detalhes sobre a Node Whisper LoRa, uma breve documentação da placa está disponível aqui.

 

Conclusão

 

A construção de endpoints LoRa/LoRaWAN pode seguir o uso do RF95W como transceiver para comunicação e a escolha de um microcontrolador que atenda as suas especificações. Para desenvolvimento de projetos em curto espaço de tempo e grande compatibilidade de bibliotecas, módulos e add-ons, o uso de uma placa como a Whisper Node pode ser uma vantagem. Apesar da mesma não possuir pin-out padrão Arduino UNO, possui o MCU Atmega 328P e alguns add-ons  que possam ser essenciais em projetos de IoT, como RTC e conector para bateria CR2032, proporcionando uma autonomia maior para o dispositivo desenvolvido. Soluções que podem ser facilmente anexadas a um Arduino UNO para desenvolvimento com LoRa são: o shield LoRa da Dragino ou a construção de um transceiver a partir do RF95W como mostrado nos vídeos do Andrea Spiess.

 

Referências

 

LoRaWAN Quick Guide

RF95W Datasheet

LoRa Developer User Guide

STM32 LoRa Software expansion for STM32Cube

Low Power Sensing NXP

LoRaWAN MCU Specification and Requirements

The Things Network: building LoRa nodes

LoRaWAN limitations

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Eronides Da Silva Neto
Engenheiro da Computação no Centro de Estudos e Sistemas Avançados do Recife (C.E.S.A.R). Mestrando em Ciências da Computação no Centro de Informática da Universidade Federal de Pernambuco (CIn-UFPE). Engenheiro Eletrônico pela Universidade Federal de Pernambuco (DES-UFPE). Possui experiência profissional no desenvolvimento de sistemas embarcados e em Eletrônica Digital com dispositivos lógico programáveis (CPLDs e FPGAs).

5
Deixe um comentário

avatar
 
5 Comment threads
0 Thread replies
4 Followers
 
Most reacted comment
Hottest comment thread
5 Comment authors
Hélvio AlbuquerqueAndreyCirineu Carvalho FernandesRoniere RezendeFábio Souza Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Hélvio Albuquerque
Visitante
Hélvio Albuquerque

Gostei da clareza e objetividade do artigo, além de conter muitas referências externas. Muito bem escrito. Parabéns, Eronides.

Andrey
Visitante
Andrey

Muito bom este artigo, gostaria de fazer um sistema de localização utilizando a tecnologia LoRa, mas ainda estou com algumas duvidas.

Cirineu Carvalho Fernandes
Visitante
CCFer

Amigo me responde uma coisa, necessariamente tenho que trabalhar com esse módulo e um microcontrolador ? ele não trabalha sem o microcontrolador não ?

Roniere Rezende
Membro

Eronides, este seu artigo ficou muito bom. Era o que eu precisava para me ajudar para um projeto que estou desenvolvendo. Parabéns!

Fábio Souza
Visitante

Excelente artigo! Parabéns Eron.