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.
Planos acessíveis
OTAA
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
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
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.
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
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.
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-BLOXImplementa 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)
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
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.
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
Nenhum comentário:
Postar um comentário