Exemplo código TTN autenticação ABP

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
    image
  • 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

https://github.com/schwiderke92/LoRaWAN-Project Verifique se está correto