Olá pessoal! alguém tem o exemplo de código para end device com autenticação ABP para a TTN? Aproveitando também algum modelo de ligação aos atmega 328p?
Oi @kramer
Para configuração de um módulo LoRaWAN na TTN:
- Configure o dispositivo para autenticação ABP
AT+NJM=0
- Leia o DevEUI do dispositivo:
AT+DEUI=?
- Assumindo que você já tenha uma aplicação criada na TTN, adicione um novo dispositivo com esse DevEUI
- Após salvar, entre em configurações (Settings) do dispositivo criado, mude para ABP e salve
- No final da página do dispositivo, há um resumo com o DevAddr e as chaves de sessão
const char *devAddr = "26031600";
const char *nwkSKey = "A705FE7C1581F4213DBEC3DC7F60D000";
const char *appSKey = "22D5095614C90093B9D01FF1DD679900";
- Configure essas chaves no dispositivo
AT+DADDR=26:03:16:00
AT+NWKSKEY=A7:05:FE:7C:15:81:F4:21:3D:BE:C3:DC:7F:60:D0:00
AT+APPSKEY=22:D5:09:56:14:C9:00:93:B9:D0:1F:F1:DD:67:99:00
- Na configuração ABP não é necessário dar
AT+JOIN
- Não esqueça de configurar a máscara de canais para TTN
EndDevice LoRaWAN - Máscara de canais TTN
Wow!!
Demais, ai na parte do arduino, o código fica o mesmo do que o OTA que se tem no github?
Isso, você pode usar o mesmo código, só precisa mudar que ao invés de chamar o JoinNetwork(0)
, você configura as chaves através do comando SendAtCommand
char APPSKEY[] = "50:d1:ad:39:e5:b3:a6:fc:ff:db:3e:a6:3e:e6:5a:AA";
char NWKSKEY[] = "50:d1:ad:39:e5:b3:a6:fc:ff:db:3e:a6:3e:e6:5a:00";
SendAtCommand(AT_NJM, AtSet, "0");
SendAtCommand(AT_APPSKEY, AtSet, APPSKEY);
SendAtCommand(AT_NWKSKEY, AtSet, NWKSKEY);
E para enviar esses comandos, consigo fazer tudo utilizando um node radioenge conectado a um arduino? ou preciso de mais alguma shield em especifico?
Na verdade você pode utilizar qualquer equipamento para mandar essas mensagens.
- Arduino
- ESP32
- Qualquer uC com interface serial TTL
- Computador com conversor USB/TTL ou RS232/TLL
Você não precisa necessariamente utilizar a shield do arduino para interfacear o módulo com o Arduino. A única coisa que você precisa é conectar os pinos configurados no Arduino nos pinos seriais do Módulo Radioenge.
https://www.radioenge.com.br/solucoes/iot/59-iot-arduino-uno.html
Ótimo!!!
Para minha junção utilizo determinado padrão de payload. Tem como eu setar esse padrão direto no end-device, retirando assim o uC externo ao nó?
Consigo contar interrupções através de alguma porta disponivel no end-device?
Sensor trabalha que gostaria de conectar direto ao end device tem a saída com interrupção