segunda-feira, 14 de dezembro de 2020

UTILIZANDO LOM204A02 PARA TRANSMITIR UM TEXTO "1234567890" A CADA MINUTO.

100% API MODE


O objetivo deste BLOG é demonstrar como é possível utilizar o módulo LOM204A02 para enviar uma mensagem "1234567890" a cada minuto,  neste intervalo o mesmo entra em baixo consumo. Foi utilizado o starter kit LoRa da WISOL com o LOM204A02 com oscilador a CRISTAL e KEIL já instalado (ver carta de apresentação).



 
Descompacte
 
LOM204A_API_Lib_1.01_version_AU915_LA915A_P2P_190701.ZIP e então descompacte
LOM204A02_Lib101_190604_API_Release.ZIP

Na pasta
 

 Click no exemplo LOM204A_LA915A_CRYSTAL_WAN (BAT)
 

Substitua #if 1 por #if 0


Ficará em tom claro


Altere, aqui de #if 0 para #if 1

Então reescreva o código para 

int main(void) { uint8_t *ApplicationEUI="xxxxxxxxxxxxxxxx"; uint8_t *Applicationkey="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; Start_Init(); setClass( 0 ); // Set CLASS A mode. setOtaaAppEUI(ApplicationEUI,16); setOtaaPseudoAppKey(Applicationkey,32); JOIN_START(); // Join start // This function calls not only OTAA but also ABP while(1) { CLI_Command_Process(); // To receive CLI command through serial port(UART) data_Tx(1,0,1,10,"1234567890"); // ASCII , No Confirmed up, Fport : 1 , datalength : 10, data: 1234567890 API_MODE(); // Run LoRa protocol. Wakeup_Timer(&TxUser,User_fn,60000,0U); // It wakes up every 60 seconds and runs User_fn. Enable_enter_stop_mode(); // Setting condition for entry into sleep mode. Device_State_Sleep_Fn(); // GPIO/TImer event check. Enter sleep mode at CLASS A } }
 
uint8_t *ApplicationEUI="xxxxxxxxxxxxxxxx";
uint8_t
*
Applicationkey="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; 
 
Devem ser obtidos do seu Gateway
 

 Compile o Software
 
 
Transfira para o LOM204A02
 

 Ligue em USB SERIAL e reset, abra um terminal BURRO (19200,N,8,1)

 
A cada 1 minuto será enviado um pacote para o Gateway e mesmo enviará para o Server (LoRaWAN)
 

 Veja o texto chegando no gateway (server)
 

 
Base64
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 portifó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

 

quinta-feira, 7 de novembro de 2019

LOM204A CAR TRACKER


UTILIZANDO LOM204A02 COMO RASTREADOR VEICULAR


O objetivo deste BLOG é demonstrar como é possível utilizar o módulo LOM204A02 junto com um "GPS", como um rastreador veicular. Foi utilizado o starter kit LoRa da WISOL e GPS foi simulado via UART. O exemplo em C dá uma idéia geral, não esta livre de BUGs.



O primeiro passo então foi no KEIL C, com a ajuda do STM32 CUBE, a programação a UART para recepção de dados a velocidade de 4800,N,8,1 conforme função abaixo.

//UART1  é a mesma do BOOTLOADER

UART_HandleTypeDef huart1; static void MX_USART1_UART_Init(void); static void MX_USART1_UART_Init(void) { /* USER CODE BEGIN USART1_Init 0 */ /* USER CODE END USART1_Init 0 */ /* USER CODE BEGIN USART1_Init 1 */ /* USER CODE END USART1_Init 1 */ huart1.Instance = USART1; huart1.Init.BaudRate = 4800; huart1.Init.WordLength = UART_WORDLENGTH_8B; huart1.Init.StopBits = UART_STOPBITS_1; huart1.Init.Parity = UART_PARITY_NONE; huart1.Init.Mode = UART_MODE_TX_RX; huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart1.Init.OverSampling = UART_OVERSAMPLING_16; huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; if (HAL_UART_Init(&huart1) != HAL_OK) { //Error_Handler(); } /* USER CODE BEGIN USART1_Init 2 */ /* USER CODE END USART1_Init 2 */ }

Então no programa principal é realizada a chamada desta função no programa main()

MX_USART1_UART_Init();

Será necessário também a criação de buffer de recepção de dados pela serial, no caso, 128 bytes.

char buff[ 128 ];

o qual é preenchido com NULL

memset( buff, 0, 128 ); //preenche com NULL

No programa principal é aguardado por 5 segundos de chegou algo pelo GPS

HAL_UART_Receive( &huart1, buff, 128, 5000 );

Se algo foi recebido neste período, ou seja, o buff esta com tamanho diferente de ZERO, então o dado recebido é mandado pela serial para DEBUG e também é enviado para a rede LoRaWAN.

if(!(strlen(buff)==0)) { HAL_UART_Transmit(&huart1, buff,strlen(buff), 10);
// ASCII , Confirmed up, Fport : 1 , datalength : size(buff), data: GPS data_Tx(1,1,1,strlen(buff),buff); memset( buff, 0, 128 ); }


Abaixo um exemplo de pacote de GPS de teste (enviado via REALTERM) via UART1

$GPGGA,LATITUTE,LONGITUDE

Não foi implementado um filtro para demais pacotes do NMEA, para testes foi enviado apenas o pacote de latitude e longitude ($GPGGA)

Abaixo código da função main()

int main(void) { Start_Init(); MX_USART1_UART_Init(); HAL_UART_Transmit(&huart1, "Start...",8, 10); setClass( 0 ); // Set CLASS A mode. setChannelMask(opt1,opt2,opt3,opt4,opt5, opt6); JOIN_START(); // Join srart // This function calls not only OTAA but also ABP HAL_UART_Transmit(&huart1, "Connected...",12, 10); memset( buff, 0, 128 ); while(1) { CLI_Command_Process(); // To receive CLI command through serial port(UART) HAL_UART_Receive( &huart1, buff, 128, 5000 ); if(!(strlen(buff)==0)) { HAL_UART_Transmit(&huart1, buff,strlen(buff), 10); data_Tx(1,1,1,strlen(buff),buff); memset( buff, 0, 128 ); } API_MODE(); // Run LoRa protocol. } }

Configurando CLASS A, OTAA, Application EUI, ApplicationKey para JOIN na EVERYNET

//UART5  é a do CLI


O join foi realizado com successo e este momento o programa está em loop aguardando pela SERIAL  UART1 os dados enviados pelo GPS, quando receber ira publicar na EVERYNET.



Pacote chegou na EVERYNET

[2019-11-07 14:16:59 305]:
CON_[2019-11-07 14:16:59 325]:UP
FCnt 2 P 1
SEND
Freq: 915200000 DR: 2
[2019-11-07 14:17:04 733]:RX1CH_OPEN
[2019-11-07 14:17:04 893]:
[2019-11-07 14:17:04 914]:DUTY_CYCLE_ANS
ProcessMacCommands: SRV_MAC_DUTY_CYCLE_REQ: D 0 AD 1
status=7
[2019-11-07 14:17:04 930]:RX_PARAM_SETUP_ANS
R[2019-11-07 14:17:04 952]:X_PARAM_SETUP_REQ: O 0 DR 8 F 923300000 
UNCON_DOWN
FCnt 1 P 57


DONE




Base64


Fonte:

gps_keil.rar

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 portifó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