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