Forum: Mikrocontroller und Digitale Elektronik TTN Gerät in App hinzufügen


von Bernhard S. (b_spitzer)


Lesenswert?

Hallo zusammen,
Frage an die TTN Experten (ich blick's gerade nicht mehr, hab noch mehr 
graue Haare bekommen)
Ich habe ein paar LoRa Module (ESP8266, RFM95, Boards von hallard.me 
https://github.com/hallard/NodeMCU-Gateway ) hier. Die direkte 
Kommuniktaion zwischen 2 Modulen hat geklappt, jetzt wollte ich ein 
Modul als Gateway (Single-Channel) nutzen und das andere als Sensor.

Das Gateway mit ESP-sc-gway (Version 6.2.8 von 
https://github.com/things4u/ESP-1ch-Gateway nicht die alte Version von 
Andreas Spies) konnte ich in TTN anmelden und bekomme auch die 
Statusmeldungen bei "livedata" angezeigt.

Den Sensor versuche ich mit dem Beispiel ttn_otaa aus der Bibliothek 
MCCI_LoRaWAN_LMIC_library zu nutzen. Das Gateway (2m neben dem Sensor) 
bekommt manchmal ein Paket vom Sensor ab (sehe ich sowohl im 
Webinterface des GW als auch bei TTN).
In TTN sehe ich dann auch die DevEUI und JoinEUI von meinem Sensor. Da 
ich im Programm keine JoinEUI angeben kann, habe ich im GW geschaut, 
dass hier 000000000 gesendet wird und in TTN ein Gerät mit dieser 
JoinEUI angelegt.
Klappt aber nicht...

Im Beispiel ttn_otaa ist dieser EUI-Abschnitt enthalten (hab ein paar 
Bytes hier bei DEVEUI und APPKEY verändert!)
1
// This EUI must be in little-endian format, so least-significant-byte
2
// first. When copying an EUI from ttnctl output, this means to reverse
3
// the bytes. For TTN issued EUIs the last bytes should be 0xD5, 0xB3,
4
// 0x70. 
5
static const u1_t PROGMEM APPEUI[8]={ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
6
void os_getArtEui (u1_t* buf) { memcpy_P(buf, APPEUI, 8);}
7
8
// This should also be in little endian format, see above.
9
static const u1_t PROGMEM DEVEUI[8]={ 0x12, 0x34, 0x56, 0x78, 0x7E, 0xD5, 0xB3, 0x70 };
10
void os_getDevEui (u1_t* buf) { memcpy_P(buf, DEVEUI, 8);}
11
12
// This key should be in big endian format (or, since it is not really a
13
// number but a block of memory, endianness does not really apply). In
14
// practice, a key taken from ttnctl can be copied as-is.
15
static const u1_t PROGMEM APPKEY[16] = { 0xAF, 0xFE, 0xAF, 0xFE, 0x12, 0x23, 0x45, 0x67, 0x8A, 0x43, 0x3A, 0x92, 0xAC, 0x78, 0x99, 0xBA };
16
void os_getDevKey (u1_t* buf) {  memcpy_P(buf, APPKEY, 16);}

In TTN erhalte ich bei den Live-Daten diese Ausgabe beim Gateway:
1
Receive uplink message 
2
JoinEUI 0000000000000000
3
DevEUI  70B3D57E78563412 (passend zum Code oben angepasst)
4
Data rate SF7BW125 SNR 6 RSSI -105
In der TTN Applikation habe ich folgende Angaben drin (angepasst an 
oben)
1
Activation information
2
AppEUI  0000000000000000
3
DevEUI  70B3D57E78563412
4
AppKey  AFFEAFFE12345678A433A92AC7899BA

Im übrigen Code von dem Beispiel habe ich bisher keine Anpassungen 
gemacht.
Hat jemand eine Idee?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.