terça-feira, 22 de janeiro de 2019

COMUNICAÇÃO P2P COM LoRa WISOL LOM204A02

COMUNICAÇÃO P2P COM LoRa WISOL 

LOM204A02

O objetivo deste BLOG é ilustrar como realizar os primeiros passos com comunicação P2P com os rádios LORA da WISOL. Foram utilizados dois starters kit lora da WISOL.  P2P não utiliza a rede LoraWAN.

Para P2P você fará uso dos comandos AT

Abra
https://loja.smartcore.com.br/pagina/datasheet-documentacao-de-produtos.html (LoRa)

Pegue o arquivo wisol-lora-doc.rar e descompacte numa pasta! Já está disponível a versão 2.0.2, mas não tem diferenças em relação à 1.0.2 no que se refere à P2P.
    
C:.
└───LOM204A02_Lib101_190604_API_Release
    ├───Boot
    ├───Document
    ├───HEXA
    └───SRC


]
KIT 1                                KIT2


Primeiramente, deve-se alterar o firmware do KIT 1 e KIT 2 para que tenha a função de transmissão e recepção de pacotes via P2P, não LoRaWAN.

Va na pasta onde se encontram os exemplos para P2P (SRC)

[WISOL]LOM204A02_Lib101_190604_API_Release\[WISOL]LOM204A02_Lib101_190604_API_Release\SRC



Então digite (com KEIL previamente instalado)

LOM204A_AU915A_TXCO_WAN_P2P.bat

Abrirá o projeto que implementa P2P e WAN

Certifique que no Project tenha


1) Habilite no exemplo P2P mode, colocando #if 1

#if defined (P2P)
#if 1  // You need a P2P define



2) Desabilite API mode, colocando #if 0

#if 0     // API mode

3) Compile o programa e grave no KIT 1 via entrada (USB D/L) (requer driver STM32 ST-LINK previamente instalado)



4) Grave o mesmo programa no KIT  2 via entrada (USB D/L)

5) Mude o cabo do KIT 1  de USB de D/L para entrada USB SERIAL para depurar a execução (requer driver FTDI previamente instalado) (FIRMWARE DOWNLOAD) 

6) Mude o cabo do KIT 2  de USB de D/L para entrada USB SERIAL para depurar a execução (requer driver FTDI previamente instalado) (DEBUG_CONTROL) (UART5)

7) COMM virtuais aparecerão, no caso COM45 para o KIT 1 e COM48 para o KIT 2.




8) Execute o programa LORA_TEST_PC duas vezes para termos duas instâncias, uma para COMM45 (KIT 1) e outra  para COMM48 (KIT 2), configure para abrir a COMM45 e COMM48.

Ao abrir a COMM, irá resetar o KIT, mostrando a configuração atual, via comando AT+LORA_S= já gravado no Firmware, o qual poderá ser removido do código fonte do mesmo.

KIT 1

KIT 2

9) Analise os dados Default gerados

KIT 1 na COMM45

Com Connect: iSelNum[45] Baud[115200] 

AT+LORA_S=

====================================
  Firmware version : 2.0.0
  DeviceEUI : 702C1FFFFE5358B6
  Device ID : 0x01
  Frequency : 923300000 Hz
  Bandwidth : 7 
  Power : 20 dBm
  Spreading Factor : 10
  RxGain: 1
  AES state : ON
  Mode : Normal
  Sync_code : 12
  DevAddr : ed550001
  Compress : 2
  Fport : 0
  Repeat : 0
  Brief mode : 0
  Raw mode : 0
  LBT Rssi Level : -65
====================================

OK


KIT 2 na COMM48

Com Connect: iSelNum[48] Baud[115200] 

AT+LORA_S=

====================================
  Firmware version : 2.0.0
  DeviceEUI : 702C1FFFFE5358C1
  Device ID : 0x01
  Frequency : 923300000 Hz
  Bandwidth : 7 
  Power : 20 dBm
  Spreading Factor : 10
  RxGain: 1
  AES state : ON
  Mode : Normal
  Sync_code : 12
  DevAddr : 00000000
  Compress : 2
  Fport : 0
  Repeat : 0
  Brief mode : 0
  Raw mode : 0
  LBT Rssi Level : -65
====================================

OK

Basicamente o que diferencia os valores dos KIT 1 e KIT 2 são:

DeviceEUI e DevAddr

10) Enviando pacotes P2p

Certifique-se que os valores Freq, SF, PWR e BW sejam iguais nos dois lados! Veja no software LORA_TEST_PC

11) Digite um texto qualquer em MESSAGE (COMM48) do KIT 1, por exemplo, "SMARTCORE I" e click em SEND.




12) Observe no lado de COMM45 do KIT 2, você verá a mensagem "SMARTCORE I", além de exibir o ID e SN de quem enviou o pacote.


Repita o mesmo procedimento, enviando o pacote "SMARTCORE II" do outro KIT, verás novamente quem enviou o pacote.

13) Resetando o módulo

Ao resetar o módulo, você verá que o módulo vai transmitir a sequência 

123456789012345678901234567890

Pq isto ?



Veja o programa P2P exemplo, nele há uma função, ele já manda o pacote via comando P2P_AT_CMD(), ou seja, já pré gravado no firmware do KIT 1 e KIT 2.

// Send ASCII data void p2p_send(void) { // Send the message twice P2P_AT_CMD("AT+LORA_MSGW=2,123456789012345678901234567890\r\n\0"); }

int main(void) { uint8_t i=0; Start_Init(); P2P_Init(); p2p_send(); // envia pacote .
.
.

Fique livre para remover!

O comando P2P_AT_CMD é capaz de enviar um comando AT (criados para P2P) que é similar ao enviado à UART5 por meio de um HOST externo ao módulo LoRa.
LORA_TEST_PC manda comandos AT para o módulo LoRa.

14) O campo DeviceID pode ser mudado pelo usuário, o mesmo é enviado com o pacote! Ele pode ser considerado um "segundo" ID do módulo. 

15) O campo AT COMMAND está livre para você testar os outros comandos AT.

Mais informações, leia o AT COMMAND USER MANUAL.

Teste bastante até se familiarizar com todos os comandos AT, leia o documento

[WISOL]AppNote_AT_command_Wisol_V3.0_en.pdf

16) OPENCPU

Como opencpu, você pode envia comandos AT para o módulo via comando P2P_AT_CMD.

    do
    {
        CLI_Command_Process();   // To teceive commands via UART
        P2P_MODE();              // P2P process.   This function is     set to RX mode in idle state.
        if(Check_P2P_TX_Done())     // Use this command only after you send data wirelessly.
        {
            PRINTF("AT test\r\n");
            P2P_AT_CMD("AT+LORA_PWRS=20\r\n\0");
        }   
        P2P_AT_CMD("AT+LORA_MSGW=2,hello from world!\r\n\0");
        DelayMs(5000);

    }while(1);

Se não usar como opencpu, você deve ter um HOST que enviará comandos via UART, o princípio de funcionamento do LORA_TEST_PC. 

Para receber os comandos AT via UART, o loop principal deveria ser este.


 do
    {
        CLI_Command_Process();   // To teceive commands via UART
        P2P_MODE();              // P2P process.   This function is     set to RX mode in idle state.
    }while(1);



Mais detalhes abra o DOCX

Wisol - carta para acompanhar WSLOM204A02 - SmartCore - p2p


17) Esquema elétrico (ligação com Host com comandos AT)


18) Campos extras ? (não testado)



19) Questões: suporte@smartcore.com.br

FONTES: 

 

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