sexta-feira, 7 de outubro de 2022

LSM110A - LoRaWAN TEMPERATURA - Compilando APP - OPENCPU - SDK DA STM32

  

Objetivo


Este documento é um guia básico (resumo) sobre instalação do SDK da STM para a módulo LoRa/SigFox LSM110A e a geração da APP via STM32 Cube IDE e assim utilizá-lo como OPENCPU.

O exemplo da STM tem como objetivo transmitir a temperatura (ADC) via LoRaWAN (OTA, AU915, CLASSE A) e se chama LoRaWAN_End_Node

Também é mostrado como configurar para trabalhar em uma faixa de frequências e região.

Requer conhecimento em programação C baseado no STM32. Documento como Base para outras aplicações como OPENCPU.

 
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)

A LSM110A completou a certificação verificada Sigfox Rc2, certificação Rc4 e certificação LoRaWAN versão 1.0.4 classe A, C.

Baixando o SDK da STM

No caso, foi realizado via Prompt de Comando, com o GIT já instalado no Windows, mas você pode baixar em ZIP do repositório e descompactar.


C:\>git clone https://github.com/STMicroelectronics/STM32CubeWL

Compilação do Firmware 

Para gerar o firmware para o LSM1x0A, será necessário que você instale o STM32CubeIDE em sua máquina.


SDK Build

Ferramentas de desenvolvimento de software ST STM32CubeIDE
Após executar o STM32CubeIDE 

Escolhe seu WorkSpace (no caso foi escolhido a pasta onde foi descompactado do SDK com o Git).


Uma tela com Documentação do STM32Cube aparecerá, mas você pode fechá-la.


  • Import o SDK no menu File

  • Selecione "Projects from Folders or Archive" e então Click em Next

  •     Selecione o Folder do Projeto
C:\STM32CubeWL-main\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\LoRaWAN_End_Node\STM32CubeIDE

  •     Click em Finish
  • Após o projeto ser importado, ele é criado e mostrado no Project Explorer (Tab) no canto superior esquerdo


Ajustando para AU915
  • Em RegionAU915.c, a máscara utilizada para compatibilizar com configuração utilizada no Gateway LoRaWAN

    // Initialize channels default mask /* ST_WORKAROUND_BEGIN: Hybrid mode */ #if ( HYBRID_ENABLED == 1 ) RegionNvmGroup2->ChannelsDefaultMask[0] = 0x00FF; RegionNvmGroup2->ChannelsDefaultMask[1] = 0x0000; RegionNvmGroup2->ChannelsDefaultMask[2] = 0x0000; RegionNvmGroup2->ChannelsDefaultMask[3] = 0x0000; RegionNvmGroup2->ChannelsDefaultMask[4] = 0x0001; RegionNvmGroup2->ChannelsDefaultMask[5] = 0x0000; #else RegionNvmGroup2->ChannelsDefaultMask[0] = 0xFF00; RegionNvmGroup2->ChannelsDefaultMask[1] = 0x0000; RegionNvmGroup2->ChannelsDefaultMask[2] = 0x0000; RegionNvmGroup2->ChannelsDefaultMask[3] = 0x0000; RegionNvmGroup2->ChannelsDefaultMask[4] = 0x0000; RegionNvmGroup2->ChannelsDefaultMask[5] = 0x0000;













    Carta de Apresentação
    • Em lora_app.h
    /* LoraWAN application configuration (Mw is configured by lorawan_conf.h) */
    #define ACTIVE_REGION                        LORAMAC_REGION_AU915
    • Em lorawan_conf.h para
    /* Region ------------------------------------*/
    /* the region listed here will be linked in the MW code */
    /* the application (on sys_conf.h) shall just configure one region at the time */
    /*#define REGION_AS923*/
    #define REGION_AU915
    /*#define REGION_CN470*/
    /*#define REGION_CN779*/
    /*#define REGION_EU433*/
    /*#define REGION_EU868*/
    /*#define REGION_KR920*/
    /*#define REGION_IN865*/
    /*#define REGION_US915*/
    /*#define REGION_RU864*/

    • Em se-identity.h 

    ****************************************************************************** ****************************************************************************** ****************************************************************************** */ /*! * When set to 1 DevEui is LORAWAN_DEVICE_EUI * When set to 0 DevEui is automatically set with a value provided by MCU platform */ #define STATIC_DEVICE_EUI 1 /*! * end-device IEEE EUI (big endian) */ #define LORAWAN_DEVICE_EUI { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } /*! * App/Join server IEEE EUI (big endian) */ #define LORAWAN_JOIN_EUI { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } /*! * When set to 1 DevAddr is LORAWAN_DEVICE_ADDRESS * When set to 0 DevAddr is automatically set with a value provided by a pseudo * random generator seeded with a value provided by the MCU platform */ #define STATIC_DEVICE_ADDRESS 1 /*! * Device address on the network (big endian) */ #define LORAWAN_DEVICE_ADDRESS ( uint32_t )0x01E0002A /*! * Application root key */ #define LORAWAN_APP_KEY 97,4A,BB,55,8A,25,01,94,A6,CB,C2,16,E2,AB,2E,5B /*! * Network root key */ #define LORAWAN_NWK_KEY 97,4A,BB,55,8A,25,01,94,A6,CB,C2,16,E2,AB,2E,5B /*! * Forwarding Network session key */ #define LORAWAN_NWK_S_KEY 2B,7E,15,16,28,AE,D2,A6,AB,F7,15,88,09,CF,4F,3C /*! * Application session key */ #define LORAWAN_APP_S_KEY 2B,7E,15,16,28,AE,D2,A6,AB,F7,15,88,09,CF,4F,3C







    Compilando o SDK

    Altere para Release o projeto


    Habilite gerar o HEX antes do Build All


    arm-none-eabi-objcopy -O ihex ${ProjName}.elf ${ProjName}.hex


    Execute Build All no menu Project


    Após fazer o Build All,um HEX é criado no folder Released


        Fazendo o UPLOAD do Firmware HEX Gerado

        Será necessário que você instale em sua máquina o STM32 CUBE Programmer
        
        Conectando S-TLINK V2 no LSM110A Starter KIT, via SWD
        

        Conecte o ST-LINK V2 na USB (talvez tenhas tenha que atualizar o Firmware) e execute o STM32 CUBE Programmer



        Enquanto segurando o botão Reset do LSM110A Starter KIT, pressione Connect no STM32 CUBE Programmer e libere o botão de Reset.
        

        
        Carregue agora o APP clicando em Open File

    C:\STM32CubeWL-main\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\LoRaWAN_End_Node\STM32CubeIDE\Release\LoRaWAN_End_Node.hex

    Address: 0x08000000


        
        Click então em Start Programming


        Conecte o LSM110A Starter KIT na USB do computador e abra um emulador de terminal na COMM que foi criada (115200,N,8,1) e veja o que deve aparecer.


    TESTES


    LSM1x0A

    Kit de avaliação para módulo LoRa e Sigfox Wisol Seong JI SJI LSM110A

    Operação em rede pública e privada LoRaWAN  e também ponto a ponto (P2P)

    Opera também em Sigfox

    Alterne entre LoRa e Sigfox por comando AT, não precisa trocar o Firmware!

    Permite embarcar sua aplicação

    Módulo LoRa e Sigfox Wisol Seong JI SJI LSM110A

    Módulo LoRa e Sigfox compacto

    Escolha entre operação LoRa e Sigfox por comando "on the fly", sem precisar trocar firmware !

    LoRa: para operação redes públicas e privadas LoRaWAN bem como ponto a ponto (P2P)
    Sigfox: zonas RCZ2 e RCZ4 (inclui Brasil)

    Caracteristicas:

    - Permite embarcar a aplicação
    - Dimensão: 14x15x2,8mm
    - Frequência: RCZ2 Tx 902,2MHz  Rx 905,2MHz
    - Potência de saida: configurável até +22dBm
    - Sensibilidade:  -129dBm@LoRa(BW=500KHz, SF=12)
                      -124dBm@Sigfox(0.6Kbps)
    - Tensão de operação: 1,8 - 3,6Vdc
    - Interface UART 9600 8N1
    - Baixo consumo
    - Na operação P2P não necessita de gateway LoRaWAN

    Aplicações:
    - Medição individualizada de água, energia, gás
    - Automação comercial, industrial residencial;
    - Rede de sensores;
    - Sistemas de alarme e segurança;
    - Estações meteorológicas;
    - Automação agrícola.
     

    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