terça-feira, 7 de setembro de 2021

Wisol LOM204A02 acessando mandando dados para servidor MQTT THINGSTREAM da U-BLOX

 Wisol LOM204A02 mandando dados para servidor MQTT THINGSTREAM da U-BLOX

Beta
O objetivo deste BLOG é demonstrar o básico que se deve saber para configurar uma rede gateway LoRaWAN para acessar o servidor MQTT THINGSTREAM da U-BLOX. No exemplo, utilizamos o breakout LOM204A02 e como gateway um Dragino modelo LG308.

Módulo Sigfox Wisol LOM204A02


Para testes, corroemos e montamos a placa


Adquirimos então os componentes conforme esquema elétrico


Montado ficou assim


Algumas características

Modem LoRa. para operação redes públicas e privadas LoRaWAN bem como ponto a ponto (P2P
Perimtie embarcar a aplicação
Dimensão: 15mm x 18mm x 2.2mm
SAW filter integrado
Potência de saida: +20dBm
Baixo consumo
Pequena 


Muito fácil de utilizar.

Para efetuar a comunicação com ele, foi utilizado o conversor de USB para TTL 3.3V. A gravação é realizada via UART, com os pinos TXD e RXD do conversor ligados no RXD e TXD respectivamente do Breakout (UART5), bem como GND e VCC33. Há um pino de RESET que pode ser ligado no DTR do conversor, caso  seu modelo tenha.



Comunicação

O módulo se baseia nos comandos padrão CLI ou AT (P2P). A Wisol tem um aplicativo muito interessante para testes.

CLI
P2P

ATENÇÃO

Certifique-se que o firmware rodando no KIT LOM204A02 esteja com a opção para executar LoRaWAN. Compile o projeto KEIL da WISOL com a função int main() igual abaixo,

#if 1 int main(void) { Start_Init(); setClass( 0 ); // Set CLASS A mode. JOIN_START(); // Join srart while(1) { CLI_Command_Process(); API_MODE(); } } #endif

O LG308 é um LoRaWAN Pico Gateway de código aberto. Ele permite que você faça a ponte entre a rede sem fio LoRa para uma rede IP via WiFi, Ethernet ou celular 3G/4G através do módulo LTE opcional. O sem fio LoRa permite que os usuários enviem dados e alcancem alcances extremamente longos a baixas taxas de dados.

O LG308 usa forwarder de pacote semtech e totalmente compatível com o protocolo LoRaWAN. Ele inclui um concentrador SX1301 LoRa + 2 x SX1257, que fornecem 10 caminhos de desmodulação paralelo programável.

MQTT

Para os dispositivos de Internet das Coisas (IoT), a conexão com a Internet é um requisito. A conexão com a Internet permite que os dispositivos trabalhem entre si e com serviços de backend. O protocolo de rede subjacente da Internet é o TCP/IP. Desenvolvido com base na pilha TCP/IP, o MQTT (Message Queue Telemetry Transport) tornou-se o padrão para comunicações de IoT.



 É um protocolo de mensagens de publicação/assinatura, extremamente simples e leve, projetado para dispositivos restritos e redes de baixa largura de banda, alta latência ou não confiáveis. Os princípios de design são minimizar a largura de banda da rede e os requisitos de recursos do dispositivo, ao mesmo tempo em que tentam garantir a confiabilidade e algum grau de garantia de entrega. Esses princípios também acabam por tornar o protocolo ideal do emergente mundo "máquina para máquina" (M2M) ou "Internet das Coisas" de dispositivos conectados, e para aplicativos móveis onde a largura de banda e a bateria estão em um prêmio.

Thingstream (DATAFLOW MANAGER)
Conheça ThingStream, servidor MQTT da U-BLOX
Implementa também SSL e SN-MQTT

Ambiente thingstream

Características:
  • o custo do Thingstream como um MQTT Broker é muito menor do que o custo daqueles associados ao Azure e AWS;
  • o gerenciador de fluxo de dados é uma excelente vantagem, dados podem ser tratados no servidor e então encaminhados;
  • permite programação Node.js;
  • a segurança é diferente e muito mais simplificada do que tentar fazer uma troca de certificados com a AWS etc;
  • tem uma conexão segura em vez do dispositivo. Isso realmente simplifica a integração;
  • capacidade de se inscrever em vários tópicos diferentes;
  • nós para acessos para vários serviços da AWS Amazon, Azure IoT, IBM Watson, IFTTT (DashBoard e uma infinidade de outras opções)
  • criação de Coisas (Thing);
  • monitoração de eventos MQTT;
  • alertas quando algo não vai bem.
No modo tradicional, se você quer acessar AWS, AZURE, etc:
  • você deve fazer registro
  • gerar Certificados
  • manter, guardar e proteger seus Certificados
  • despachar cada Certificado um por um para os Devices na produção
  • você precisa manter identidades diferentes por cada um dispositivo e entregá-los com segurança
  • fortes impactos na complexidade na logística, produção tempo, configuração do sistema e custos de manutenção
Com ThingStream, se você quer acessar AWS, AZURE, etc:
  • você deve fazer um registro de CA (certificate authority) (Access ID e Secret Key), exemplo, IAM na AMAZON.
  • quando você cria um Device (Things) no ThingStream, você deve pegar as credenciais (Username, Password, Client ID) (Device Certificate), basicamente muda Client Id e Password para cada Device
  • utilize estas credenciais (Things) (Username, Password e Client ID) no Device (U-BLOX NINA W106) para acessar o ThingStream  via MQTT
  • crie Tópicos (Topics) que devem acessados pelos Devices (U-BLOX NINA W106), ou seja, para fazer Publish ou Subscribe
  • no DATAFLOW manager (Flows), o Nó ThingStream Subscribe deve estar conectado à um Tópico previamente criado para o seu Device (U-BLOX NINA W106), é por ele que começa o disparo para o DATAFLOW manager
  • Dentro do DATAFLOW pode de ter vários Nós ThingStream Subscribe
  • no DATAFLOW manager tenha fácil acesso à AWS, AZURE, etc utilizando Access ID e Secret Key e então solicite os serviços disponíveis (S3, LAMBDA, etc) (No caso da AMAZON)





Planos acessíveis

LoRaWAN MQTT


OTAA

• Vantagem: a rede gera e envia as chaves de criptografia; isto torna mais seguro. Devido ao maior nível de segurança, o OTAA é o método mais utilizado em IoT / LoRaWAN. 

• AppEUI: Este é um identificador de aplicativo exclusivo usado para agrupar objetos. este
endereço, 64 bits, é usado para classificar os dispositivos periféricos por aplicação. Essa configuração pode seja ajustado. 

• DevEUI: Este identificador, configurado de fábrica, torna cada objeto único. Em princípio, esta
configuração não pode ser ajustada. 

• AppKey: esta é uma chave secreta compartilhada entre o dispositivo periférico e a rede. É usado para determinar as chaves da sessão. Essa configuração pode ser ajustada.

Concentre-se na OTAA 

O Servido de Rede é o componente de software encarregado de estabelecer uma conexão com os objetos e gerenciando o núcleo da rede. Durante a conexão OTAA, e supondo que o dispositivo esteja autorizado a conectar-se a rede, a rede troca chaves de criptografia específicas da sessão com o núcleo da rede. O Servidor de Rede então aloca informações específicas para a sessão e as envia para o aparelho periférico:

DevAddr: Endereço lógico (equivalente a um endereço IP) que será usado para todos comunicação subseqüente.

 NetSKey (chave de sessão de rede): chave de criptografia entre o objeto e o operador usado para transmissões e para validar a integridade das mensagens. 

•   AppSKey (chave de sessão do aplicativo): chave de criptografia entre o objeto e operador (através da aplicação) utilizado para as transmissões e para validar a integridade das mensagens


Configurando  um gateway LoRaWAN

LG308 é totalmente compatível com o protocolo LoRaWAN. Ele usa o legado “Semtech Packet forward” para encaminhar os pacotes LoRaWAN ao servidor. A estrutura é a abaixo.

Acompanhe o link abaixo para configurar o Gateway Dragino LG380



Abaixo imagens das configurações básicas utilizadas para o Gateway Dragino LG380






Tópico no THINGSTREAM baseado em



Mandando via ABP pacotes para Gateway Dragino LG380

Network ID opcional


Comando CLI para pegar uma faixa de Frequências configurada no Gateway Dragino LG380

LRW 6D 0FF0 0000 0000 0000 00FF 0000

FreqINFO:


Gateway Channels frequency
---------------------------------------
chan_multSF_0
Lora MAC, 125kHz, all SF, 916.8 MHz
---------------------------------------
chan_multSF_1
Lora MAC, 125kHz, all SF, 917.0 MHz
---------------------------------------
chan_multSF_2
Lora MAC, 125kHz, all SF, 917.2 MHz
---------------------------------------
chan_multSF_3
Lora MAC, 125kHz, all SF, 917.4 MHz
---------------------------------------
chan_multSF_4
Lora MAC, 125kHz, all SF, 917.6 MHz
---------------------------------------
chan_multSF_5
Lora MAC, 125kHz, all SF, 917.8 MHz
---------------------------------------
chan_multSF_6
Lora MAC, 125kHz, all SF, 918.0 MHz
---------------------------------------
chan_multSF_7
Lora MAC, 125kHz, all SF, 918.2 MHz
---------------------------------------
chan_Lora_std
Lora MAC, 500kHz, SF8, 917.5 MHz
---------------------------------------
chan_FSK
disabled

LRW 31 abcdabcd uncnf 1
[2021-09-08 14:02:54 164]:
OK

UNCON_UP
FCnt 6 P 1
SEND
Freq: 916400000 DR:[2021-09-08 14:02:54 179]: 2
[2021-09-08 14:02:55 471]:RX1CH_OPEN
[2021-09-08 14:02:56 560]:RX2CH_OPEN
[2021-09-08 14:02:56 793]:
DONE


Aciona SCRIPT

mosquitto_pub -h mqtt.thingstream.io -p 1883 -q 0 -i device:352fc9a7-3211-4e46-8a9a-a390f2e4ca86 -t device:352fc9a7-3211-4e46-8a9a-a390f2e4ca86/260D5296/data -u XXUPHZWCKHZASRDIOME9 -P XXomeX6qvfBpKY2638AgYn1DqpZJa0lpBCI8yhzw -m ffffffe40000005a616263646162636400



Mais testes





ffffffde00000073616263646162636400 ====> abcdabcd


Foi utilizado também MQTT.FX para testar servidor MQTT





Questões: suporte@smartcore.com.br


FONTES: 


AppNote_LOM20XA_CLI_Command_Interface_for_WAN_20191201_En.pdf



LG308_LoRaWAN_Gateway_User_Manual_v1.4.2.pdf (dragino.com)

Sobre a SMARTCORE

A SmartCore fornece módulos para comunicação wireless, biometria, conectividade, rastreamento e automação.
Nosso portfólio inclui modem 2G/3G/4G/NB-IoT/Cat.M, satelital, módulos WiFi, Bluetooth, GNSS / GPS, Sigfox, LoRa, leitor de cartão, leitor QR code, mecanismo de impressão, mini-board PC, antena, pigtail, LCD, bateria, repetidor GPS e sensores.
Mais detalhes em www.smartcore.com.br

Wisol LOM204A02 acessando TTN V3 - OTAA

Wisol LOM204A02 acessando TTN V3 - OTAA


O objetivo deste BLOG é demonstrar o básico que se deve saber para configurar uma rede gateway LoRaWAN para acessar o serviço TTN V3. No exemplo, utilizarem o KIT LOM204A02 da Wisol, com gateway um Dragino modelo LG308 e servidor TTN.

A Rede de Coisas (TTN) é uma iniciativa iniciada pela sociedade civil holandesa. O objetivo é ter redes LoRaWAN instaladas em todas as cidades do mundo. Ao interconectar essas redes locais, a TTN quer construir uma infra-estrutura mundial para facilitar uma Internet das Coisas (IoT) pública.

A The Things Network (TTN) é o servidor IoT na nuvem utilizado nesse projeto. É um dos servidores gratuitos para LoRaWAN mais utilizados, com mais de 90 mil desenvolvedores, mais de 9 mil gateways de usuários conectados à rede ao redor do mundo e mais de 50 mil aplicações em funcionamento.

A TTN comercializa nós e gateways LoRa e provê treinamento individual e coletivo para empresas e desenvolvedores que desejam utilizar o LoRa. Possui uma comunidade bem ativa nos fóruns, sempre colaborando e ajudando a resolver problemas, além de prover diversos meios de integrar a TTN com a aplicação que se deseja usar. Possui integração nativa com diversas aplicações como: Cayenne (utilizado nesse trabalho), Hypertext Transfer Protocol (HTTP), permitindo ao usuário realizar uplink para um gateway e receber downlink por HTTP, OpenSensors e EVRYTHNG . Caso o usuário queira criar sua própria aplicação, a TTN disponibiliza Application Programming Interface (API) para uso com Message Queuing Telemetry Transport (MQTT) e diversos Software Developer Kits (SDK) para uso com as linguagens Python, Java , Node.Js , NODE-RED e Go

A rede TTN utiliza o protocolo LoRaWAN objetivando uma cobertura em longo alcance para os dispositivos da rede, caracterizando-a assim com uma Wide Area Network (WAN). Devido ao baixo consumo de energia e ao uso da tecnologia LoRa, é chamada de LPWAN (Low Power Wide Area Network). O grande diferencial da TTN é seu estabelecimento como uma rede aberta (open-source) e colaborativa (crowd-sourced), onde qualquer usuário pode contribuir instalando um gateway em sua residência.

Os elementos da TTN são classificados como: 

• Endpoints (nós): Os dispositivos responsáveis pela camada de sensoriamento da rede, o endpoint LoRaWAN. Podem coletar informações através de sensores e também acionar dispositivos/máquinas via atuadores. São configurados através de uma das três classes distintas do protocolo LaRaWAN; 

• Gateways: Elementos responsáveis por concentrar e processar as informações enviadas pelos endpoints. Os gateways em geral estão conectados a internet, seja por WiFi/Ethernet ou 3G/4G em locais remotos. Mesmo que uma mesma rede LoRaWAN tenha diferentes objetivos, baseados em aplicações distintas, os gateways possuem o objetivo comum de fornecer a maior área de cobertura possível; 

• Aplicações: Conectar e interligar os diferentes dispositivos da rede TTN para o fornecimento de informações gerais sobre a coleta de dados dos dispositivos.

ATENÇÃO

Certifique-se que o firmware rodando no KIT LOM204A02 esteja com a opção para executar LoRaWAN. Compile o projeto KEIL da WISOL com a função int main() igual abaixo,

#if 1 int main(void) { Start_Init(); setClass( 0 ); // Set CLASS A mode. JOIN_START(); // Join srart // This function calls not only OTAA but also ABP while(1) { CLI_Command_Process(); // To receive CLI command through serial port(UART) API_MODE(); // Run LoRa protocol. } } #endif

OTAA

• Vantagem: a rede gera e envia as chaves de criptografia; isto torna mais seguro. Devido ao maior nível de segurança, o OTAA é o método mais utilizado em IoT / LoRaWAN. 

• AppEUI: Este é um identificador de aplicativo exclusivo usado para agrupar objetos. este
endereço, 64 bits, é usado para classificar os dispositivos periféricos por aplicação. Essa configuração pode seja ajustado. 

• DevEUI: Este identificador, configurado de fábrica, torna cada objeto único. Em princípio, esta
configuração não pode ser ajustada. 

• AppKey: esta é uma chave secreta compartilhada entre o dispositivo periférico e a rede. É usado para determinar as chaves da sessão. Essa configuração pode ser ajustada.

Concentre-se na OTAA 

O Servido de Rede é o componente de software encarregado de estabelecer uma conexão com os objetos e gerenciando o núcleo da rede. Durante a conexão OTAA, e supondo que o dispositivo esteja autorizado a conectar-se a rede, a rede troca chaves de criptografia específicas da sessão com o núcleo da rede. O Servidor de Rede então aloca informações específicas para a sessão e as envia para o aparelho periférico:

DevAddr: Endereço lógico (equivalente a um endereço IP) que será usado para todos comunicação subseqüente.

 NetSKey (chave de sessão de rede): chave de criptografia entre o objeto e o operador usado para transmissões e para validar a integridade das mensagens. 

•   AppSKey (chave de sessão do aplicativo): chave de criptografia entre o objeto e operador (através da aplicação) utilizado para as transmissões e para validar a integridade das mensagens


Configurando  um gateway LoRaWAN

LG308 é totalmente compatível com o protocolo LoRaWAN. Ele usa o legado “Semtech Packet forward” para encaminhar os pacotes LoRaWAN ao servidor. A estrutura é a abaixo.

Gateway ID é específico para cada Gateway

Configurando V3

Acompanhe o link abaixo

e


Obter uma ID do gateway único.

Cada LG308 tem um ID de porta de entrada única. O ID pode ser encontrada na página LoRaWAN do gateway.


O ID de exemplo gateway é: xxxxxxxxxxxxxx

Cadastre-se uma conta de usuário no servidor TTN




Criar um gateway


Clique no ícone Gateways para abrir a página a seguir:



Configurar LG308 para se conectar ao TTN

Agora você pode configurar o LG308 para deixá-lo se conectar à rede TTN.
Verifique se o seu LG308 tem uma conexão com a internet em primeiro lugar.


Entrada de informação do servidor e ID do gateway

Escolha o correto o endereço do servidor


Depois de fazer as configurações acima, o LG308 deve ser capaz de se conectar ao TTN. Abaixo está o resultado visto de TTN:


Configurar frequência para acessar o Gateway
Depois de fazer as definições acima, o LG308 será capaz de atuar como um gateway LoRaWAN.


Adicionar um dispositivo EndDevice LoRaWan


Esta seção mostra como adicionar um dispositivo EndDevice LoRaWAN à uma rede LoRaWAN e ver os dados de TTN no web site.

Utilizamos o LOM204A02 como um dispositivo de referência - a configuração para outros dispositivos LoRaWAN será semelhante.

Criar uma definição de dispositivos no TTN como exemplo "COLETOR XYY"

Três códigos são necessários para definir o dispositivo em TTN: 

DEV EUI - código de identificação único para um dispositivo em particular. 
APP EUI - código de identificação para um aplicativo definido no TTN. 
APP Key - Chave exclusiva para proteger as comunicações com um dispositivo em particular.

Um conjunto destes códigos são armazenados em cada dispositivo pelo fabricante como os códigos padrão para esse dispositivo particular. Cada dispositivo é fornecido com uma etiqueta com o EUI dispositivo padrão como mostrado abaixo.
Nota: Você pode ser capaz de alterar estes códigos em um dispositivo usando uma instalação de configuração do dispositivo, por exemplo o LOM204A02 utiliza um acesso porta série e uma série de comandos AT. Alterar os códigos podem ser necessárias no caso em que você tem que usar os códigos atribuídos por um servidor WAN Lora.

Para o servidor TTN, você pode usar os códigos estabelecidos no dispositivo como no exemplo a seguir. 

Selecionar Adicionar aplicativo para abrir a tela abaixo.


Selecionar Devices e Register Device


Nota-se que há uma APP EUI já criado pela TTN, mas esta não é a definida no dispositivo. Para adicionar o APP EUI do dispositivo LOM204A02, selecione​ApplicationEUI​ e ApplicationKey​ no aplicativo LoRAWAN_GUI_CUSTOMER (CLI), em seguida, insira o código necessário. Pode ser Hardcoded depois no projeto feito no KEIL C.




Ligar dispositivo LOM204A02 e vai juntar-se automaticamente a rede TTN. 

Depois de ingressar com sucesso, ele vai começar a fazer upload de mensagens parao TTN. 

Note que isso pode levar algum tempo para que os dados do dispositivo para aparecer no visor TTN.






Mais imagens







Dentro do TTN você vai obter o APPLICATION EUI e APPLICATION KEY os quais deve ser cadastrados no módulo LoRa antes de realizar o JOIN, via aplicativo "Lora Wan Gui" ou fazer hardcoded ou via terminal (host) com comandos CLI na UART5.






Questões: suporte@smartcore.com.br


FONTES: 


AppNote_LOM20XA_CLI_Command_Interface_for_WAN_20191201_En.pdf





LG308_LoRaWAN_Gateway_User_Manual_v1.4.2.pdf (dragino.com)

Sobre a SMARTCORE

A SmartCore fornece módulos para comunicação wireless, biometria, conectividade, rastreamento e automação.
Nosso portfólio inclui modem 2G/3G/4G/NB-IoT/Cat.M, satelital, módulos WiFi, Bluetooth, GNSS / GPS, Sigfox, LoRa, leitor de cartão, leitor QR code, mecanismo de impressão, mini-board PC, antena, pigtail, LCD, bateria, repetidor GPS e sensores.
Mais detalhes em www.smartcore.com.br