Plataformas de desenvolvimento baseadas em LoRa

placas LoRa

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 residencial), Wi-Fi e BLE 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 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). Anteriormente, no Embarcados, vimos o excelente artigo do Pablo Melo sobre uma introdução às LPWANs e o artigo de Vidal Pereira sobre a tecnologia LoRa.

 

Este é o meu primeiro artigo sobre a tecnologia LoRa. Porém, diferentemente dos textos anteriores, pretendo apresentar diferentes plataformas de desenvolvimento (de baixo custo) que usam a tecnologia LoRa. Em artigos subsequentes, espero mostrar como construir seu próprio endpoint (nó) LoRa e gateway de baixo custo para implementação de rede LoRaWAN.

 

 

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, 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).

 

Plataformas baseadas em LoRa - Transceiver LoRa RFM95W
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.

 

Plataformas baseadas em LoRa - Pinout do RFM95W
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

 

Placa 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

 

Placa 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

 

Placa 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)

 

RN2903 da Microchip
Figura 6 - RN2903 da Microchip

 

Espressif ESP32: Lopy (utiliza o SX1272)

 

LoPy da Pycom
Figura 7 - LoPy da Pycom

 

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 Shield

 

LoRa Dragino shield
Figura 8 - LoRa Dragino shield

 

Adafruit LoRa breakout

 

Adafruit LoRa breakout board
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.

 

Conector para encaixe do RFM95W em protoboard
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.

 

Feather32u4 LoRa com Arduino IDE
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.

 

Circuito standalone para medir consumo de corrente
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 projetos utilizando 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.

 

Plataformas de desenvolvimento baseadas em LoRa
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.

 

Teste de alcance de conexão P2P LoRa
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.

 

 

 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 a lista 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.

 

The Things UNO da TTN
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.

 

Gateway LoRaWAN da TTN
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 gateways do 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.

 

Para os curiosos, segue um vídeo introdutório simples de algumas das plataformas citadas no artigo.

 

 

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

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).

28
Deixe um comentário

avatar
 
13 Comment threads
15 Thread replies
7 Followers
 
Most reacted comment
Hottest comment thread
16 Comment authors
RogérioJonas RossatoEronides Da Silva NetoHenrique Pereira RosaJoão D'Amorim Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Rogério
Visitante
Rogério

Eronides, parabéns pelo ótimo artigo.
Você pode tirar algumas dúvidas sobre Encaminhadores de pacotes do gateway?

Jonas Rossato
Visitante
Jonas Rossato

Olá!
Eronides parabéns pelo post. Eu estou realizando um Trabalho de Conclusão de Curso sobre a implantação de uma rede Lora e gostaria de saber quais os equipamentos como módulos ou gateways que já estão homologados pela Anatel.
Obrigado!!!

Henrique Pereira Rosa
Membro

Eonides, Parabéns pelo post.
Estive pesquisando e fiquei com dúvidas em relação à certificação. Mesmo para aplicações com baixa potência de modo diminiur o alcance como em até memso aplicações indoor é necessário realizar a certificação? Existe alguma alternativa medium range sem essa necessidade?
Obrigado!

Eronides Da Silva Neto
Visitante
eronides neto

A certificacao torna-se necessaria para qualquer produta que possua comunicacao RF, sendo assim qualquer device com um modelo LoRa, Sigfox ou ate mesmo RF precisaria de uma certificacao Anatel.

Alguns modulos LoRa, como o da Microchip e o RF95 ja estao homologados na Anatel.

João D'Amorim
Visitante
João D'Amorim

Parabéns, Eronildes! Excelente artigo. Estou tentando implementar um gateway LoRaWAN usando TTN na UFRPE Você sabe informar se é possível implementar um gateway LoRaWAN pela TTN, utilizando o E32-TTL-100 433Mhz SX1278? Obrigado. PS.: Eu li algumas informações que o TTN ainda não oferece suporte a 433Mhz. Isso é verdade?

Eronides Da Silva Neto
Visitante
eronides neto

Oi Joao, exatamente. Nao possui suport para 433MHz, recomendo voce usar o modulo de 915MHz, por ser o recomendando para o padrao Brasileiro (AU915).

João D'Amorim
Visitante
João D'Amorim

Oi Eronides, posso utilizar essa placa (https://www.filipeflop.com/produto/modulo-rf-wireless-lora-915-mhz-mini/), naquele seu tutorial (https://github.com/eron93br/lorawan/tree/master/rpi-gtw)? Não estou conseguindo achar uma loja que venda a HopeRF RFM95W. Valeu!

jefferson britto
Visitante
jefferson britto

Boa tarde, Eronildes.
Você poderia me passar alguns arquivos sobre LoRa?

Eronides Da Silva Neto
Visitante
eronides neto

Recomendo voce procurar pelo "LoRa Developer Guide" , da Orange no Google!

jefferson britto
Visitante
jefferson britto

Muito obrigado

Andrey
Visitante
Andrey

Eronildes Excelente Artigo, parabéns ! Tenho um projeto que gostaria de desenvolver a partir da tecnologia Lora assim como vc fez no artigo, so que no exemplo acima voce disse que o alcance maximo que vc conseguiu foi de 800m mais ou menos, como faria pra ampliar até os 15km ou menos ? Tem algum meio que possa entrar em contato com voce ?

Jean Paul Dubut
Membro
Jean Paul Dubut

Olá Eronides, muito interessante e bem objetivo o seu artigo. A NORTRONIC está desenvolvendo uma solução LORAWAN baseada no RN 2903 como "end device" e Lopy como "gateway", utilizando a plataforma "Cayenne" para visualização dos resultados. Nossas aplicações envolvem a transmissão de dados GPS, acelerômetro e temperatura.

Renard Prudente
Visitante
Renard Prudente

Eron, pra SigFox também existe essa variedade de modulos/shields?

Roniere Rezende
Visitante
Roniere Rezende

Ótimo artigo Eron! Me deu uma luz em várias coisas que tenho pesquisado. Estou fazendo avaliações de plataformas e de kits de desenvolvimento para que eu possa adquirir. Como posso fazer para conversar com você reservadamente sobre isso?

Luiz Antonio Carvalho
Visitante
Luiz Antonio Carvalho

Olá Eron, excelente artigo, parabéns. Sou desenvolvedor de Software, e agora estou começando com os embarcados(arduino), e estou com um prototipo usando o RFM95, mas a principal dúvida ficou na parte de licença da Anatel:Para eu construir (e se for comercializar) um equipamento que usa o RFM95 (915MHz), preciso de uma licença/homologação da Anatel?