LoRaWAN - Conceitos Básicos




Introdução

Desde que o conceito IoT ("Internet of Things") se popularizou, os desenvolvedores da área trabalharam dia e noite para criar um protocolo de comunicação que suprisse algumas necessidades do mercado. As duas principais necessidades do mercado eram o baixo consumo de energia e o longo alcance de conectividade. A princípio isso parecia impossível, já que são coisas que parecem inversamente proporcionais.

Entretanto, em meados de 2015, a organização LoRA Alliance lançou o protocolo de comunicação LoRaWAN ("Long Range Wide Area Network"), baseado na tecnologia LoRa da Semtech, que foi capaz de alcançar um longo alcance com um baixíssimo consumo de energia. Neste tutorial iremos aprender um pouco sobre este protocolo de comunicação tão recente, suas classes, seus métodos de comunicação, seus concorrentes e como ele funciona.

LoRa Vs. LoRaWAN

logo-lorawan
LoRaWAN Logo
Fonte: LoRa Alliance

LoRa é um protocolo de comunicação de baixo consumo de energia e longo alcance para dispositivos de radiofrequência. A sua modulação é excelente para comunicações P2P ("Point to Point", Ponto a Ponto), porém estes dispositivos são capazes de usar apenas a camada de base das aplicações.

LoRaWAN, por sua vez, é um protocolo baseado em LoRa, porém que foi sofisticado para acessar as camadas mais altas da aplicação, como demonstrado na imagem abaixo, e integrar a comunicação dos dispositivos com a internet. Outro fator importante é que os dispositivos LoRaWAN não são apenas módulos de radiofrequência, eles são compostos de microcontroladores dedicados e outros componentes, responsáveis por conectar o dispositivo à rede e garantir a segurança da conexão.

camadas-aplicacao
Camadas de uma "Aplicação"
Fonte: Semtech

Estrutura do Protocolo

Para que uma mensagem enviada de um dispositivo LoRaWAN chegue à plataforma final, ela deve passar por alguns pontos, como na imagem a seguir.

estrutura-comunicacao-protocolo
Estrutura de Comunicação do Protocolo
Fonte: Profissionais TI

Os "End Nodes", ou "End Devices", representam os dispositivos LoRaWAN remotos, como o LoRaWAN Bee. Estes dispositivos enviam e recebem informações dos "Gateways", ou "Concentrators" como também são conhecidos, que representam basicamente as antenas de conexão, como as da ATC ("American Tower Corporation"), por exemplo. Da antena de conexão, as informações trocadas com os dispositivos são enviadas pela internet para o "Network Server", que é responsável por encaminhar corretamente as mensagens de um certo dispositivo para sua respectiva aplicação final, ou no sentido inverso. Por fim, as informações chegam ao "Application Server", que representa a plataforma onde são finalmente exibidas, ou de onde partem, as informações da comunicação, como a PROIoT, por exemplo.

Classes do Protocolo

Note, na imagem da seção de comparação entre os protocolos LoRa e LoRaWAN, que o protocolo LoRaWAN é subdividido em três categorias: a classe "A", a classe "B" e a classe "C". Estas classes representam três tipos de dispositivos com padrões de requisições e envio de dados distintos.

A classe "A" representa uma sigla de "All" (Todos/Tudo), pois todas as outras classes deste protocolo ("B" e "C") são capazes de se comportar como esta classe. Os dispositivos de classe "A" apresentam o menor consumo de energia, pois embora eles possam enviar dados a qualquer momento, eles só aguardam por uma resposta do servidor durante um breve período determinado. Nesta classe, o dispositivo cria duas janelas de recepção de resposta do servidor após o envio da mensagem, e ele pode receber esta resposta na primeira janela (Rx1), na segunda janela (Rx2), ou não receber resposta em nenhuma delas, como nas imagens a seguir. No entanto, o dispositivo nunca receberá a mesma resposta nas duas janelas.

mensagem-recebida-primeira-janela
Mensagem Recebida na Primeira Janela
Fonte: LoRa Developers
mensagem-recebida-segundaa-janela
Mensagem Recebida na Segunda Janela
Fonte: LoRa Developers
mensagem-nao-recebida
Mensagem Não Recebida
Fonte: LoRa Developers

Já a classe "B" representa a sigla de "Beacon" (Farol/Sinaleiro), pois os envios são "guiados". Nesta classe, o dispositivo recebe sinais ("beacon") de tempos em tempos para sincronizar o seu relógio interno com o do "gateway". Depois desta sincronização, o dispositivo abre janelas de recepção de mensagens do servidor com uma frequência predefinida, como na imagem abaixo.

exemplo-comportamento-classe-b
Exemplo de Comportamento da Classe B
Fonte: Mobilefish.com

A classe "C", por sua vez, representa a sigla de "Continuous" (Contínuo), que, como o próprio nome já diz, mantém o dispositivo ouvindo continuamente por uma resposta do servidor, como na próxima imagem. Entretanto, devido ao seu método de funcionamento, este tipo de dispositivo é o que consome mais energia entre todas as classes.

exemplo-comportamento-classe-c
Exemplo de Comportamento da Classe C
Fonte: Mobilefish.com

Métodos de Conexão

O protocolo LoRaWAN possui dois métodos de conexão, sendo eles o "OTAA" ("Over The Air Activation") e o "ABP" ("Activation By Personalization"). Estes dois métodos pode ser utilizados independentemente da classe do dispositivo e cada um exige uma configuração distinta.

O método "OTAA" utiliza apenas três dados do dispositivo para conectá-lo à rede, sendo eles a "Application EUI", sua respectiva "Application Key" e a "Device EUI". Com essas informações, o dispositivo envia uma requisição de conexão ao servidor juntamente com um "Device Nonce" (um contador para garantir que não ocorram conexões duplicadas), e, caso os dados estejam corretos e válidos, o servidor retorna a requisição com a confirmação e com alguns dados sobre a rede, que são salvos no dispositivo, como na imagem a seguir.

exemplo-requisicao-resposta-conexao-otaa
Exemplo de Requisição e Resposta de Conexão OTAA
Fonte: Research Gate

A grande vantagem deste tipo de conexão é que as chaves de sessão ("Network Session Key" e "Application Session Key") são geradas somente quando requisitadas, o que aumenta a segurança da conectividade. Entretanto, como o "Device EUI" deve ser único na rede, é necessário configurar cada dispositivo com uma identificação única no mundo. Outro ponto negativo é que o dispositivo deve ser capaz de gerar as chaves de segurança dinamicamente.

O método "ABP", por sua vez, requer apenas que sua sessão seja configurada, através de um "Device Address", uma "Application Session Key" e uma "Network Session Key", que são configurados diretamente no dispositivo. Estes mesmos dados devem ser configurados no servidor, como na próxima imagem.

exemplo-conexao-abp
Exemplo de Conexão ABP
Fonte: Newie Ventures

Nesta configuração, os dispositivos não precisam da autorização prévia da rede, logo não dependem da capacidade de gerar as chaves de segurança dinamicamente. Entretanto, este método acaba sendo menos seguro que o "OTAA", já que as chaves de segurança estão armazenados no dispositivo. Outro ponto importante é que, caso o dispositivo precise mudar de rede, tanto ele quanto a rede devem ser reconfigurados com novos parâmetros de conexão.

LoRaWAN Vs. Sigfox Vs. NB-IoT

A Sigfox e a NB-IoT são os dois protocolos de comunicação que disputam espaço no mercado com o LoRaWAN. Entretanto, embora tenham a mesma área de atuação, são protocolos bem distintos, como é possível observar na tabela abaixo.

LoRaWAN SigFox NB-IoT
Frequência Faixas ISM não licenciadas
863 - 870 MHz na Europa
902 - 928 MHz na América do Norte
915 - 928 MHz na Austrália
(padrão seguido pelo Brasil)
Faixas ISM não licenciadas
863 - 870 MHz na Europa
902 -928 MHz na América do Norte
(padrão seguido pelo Brasil)
915 - 928 MHz na Austrália
Faixas LTE licenciadas
Velocidade Máxima
de Comunicação
50 kbps 100 bps 200 kbps
Quantidade Máxima
de Mensagens por Dia
Ilimitado 140 Uplinks e 4 Downlinks Ilimitado
Tamanho Máximo de
Mensagem
243 bytes para Uplinks e Downlinks 12 bytes para Uplinks e
8 bytes para Downlinks
1600 bytes para Uplinks e Downlinks
Alcance 5 km em ambiente Urbano e
20 km em ambiente Rural
10 km em ambiente Urbano e
40 km em ambiente Rural
1 km em ambiente Urbano e
10 km em ambiente Rural
Duração da Bateria Alta Alta Média
Custo de Implementação Baixo Médio Alto
Custo por Dispositivos Médio Baixo Alto

Como existem diversos protocolos de comunicação disponíveis no mercado, é sempre recomendado que você avalie todas as alternativas antes de escolher a melhor opção para o desenvolvimento do seu projeto IoT. Um detalhe importante é que, embora a tabela informe uma quantidade ilimitada de mensagens e um custo de implementação baixo para o protocolo LoRaWAN, isso poderá variar de acordo com a rede que o seu projeto precisar.

Para escolher o protocolo ideal para a sua aplicação, é necessário levar em consideração alguns fatores que serão utilizados na prática pelo seu dispositivo. Os principais deles são o alcance que o dispositivo deve ter e a disponibilidade da rede do protocolo no local onde o dispositivo será instalado. Além disso, é necessário levar em consideração as mensagens que serão enviadas para a plataforma final. Neste ponto temos que nos atentar à periodicidade do envio das mensagens, para não esgotar o limite diário ou o limite de mensagens de seu plano antes da renovação, assim como o tamanho que as mensagens terão para enviar e receber todas as informações necessárias.

De modo geral, o protocolo NB-IoT é utilizado para aplicações que exigem um monitoramento constante do dispositivo, com uma alta velocidade e qualidade no serviço, porém onde o consumo de energia não é tão importante, como para o monitoramento de localização de cargas, por exemplo. Já para aplicações que não exigem um envio de informações constante, porém que necessitam de um baixo consumo de energia, como em estações meteorológicas, por exemplo, o uso do LoRaWAN ou do Sigfox tende a ser uma opção melhor. De toda forma, vale lembrar que estes são apenas alguns exemplos de aplicações, logo todos os parâmetros do seu projeto e do protocolo desejado devem ser levados em conta para o desenvolvimento do sistema final.

O gráfico a seguir é uma ótima referência para comparar os três protocolos em seus principais pontos, sendo eles o custo benefício ("Cost Efficiency"), desenvolvimento ("Deployment"), cobertura ("Coverage"), alcance ("Range"), escalabilidade ("Scalability"), desempenho de latência ("Latency Performance"), tamanho dos dados transmitidos ("Playload Length"), qualidade de serviço ("Quality of Service" - "QoS") e duração da bateria ("Battery Life").

comparacao-geral-protocolos
Comparação Geral dos Protocolos
Fonte: Science Direct

Conclusão

Neste tutorial damos início ao nosso aprendizado sobre protocolos de comunicação, aprendendo sobre os conceitos básicos do tão recente e tão famoso LoRaWAN. Também pudemos comparar suas classes, métodos de conexão e principais concorrentes, assim pudemos conhecer mais opções de conectividade para criação de dispositivos IoT.

Avatar