segunda-feira, 17 de outubro de 2022

WISOL LOM204 - NOVA OPÇÃO DE COMANDOS AT



The most complete LoRaWAN AT document that i have seen
https://github.com/hardwario/lora-modem-abz
Yes, it's open source and free.

O objetivo deste BLOG é desenvolver um modem LoRaWAN de código aberto para o módulo wireless Type ABZ. O firmware pode ser usado em todas as variantes do Tipo ABZ com um microcontrolador aberto (reprogramável pelo usuário).


Será realizado JOIN e enviado hello.

Principais características
  • Suporte para LoRaWAN 1.0.4, LoRaWAN 1.1 e parâmetros regionais RP2-1.0.3
  • Baseado na versão mais recente (não lançada 4.7.0) do LoRaMac-node
  • Suporte para várias regiões configuráveis ​​em tempo de execução
  • Todos os dados persistentes do MAC LoRaWAN armazenados no NVM (EEPROM)

Foi utilizado o arm-none-eabi para compilar a APP dos comandos AT.

O modem implementa dois conjuntos de comandos AT. Os comandos que começam com o prefixo AT+ são projetados para serem compatíveis com os comandos AT implementados pelo tipo ABZ-93. Os comandos que começam com o prefixo AT$ são comandos AT de extensão personalizada projetados especificamente para este firmware. Os comandos de extensão geralmente fornecem funcionalidade adicional não encontrada no conjunto AT+.

TTN
The Thing Network
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.

ChirpStack é um Servidor de Rede LoRaWAN de código aberto que pode ser usado para configurar redes LoRaWAN. O ChirpStack fornece uma interface web para o gerenciamento de gateways, dispositivos e inquilinos, bem como para configurar integrações de dados com os principais provedores de nuvem, bancos de dados e serviços comumente usados para lidar com dados de dispositivos. O ChirpStack fornece uma API baseada em gRPC que pode ser usada para integrar ou estender o ChirpStack.

Testado no STARTER KIT LOM204...


...bem como em uma placa de testes

IMPORTANTE: Opção NÃO OFICIAL da WISOL, indicamos uso do KEIL C

Baixando e Compilando APP

Você precisará da ferramenta gcc incorporada para ARM (arm-none-eabi), git e make para compilar o firmware a partir do código-fonte. Primeiro, clone o repositório e inicialize os submódulos do git:
git clone https://github.com/hardwario/lora-modem-abz
cd lora-modem-abz
git submodule update --init
"Bem, você precisa ser capaz de usar o Github da VM onde você está construindo. Se não for esse o caso, baixe o tarball de origem da versão mais recente e tente compilá-lo. O tarball de origem não requer git/Github funcional ou o zip no Windows neste link
Edite (para ser compatível com LOM204)

src/main.c

//LOM204 SX1276.DIO0.port = GPIOA; SX1276.DIO0.pinIndex = GPIO_PIN_12; SX1276.DIO1.port = GPIOB; SX1276.DIO1.pinIndex = GPIO_PIN_2; SX1276.DIO2.port = GPIOB; SX1276.DIO2.pinIndex = GPIO_PIN_5; SX1276.DIO3.port = GPIOB; SX1276.DIO3.pinIndex = GPIO_PIN_0; //SX1276.DIO4.port = GPIOA; //SX1276.DIO4.pinIndex = GPIO_PIN_5; //SX1276.DIO5.port = GPIOA; //SX1276.DIO5.pinIndex = GPIO_PIN_4; SX1276.Reset.port = GPIOA; SX1276.Reset.pinIndex = GPIO_PIN_8;














src/spi.c

//LOM204 spi->Nss.port = GPIOA; spi->Nss.pinIndex = GPIO_PIN_4; spi->miso.port = GPIOA; spi->miso.pinIndex = GPIO_PIN_6; spi->mosi.port = GPIOA; spi->mosi.pinIndex = GPIO_PIN_7; spi->sclk.port = GPIOA; spi->sclk.pinIndex = GPIO_PIN_5;










Makefile

# Activate the following region if no region has been selected by the # application. DEFAULT_ACTIVE_REGION ?= AU915




/src/sx1276-board.c



#define TCXO_CONTROL_ENABLED 1 #define TCXO_VCC_PORT GPIOB #define TCXO_VCC_PIN GPIO_PIN_1 #define ANT_SWITCH_PORT_RX GPIOA //CRF1 #define ANT_SWITCH_PIN_RX GPIO_PIN_15 #define ANT_SWITCH_PORT_TX_BOOST GPIOC //CRF3 #define ANT_SWITCH_PIN_TX_BOOST GPIO_PIN_1 #define ANT_SWITCH_PORT_TX_RFO GPIOC //CRF2 #define ANT_SWITCH_PIN_TX_RFO GPIO_PIN_2










RegionAU915.c (acelerar o JOIN)

// Initialize channels default mask RegionNvmGroup2->ChannelsDefaultMask[0] = 0x00FF; RegionNvmGroup2->ChannelsDefaultMask[1] = 0x0000; RegionNvmGroup2->ChannelsDefaultMask[2] = 0x0000; RegionNvmGroup2->ChannelsDefaultMask[3] = 0x0000; RegionNvmGroup2->ChannelsDefaultMask[4] = 0x0000; RegionNvmGroup2->ChannelsDefaultMask[5] = 0x0000;






Se você deseja customizar o build, edite as variáveis ​​no início do Makefile. Em seguida, build o firmware no modo de release:
make release


Se você deseja fazer build uma versão de desenvolvimento com log e depuração habilitados, execute make debug. A execução de make sem nenhum argumento cria a versão de desenvolvimento por padrão. Observe que as compilações de desenvolvimento têm maior consumo de energia ociosa do que as compilações de release.

Na pasta /home/ubuntu/lora-modem-abz-1.2.5/out/release encontra-se o executável gerado

Abra o STM32 CUBE Programmer e faça a gravação.


Veja a execução (Tera Term)

TXD do PC no RX do LOM204 (PA3) e RXD do PC no TX do LOM204 (PA2)
Baud 19200,N,8,1 (init_gpio(void))

Lista de comandos AT


Erros

CódigoSignificado
-1Unknown command
-2Invalid number of parameters
-3Invalid parameter value(s)
-4Factory reset failed
-5Device has not joined LoRaWAN yet
-6Device has already joined LoRaWAN
-7Resource unavailable: LoRa MAC is transmitting
-8New firmware version must be different
-9Missing firmware information
-10Flash read/write error
-11Firmware update failed
-12Payload is too long
-13Only supported in ABP activation mode
-14Only supported in OTAA activation mode
-15RF band is not supported
-16Power value too high
-17Not supported in the current band
-18Cannot transmit due to duty cycling
-19Channel unavailable due to LBT or error
-20Too many link check requests

Eventos 

EventoSignificado
+EVENT=0,0Modem rebooted
+EVENT=0,1Factory reset
+EVENT=0,2Modem switched to bootloader
+EVENT=0,3Modem halted
+EVENT=1,0Join failed
+EVENT=1,1Join succeeded
+EVENT=2,0Server did not respond
+EVENT=2,1Received response from server
+EVENT=2,2Uplink retransmitted
+EVENT=9,0Continuous wave transmission ended
+EVENT=9,1Continuous modulated FSK transmission ended
Mais detalhes em


Fazendo JOIN

AT+FACNEW
AT+BAND=1
AT+MODE=1
AT+DEVEUI=0080eXX50XXfd80a
AT+APPKEY=FF9F138B40180XA45D6846E0A0146954
AT+APPEUI=0000000000000099
AT+CHMASK=00FF00000000000000
AT+JOIN
AT+PUTX 1,5
hello


AT+JOIN

Sucesso



Enviando hello (BETA)

AT+PCTX 1,5\rhello






Downlink


Download



Sobre a máscara de bandas

A configuração da máscara de canal é armazenada na EEPROM. Ele volta ao valor padrão quando você muda de banda. 


OPENCPU

Basta conectar o sensor a um GPIO, acessá-lo através do STM32 e invocar as funções do nó LoRaMac diretamente, usando as funções em src/cmd.c e src/lrw.c como exemplo.

MINICOM

sudo apt-get install minicom

minicom -s




Aplicativo para testes (Python)


O modem se comunica com o host sobre uma interface de comando AT. A biblioteca Python abstrai a interface de comando AT e fornece uma API mais fácil de usar. A biblioteca fornece um módulo Python que pode ser incorporado em um aplicativo Python maior e uma ferramenta de linha de comando chamada lora que pode ser usada para gerenciar o modem do terminal.

pip install --upgrade lora-modem-abz


/ttyS4 porque está na COM4 no WINDOWS


ubuntu@DESKTOP-GRCNLV8:~/lora-modem-abz-1.2.5/python$ lora --help Usage: lora [OPTIONS] COMMAND [ARGS]... Command line interface to the Murata TypeABZ LoRaWAN modem. This tool provides a number of commands for managing Murata TypeABZ LoRaWAN modems. Most of the available commands require the open firmware and cannot be used with the original Murata Modem firmware. The following command groups are available (invoke each command with --help to obtain more information): * Obtain modem information: device, network, state * Configure the modem: get, set, reset, reboot * Manage security keys: keys, keygen * Perform network operations: join, link, trx

Configure the modem's serial port filename with the command line option -p or via the environment variable PORT. The tool tries to auto-detect the modem's baud rate unless you explicitly configure a baud rate with -b. If you wish to reset the modem before use, add the command line option -r. The tool produces human-readable output by default. You can switch to machine-readable output with the command line option -m. The command line option -v activates a debugging mode which additionally shows all AT commands sent to the modem and all responses received from the modem. Use the command line option -k to also include LoRaWAN security keys in the output of the commands device and network. They keys are ommited from the output by default for security reasons. Options: -p, --port TEXT Pathname to the serial port -b, --baudrate INTEGER Serial port baud rate [default: detect] -t, --twr-sdk Communicate with modem through twr-sdk. -r, --reset Reset the modem before issuing any AT commands. -v, --verbose Show all AT communication. -g, --guard INTEGER AT command guard interval [s] -m, --machine Produce machine-readable output. -k, --show-keys Show security keys. --help Show this message and exit. Commands: channels Manage RF channels. device Show basic modem information. get Retrieve modem setting(s). join Perform a LoRaWAN OTAA Join. keygen Generate new random LoRaWAN security keys. keys Show current LoRaWAN security keys. link Check the radio link. multicast Manage multicast addresses and security keys. network Show current network activation parameters. reboot Restart the modem. reset Reset the modem to factory defaults. set Update modem setting(s). state Show the current modem state. trx Transmit and receive LoRaWAN messages. ubuntu@DESKTOP-GRCNLV8:~/lora-modem-abz-1.2.5/python$



























































Questões: Fórum


Fontes: 


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 

Nenhum comentário:

Postar um comentário