End Device com ESP32

Estou usando o módulo LoRaWAN EndDevice com ESP32, algum exemplo de código-fonte com este MCU? Vi que no GitHub tem exemplo com Arduino UNO, não sei se seria o mesmo código. Fico no aguardo, obrigado.

Amigo,
Dá uma olhada aqui:https://www.thethingsnetwork.org/community/sorocaba/post/guia-para-desenvolvimento-de-um-dispositivo-lorawan-na-infraestrutura-ttn-parte-1
Acho que pode te ajudar.
Att.,
Prof. Eduardo

Boa noite, minha pesquisa partiu desse projeto. Porém no meu caso estou utilizando o módulo EndDevice da Radioenge com ESP32, mas agradeço pela resposta, vou novamente analisar os códigos e verificar a possibilidade de uso no projeto. Obrigado.

Consegui enviar comandos AT do ESP32 para o módulo e cadastrar na TTN, vou compartilhar o código caso mais alguém precise, estou realizando as operações manualmente sem a biblioteca LoRaWAN.h.

#include <HardwareSerial.h>

void setup(){
Serial.begin(9600);
Serial2.begin(9600, SERIAL_8N1, 16, 17); //usando RX2 e TX2 do ESP
}
void loop(){

Serial.println(“Verificar baud rate”);
Serial2.write(“AT+BAUDRATE=?\r”);
delay(1000);
while(Serial2.available()){
int b = Serial2.read();
Serial.write(b);
}
}

Demais comandos só seguir o datasheet do módulo. Qualquer dúvida estou à disposição.

Alguém já conseguir realizar o código LoRaWan para esp32?

Use esse código como teste, só substituir pelos comandos AT que estão no datasheet do módulo.

#include <HardwareSerial.h>

void setup(){
Serial.begin(9600);
Serial2.begin(9600, SERIAL_8N1, 16, 17); //usando RX2 e TX2 do ESP
}
void loop(){

Serial.println(“Verificar baud rate”);
Serial2.write(“AT+BAUDRATE=?\r”);
delay(1000);
while(Serial2.available()){
int b = Serial2.read();
Serial.write(b);
}
}

posso migrar os códigos do uno diretamente para a esp pela adaptação da IDE?

Neste exemplo do git tem alguns passos que podem ser úteis.
Não foi usada a biblioteca lora.h e sim os comandos AT que estão disponíveis no manual.
link

Algumas bibliotecas do exemplo do GitHub para Arduino não são compatíveis com ESP32. No projeto que estou trabalhando fiz da mesma forma que o Fábio sugeriu, usando os comandos AT do manual diretamente, sem a biblioteca LoRaWAN.h.
No início inclui a biblioteca:
#include <HardwareSerial.h>
No setup inicializa a Serial2:
Serial2.begin(9600, SERIAL_8N1, 16, 17); //usando RX2 e TX2 do ESP, GPIO16 e 17
Depois vc cria uma função que será chamada no loop ou coloca o código abaixo no loop:
Serial.println("Verificar baud rate");
Serial2.write("AT+BAUDRATE=?\r");//envio do comando AT para verificar baudrate
delay(1000);//aguarda 1 segundo
while(Serial2.available()){
int b = Serial2.read();//recebe resposta do módulo
Serial.write(b);//imprime na tela serial a resposta
}
Para os demais comandos é só seguir o manual do módulo.
Exemplo: para definir autenticação ABP:
Serial.println("Definindo autenticação ABP");
Serial2.write("AT+NJM=0?\r");//envio do comando AT definindo modo de autenticação
delay(1000);//aguarda 1 segundo
while(Serial2.available()){
int e = Serial2.read();//recebe resposta do módulo
Serial.write(e);//imprime na tela serial a resposta
}
Para enviar uma mensagem:
Serial.println("Teste de Envio");
Serial2.write("AT+SEND=1:teste\r");//envio da string teste na porta 1
delay(1000);//aguarda 1 segundo
while(Serial2.available()){
int g = Serial2.read();//recebe resposta do módulo
Serial.write(g);//imprime na tela serial a resposta
}
Para definir a máscara de canais da TTN:
Serial.println("Definindo Máscara TTN");
Serial2.write("AT+CHMASK=FF00:0000:0000:0000:0001:0000\r");
delay(1000);
while (Serial2.available()) {
int k = Serial2.read();
Serial.write(k);
}
Só seguir essa ideia, lembrando que dependendo do tipo de autenticação utilizada vc precisa definir as chaves no módulo e executar o Join (se usar OTAA).