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.
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
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
└───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)
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.
O 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.
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.
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:
http://support.wisol.co.kr/en/
https://loja.smartcore.com.br/pagina/datasheet-documentacao-de-produtos.html
https://loja.smartcore.com.br/pagina/datasheet-documentacao-de-produtos.html