LoRaWAN - Conceitos Básicos
This tutorial is not available in English
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
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.
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.
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.
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.
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.
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.
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.
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").
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.