segunda-feira, 11 de dezembro de 2023

LSM110A - Programando com ANNEX BASIC E ENVIANDO DADOS SEM TTN OU CHIRPSTACK

    

O objetivo deste BLOG é demonstrar como é possível utilizar o ANNEX BASIC para programação do WISOL LSM110A. Foi utilizado o Starter Kit LSM110A para o teste. O exemplo enviará dados para o Gateway Dragino via LoRA (ABP, AU915) e os mesmos podem ser encaminhados para o servidor dedicado, dispensando uso do servidor LoRaWAN TTN, CHIRPSTACK ou nem mesmo acesso à Internet.

Será utilizado o STACK da RAKWIRELLES

LSM110A Starter KIT
Módulo

O LSM110A é um módulo de última geração que integra o STMicroelectronics STM32WL. É muito menos consumo atual para o dispositivo IoT para estender a vida útil da bateria. E, também suporta ambas as tecnologias – Sigfox e LoRa – com o próprio módulo LSM110A.

Você pode trocar Sigfox ou LoRa com ele para que você também possa reduzir o custo. É altamente otimizado para solução de IoT (Alto Consumo de Energia, Baixo Custo)

BREAKOUT para testes


Esquema Elétrico - últimas correções





PLACA MONTADA



CONEXÃO COM ST-LINK V2 E UART


BASIC ANNEX RDS

Best  Embedded Basic Interpreter

ESP-NOW, BLE, MQTT...ÓTIMO PARA IoT

Veja o HELP  do BASIC ANNEX RDS

Veja também FORUM


INTRODUÇÃO AO ANNEX BASIC

ANNEX WI-FI RDS é um poderoso interpretador de scripts para o popular módulo WI-FI ESP32 (u-BLOX NINA W106).
O módulo pode ser gerenciado com um IDE WEB dedicado e um conjunto de utilitários AnnexToolKit associado.

O ANNEX WI-FI RDS fornece as seguintes funcionalidades principais:
  • Servidor web assíncrono baseado em Websockets
  • Servidor web muito rápido/servidor de arquivos
  • Apenas uma porta TCP necessária para http e websockets
  • IDE integrado
  • Pode ser programado usando seu navegador web (mesmo com um telefone/tablet)
  • Pontos de interrupção, execução imediata de comandos, exibição de variáveis, passo único.
  • Ajuda sensível ao contexto disponível pressionando a tecla F2
  • Atualização OTA (Over the Air)
  • Poderoso utilitário de faca suíça associado AnnexToolKit
  • Programação de flash simplificada
  • Backup/restauração (de/de arquivos, para/de zip)
FUNCIONALIDADES

Variáveis de dupla precisão de ponto flutuante
Variáveis de string com tamanho ilimitado
Matrizes multidimensionais (pontos flutuantes ou string)
Manipulação de eventos assíncronsos
Manipulação de erros
I/O em todos os pinos disponíveis, incluindo PWM/SERVO
Controladores PID
Contadores de frequência
Entrada ADC analógica
Geração de tons
Suporte para SPI e I2C
Suporte protocolos TCP e UDP para comunicações
Suporte para envio de e-mails usando servidores SSL SMTP
Suporte para comunicações AJAX
Suporte para comunicações ESP-NOW
Suporte para comunicações MQTT
Suporte para transferência de arquivos FTP
Suporte algoritmos IMU Fusion 6 DOF e 9 DOF (Madgwick e Mahony)   
Forte integração com o javascript permitindo trocas entre script Básico e navegador web
Uma paleta completa de funções/comandos 
Mais de 300 Comandos/Funções disponíveis
Suporte para os seguintes módulos/componentes
  • Sensores de temperatura/umidade DHT11, DHT21 ou DHT22
  • Sensor de temperatura DS18B20
  • LCD HD44780 com módulo de interface I2C (1, 2 ou 4 linhas com 16 ou 20 chars por linha)
  • Display LCD baseado no chipset ST7920 com monocromático de 128x64 pixels 
  • Display OLED baseado no chipset SSD1306 ou SH1106 com monocromáticos 128x64 
  • Display TFT baseado em chipset ILI9341 com 320x240 pixels e 16 bits cores
  • Exibição TM1637 de 4 dígitos de 7 segmentos
  • TM1638 8 dígitos 7 segmentos display incluindo 8 leds e 8 botões
  • Exibição max7219 de 8 dígitos de 7 segmentos
  • Módulos de exibição de matriz de ponto MAX7219 8x8
  • Tiras led Neopixel WS2812
  • Tela de matriz de pontos Neopixel WS2812 8x8
  • Módulo PWM/SERVO PCA9685
  • Interface infravermelha com muitos protocolos RC (transmissão e recepção)
  • Módulo RTC (DS1307 ou DS3231)
  • Sensor ultrassônico HC-SR04 para medição de distância
  • Sensor de orientação absoluta BNO055
  • BME280 Sensor combinado de umidade e pressão
  • Proximidade Digital APDS9960, Luz Ambiente, RGB e Sensor de Gestos     

PRIMEIROS PASSOS
  • Descompacte o pacote do Annex WI-Fi Basic para uma pasta de sua escolha.
  • Conecte o dispositivo ESP à porta Com serial do computador.
  • Execute o AnnexToolKit.exe da pasta pai descompactada.
  • Selecione o tipo de módulo, porta de comunicação e velocidade (taxa de transmissão) apropriados.
  • Se o seu dispositivo ESP não for capaz de 'flash automático', inicie-o no modo de flash manualmente (gpio0 a 0v na inicialização).
  • Clique no botão amarelo 'Flash Firmware + Dados' se estiver fazendo um flash pela primeira vez e siga as instruções na tela.
  • Após a conclusão bem-sucedida, o dispositivo será reinicializado e executará o novo firmware.
  • Conecte o wi-fi ao ESP SSID que aparecerá na lista de computadores de SSIDs Wifi disponíveis (leva alguns segundos).
  • Navegue até 192.168.4.1 para abrir a janela Saída padrão e, a seguir, clique com o botão direito do mouse no botão Editor para abri-lo em uma nova guia.
Estes são os primeiros passos para começar:

Faça o download do ANNEX  TOOLKIT para u-BLOX NINA W106 (ESP32), senha: annex


Abra o AnnexToolKit, selecione a Porta Serial, clique em Conectar e verifique o endereço IP mostrado na janela Serial Monitor. No exemplo foi escolhido o botão verde Flash Firmware ESP32 Only


Vendo se o boot ocorreu dentro do esperado

Neste caso, o Endereço é 192.168.1.8 porque foi pré-configurado para se conectar ao meu roteador wi-fi, caso contrário o endereço IP será padrão para 192.168.4.1 

Veja como pegar IP da sua REDE (modo Station)


Procurando e se conectando no ANNEX

Acessando 198.168.4.1 (IP inicial do ANNEX)

Coloque o SSID e SENHA de seu Access Point

Obtendo o IP da sua Rede Local

Uma vez configurado, ele entrará em sua REDE

Abra uma janela do navegador da Web e selecione o endereço IP do módulo. Clique em Editor


Agora você pode simplesmente digitar seu programa e salvá-lo no disco interno.

Podemos começar com um programa muito simples:

Digite print "Hello World" na janela do editor e clique em Save as, nomeie o programa /program/test.bas e clique em Save


Você pode ver na janela Serial Monitor que o arquivo foi salvo


A ajuda sensível ao contexto on-line está disponível para qualquer comando Annex. Isso requer que o computador seja conectado ao dispositivo e à internet ao mesmo tempo. Assim, o computador precisa de 2 interfaces de rede (uma para o dispositivo e outra para internet), ou o dispositivo deve ser configurado para logon ao seu roteador wi-fi para que ele esteja na mesma sub-rede que a conexão com a internet.

Ajuda online é muito fácil de usar, se você quiser ajuda para o comando PRINT, por exemplo, basta colocar o cursor na palavra imprimir na janela de edição e pressionar a tecla F2.

Esta janela pop-up aparecerá:


Agora você pode executar o programa clicando no botão Run

Na janela Serial Monitor você verá o resultado 


Agora você pode se divertir em experimentar qualquer programa usando a mesma lógica!

ESCREVENDO Hello SmartCore no TERMINAL COM A INSTRUÇÃO Print




CÓDIGO EM ANNEX BASIC

WDT = 0 pin.mode 12, output : pin(12) = 0 serial2.mode 115200, 13, 15 onserial2 rec2 pause 1000 gosub RESET_LSM110A gosub boot do gosub Send_Package pause 19500 loop END ' ------------------- boot: pause 20000 printAT "AT+NWM=1" ' enable LoRaWAN printAT "AT+NJM=0" ' ABP printAT "AT+APPSKEY=11111111111111111111111111111111" ' APPSKEY printAT "AT+NWKSKEY=11111111111111111111111111111111" ' NWKSKEY printAT "AT+DEVADDR=11111111" ' DEVADDR printAT "AT+BAND=6" ' AU915 printAT "AT+MASK=0002" ' MASK (regional parameters) printAT "AT+CLASS=A" ' CLASS A printAT "AT+TXP=14" ' TX POWER 14 printAT "AT+ADR=1" ' adaptative data rate printAT "AT+PNM=1" ' private network return ' ------------------- Send_Package: print "Sending Package" printAT "AT+MASK=0002" a$= STR$(rnd(255), "%02x", 1) b$= STR$(rnd(255), "%02x", 1) c$= STR$(rnd(255), "%02x", 1) package$= "AT+SEND=2:" + a$ + b$ + c$ print package$ printAT package$ return ' ------------------- rec2: r$ = serial2.input$ print r$ return ' ------------------- SUB printAT(message$) print2 message$ + chr$(13) + chr$(10) pause 500 END SUB RESET_LSM110A: pin(12) = 1 pause 1 pin(12) = 0 pause 1 return



No Gateway da Dragino, cadastre os parâmetros ABP


Executando


Log - System Log (Dragino)


Mon Dec 11 10:43:48 2023 daemon.info lora_pkt_fwd[1635]: PKT_FWD~ DATA_UNCONF_UP-> {"DevAddr": "11111111", "FCtrl": ["ADR": 1, "ADRACKReq": 0, "ACK": 0, "RFU" : "RFU", "FOptsLen": 1], "FCnt": 2, "FPort": 2, "MIC": "8013DB6E"}
Mon Dec 11 10:43:48 2023 daemon.info lora_pkt_fwd[1635]: RXTX~ {"rxpk":[{"tmst":700687564,"time":"2023-12-11T13:43:48.070726Z","chan":5,"rfch":1,"freq":917.800000,"stat":1,"modu":"LORA","datr":"SF10BW125","codr":"4/5","lsnr":7.8,"rssi":-82,"size":17,"data":"QBERERGBAgACApS5r27bE4A="}]}

Para entender os dados de "data" (BASE64)  acompanhe o vídeo a partir do tempo 07:19


MONTAGEM



DÚVIDAS

suporte@smartcore.com.br

REFERÊNCIAS


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