Artigos

16 DE DEZ DE 2018

Plataforma 3G IoT baseada em LoRa

O grande desafio agora é o desenvolvimento de sistemas embarcados para soluções IoT outdoor, com aplicações para smart-cities, cases do agronegócio, logística e sensoriamento remoto. Em particular, duas tecnologias de IoT - Sigfox e LoRa -

2050 ENSAIO Plataforma 3G IoT baseadaem LoRa ROGER MEDKE · 16 DE DEZ DE 2018

Com o avanço da Internet das Coisas (IoT), torna-se natural pensarmos em aplicações e soluções voltadas a objetos e redes de sensores conectados. Quando falamos da tecnologia necessária para o uso de IoT em aplicações indoor (como em casas inteligentes e automação predial), Wi-Fi e BLE (Bluetooth Smart) já estão consolidadas no mercado.

O grande desafio agora é o desenvolvimento de sistemas embarcados para soluções IoT outdoor, com aplicações para smart-cities, cases do agronegócio, logística e sensoriamento remoto. Em particular, duas tecnologias de IoT - Sigfox e LoRa - chamam a atenção por permitir comunicação de longo alcance (2-15km) com baixo consumo de energia (na ordem microamperes), as chamadas redes LPWAN (Low Power Wide Area Network).

LoRa como solução de IoT e comunicação M2M

 Uma dúvida natural para a maioria dos estudantes e profissionais que desejam se aprofundar nas diferentes tecnologias para IoT é a escolha do hardware a ser usado e qual o seu custo associado. Atualmente, para projetos de telemetria e automação residencial e predial, por exemplo, associamos rapidamente a plataforma Particle Photon ou o módulo ESP8266, como solução de baixo custo.

Em se tratando do uso de LPWAN para soluções de IoT, muitos ainda ficam na dúvida sobre quais módulos e plataformas de desenvolvimento podem ser usados. Este artigo introduz o módulo RFM95W baseado no circuito integrado (transceptor) SX1276 da SEMTECH como transceiver LoRa e as placas de desenvolvimento que o utilizam.

Apresentando o módulo RFM95W (LoRa transceiver)

 A partir da tecnologia patenteada LoRa, o transceiver pode ser utilizado para comunicações M2M (Machine-to-Machine) ou como parte de uma rede LPWAN, utilizando o protocolo LoRaWAN. A empresa HOPERF, especialista em soluções de RF e IoT, desenvolveu um módulo baseado no circuito integrado SX1276, que é bastante prático para o desenvolvimento de projetos que necessitam de comunicação LoRa. Assim, o RFM95W tornou-se um case de sucesso devido ao preço baixo e à facilidade de uso. Em uma comparação rápida, o RFM95W está para LoRa assim como o ESP8266 está para a tecnologia Wi-Fi (em termos de baixo custo e desenvolvimento open-source hardware).

 O módulo pode ser encontrado nas versões de 433MHz, 868MHz e 915MHz, lembrando que a frequência de utilização do dispositivo LoRa está definida pela região geográfica/banda de frequência ISM (no Brasil utilizamos 915MHz).

Figura 1 - Transceiver LoRa RFM95W

Basicamente, o módulo apresenta a interface de comunicação através do protocolo SPI, entrada para alimentação e saída para conexão de antena externa. Na Figura 2 é apresentada uma visão geral do módulo e sua pinagem. Para mais informações, consulte o datasheet do módulo.

Figura 2 - Pinout do RFM95W (Fonte [2])

Algumas variações do módulo, RFMxx, são produzidos pela empresa HOPERF. Algumas versões anteriores baseiam-se em comunicação por radiofrequência, como o RF69.

Plataformas de desenvolvimento baseadas no SX1276

 Até aqui, não foi apresentada nenhuma plataforma de desenvolvimento, isto é, uma placa baseada em algum microcontrolador (MCU) com o transceiver LoRa integrado. Como pode ser visto acima, a comunicação do RFM95 com qualquer microcontrolador é bastante simples. Assim, surgiram alguns módulos baseados na plataforma Arduino com o RFM95 integrado.

Segue uma lista das placas de desenvolvimento disponíveis, separadas por linhas de diferentes microcontroladores:

 Atmel Atmega32u4: Feather 32u4

Figura 3 - Placa Feather 32u4

O ponto positivo desta placa é a possibilidade de encaixar diretamente uma bateria recarregável de lítio-polímero, bem como recarregar a mesma. Apesar da limitação do clock, de apenas 8MHz, a placa possui características interessantes, como os 300uA no sleep-mode e o pico de corrente de 120mA com transmissão a +20dBm.

Atmel ATSAMD21G18: Feather M0

Figura 4 - Placa Feather M0

Baseada em um ARM Cortex-M0 (com 48MHz), possui características bem parecidas com a versão que possui o Atmega32u4.

 STM32: ST B-L072Z-LRWAN1 STM32 LoRaWAN™ Discovery

Figura 5 - Placa STM32 LoRaWAN Discovery

Talvez uma das melhores opções do mercado, por ser compatível tanto com mBed, como também com o Keil. Confira mais informações deste plataforma neste artigo.

Microchip: RN2903 Mote Boards (utiliza o RN2903)

Figura 6 - RN2903 da Microchip

Espressif ESP32: Lopy (utiliza o SX1272)

Entre as plataformas com tecnologia LoRa de baixo custo e voltadas para “makers”, a LoPy tem características interessantes por também apresentar BLE e Wi-Fi. Outro diferencial é o uso de Python para programação (através do bootloader do MicroPython instalado).

 Existem outras plataformas, mas, dentre as que utilizam o RFM95, com exceção da RN2903, estas são as de maior relevância, em termos da relação custo x benefício. A STM32 discovery com o LoRa também é uma ótima plataforma de desenvolvimento para aplicações profissionais (desenvolvimento de produto), considerando que ela já conta com antena inclusa - item que é comprado separadamente para a maioria das outras placas.

 Para os que precisam apenas do transceptor LoRa em seu projeto, existe ainda a possibilidade da compra de um módulo breakout/shield com o módulo RFM95.

LoRa Dragino ShieldFigura 7 - LoPy da Pycom

Figura 8 - LoRa Dragino shield

Adafruit LoRa breakout

Figura 9 - Adafruit LoRa breakout board

Outra alternativa, a de menor custo, seria a compra do RFM95 e a confecção de sua própria placa/shield. O RFM95 pode ser encontrado com facilidade em sites de componentes internacionais.

Visão geral do uso do RFM95W

 Nesta seção é apresentada uma visão geral do uso do SX1276 com a plataforma Arduino através dos microcontroladores Atmega328P e Atmega32u4.

Conexões físicas

 Como mencionado anteriormente, a conexão com qualquer MCU pode ser realizada através do barramento SPI. Pelo fato do módulo RFM95W não apresentar um encaixe direto para uma protoboard, é possível utilizar o adaptador do ESP8266 para prototipagem.

Figura 10 - Conector para encaixe do RFM95W em protoboard

Uma limitação deste conector, em específico, é o uso de uma antena “wire” e não das tradicionais, com encaixe SMA ou uFL SMT. O uso de antenas diferentes influencia diretamente no alcance obtido durante a comunicação. A partir de relatos de usuários, alcances de 8.3km (com conexões a gateways LoRaWAN) já foram obtidos a partir do uso do SX1276.

Libraries/firmware para o SX1276

 Como o foco da tecnologia LoRa são aplicações de IoT, o uso do RFM95 com o protocolo LoRaWAN pode ser feito através da biblioteca aberta Arduino-LMIC. Para algumas aplicações de comunicação de longo alcance ponto a ponto (P2P), a biblioteca RadioHead pode ser útil. Outra biblioteca bem interessante para o uso da tecnologia em comunicação rádio é a Arduino LoRA.

 Em geral, a programação das placas Arduino compatíveis (ou até mesmo o próprio Arduino UNO) com o RFM95 segue o mesmo padrão conhecido.

Figura 11 - Feather32u4 LoRa com Arduino IDE

Aos interessados, alguns links úteis para configuração e programação:

Eficiência energética

 A partir do módulo LoRa breakout, realizei alguns testes de conexão para comunicação entre dois endpoints utilizando a biblioteca Arduino-LoRa em conjunto com LowPower Library para o Atmega328P. Objetivando um menor número de componentes eletrônicos para o mínimo consumo de energia possível, montei um circuito Arduino standalone (Figura 12) na protoboard e testei o consumo de corrente ao alimentar o circuito com uma bateria de 3.7V recarregável.

 Configurando o firmware para enviar uma mensagem LoRa com payload de 8 bytes a cada 40 segundos, obtive 85 uA no modo sleep e picos instantâneos de 100mA ao enviar a mensagem. Realizando uma conta básica, teríamos uma autonomia de até 244 dias utilizando uma bateria de 500mAh.

Figura 12 - Circuito standalone para medir consumo de corrente

Apesar do bom resultado, o firmware do microcontrolador pode ser aprimorado para consumo na ordem de nA. Alguns projetistas compartilharam alguns projetosutilizando um Arduino Pro-Mini com consumo de corrente mínimo. Também foi possível medir o consumo com a placa Feather 32u4 (Figura 13). As informações a respeito do consumo de energia passadas pela Adafruit em seu site podem ser melhoradas utilizando a biblioteca LowPower (obtendo valores como 180uA em sleep mode e 100mA nos picos).

Figura 13 - Feather 32u4 alimentada com bateria recarregável

Testes de alcance de conexão

 Utilizando as bibliotecas Arduino-LoRa e radiohead foi possível medir o alcance de uma conexão P2P entre dois módulos LoRa (testes envolvendo conexão endpoint-gateway ainda não foram realizados). O teste foi realizado tanto com o breakout board quanto com a placa Feather 32u4. A antena utilizada no teste com o módulo breakout é a mostrada na Figura 14. A da placa Feather 32u4 é a apresentada conectada a placa Lopy na figura 14 também.

Figura 14 - Plataformas de desenvolvimento baseadas em LoRa

Aos interessados, seguem as referências para as antenas utilizadas:

 O melhor alcance obtido numa área urbana em Recife - PE (Figura 15) foi de cerca de 800 metros, contando com a presença de vários prédios entre os módulos. Comparando o resultado com relatos de outras pessoas em fóruns, o meu resultado apresentado é, de certa forma, ruim. Outras opções também para o aumento do range da comunicação é uma melhor configuração da antena e parâmetros da comunicação.

Figura 15 - Teste de alcance de conexão P2P LoRa

Integrando o hardware com a The Things Network

 A partir do momento em que falo de placas de desenvolvimento baseadas em LoRa, também se torna fundamental definir uma plataforma para a integração do hardware desenvolvido com o protocolo LoRaWAN. Neste caso temos a plataforma 3GSOFT IoT.

A "The Things Network" (TTN) é um projeto global cuja missão é construir uma rede de Internet das Coisas aberta, global e crowdsourced, ou seja, construída, mantida e operada pelos seus usuários.

 Em Julho de 2015, a TTN conseguiu cobrir a cidade inteira de Amsterdam com um novo tipo de rede wireless, usando a tecnologia LoRa. A rede foi construída de baixo para cima, financiada por desenvolvedores.

 Atualmente a TTN permite a configuração gratuita de gateways ao redor do mundo, por qualquer usuário. No Brasil, temos alguns usuários cadastrados e alista das respectivas cidades com gateways públicos. No momento, estou tentando a instalação de uma gateway na cidade de Recife - PE. Uma das minhas motivações com a escrita deste artigo é compartilhar o conhecimento sobre a tecnologia LoRa e conhecer os usuários da rede TTN no Brasil.

 Para o uso dos dispositivos LoRa com a TTN, podemos utilizar dispositivos prontos ou construir nossa própria solução, a partir de transceivers LoRa (como o RFM95).

 LoRa endpoints

 Para conectar um endpoint (no) LoRa na TTN, torna-se necessário configurar o dispositivo para tal. Recomendo o uso da biblioteca Arduino-LMIC. Em uma continuação deste artigo abordarei a construção de seu próprio endpoint a partir do RFM95. Para os curiosos de plantão, recomendo a seção Devices do site da TTN.

 A TTN também fornece sua própria placa (The Things UNO), baseada no Arduino UNO, para desenvolvimento de endpoint LoRaWAN. Apesar de ser totalmente compatível com a TTN, a placa possui grande desvantagem na questão do preço.

Figura 16 - The Things UNO da TTN

Gateway

 O estabelecimento de um Gateway LoRaWAN é um pouco diferente do que a simples configuração de um nó da rede. Além de uma maior complexidade da solução do hardware, existem também algumas etapas na configuração (registro e software). A TTN oferece uma solução pronta, restando apenas a configuração.

Figura 17 - Gateway LoRaWAN da TTN

Assim como o estabelecimento de um endpoint, existem alguns tutoriais de como montar seu gateway (com várias limitações em termos de hardware devido ao fato deles usarem o SX1276 como receptor) a partir de plataformas como Raspberry Pi 3, placas baseadas em ESP8266 e outros dispositivos embarcados. A seção gatewaysdo site da TTN possui alguns tutoriais utilizando as plataformas citadas acima.

Conclusão

A partir deste artigo espero ter contribuído para a comunidade do Embarcados com uma parte deste conhecimento sobre LoRa adquirido em minhas pesquisas e desenvolvimentos recentes. Senti falta de um material introdutório em português sobre o assunto, e foi um desafio resumir muita informação sobre as placas, protocolo e soluções em um único artigo. Como dito anteriormente, meu plano é continuar este texto com uma possível sequência de como construir seu endpoint (com diferentes abordagens) e um mini gateway LoRa.

Referências

SEMTECH LoRa product family

Pycom LoRa

Adafruit LoRa

Low Power Lab

Tutoriais no YouTube

TTN: The Things Network

MobileFish: how to build LoRa endpoint

Fonte: LinkedIn