faecher:nwt:lorawan:uebersicht:lorashield:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
faecher:nwt:lorawan:uebersicht:lorashield:start [17.02.2020 19:28] – [Bibliothek installieren] sbelfaecher:nwt:lorawan:uebersicht:lorashield:start [17.02.2020 20:19] (aktuell) sbel
Zeile 4: Zeile 4:
 ===== LoraShield aufstecken ===== ===== LoraShield aufstecken =====
  
 +{{ :faecher:nwt:lorawan:uebersicht:lorashield:img_20200217_191115.jpg?300 |}}
 ===== Bibliothek installieren ===== ===== Bibliothek installieren =====
  
-Um das Shield ansprechen zu können, muss die LMIC Bibliothek installiert werden+Um das Shield ansprechen zu können, muss die LMIC Bibliothek installiert werden. 
- +
-{{ :faecher:nwt:lorawan:uebersicht:lorashield:lmic.png |}}+
  
 +  * [[https://github.com/matthijskooijman/arduino-lmic/archive/master.zip|Zip Datei herunterladen]] (Source: https://github.com/matthijskooijman/arduino-lmic)
 +  * Installieren mit ''Sketch''-> ''Bibliothek einbinden'' -> ''ZIP-Bibliothek hinzufügen'' 
 ===== Sketch ===== ===== Sketch =====
  
- +++++ Klicken, um den Beispielsketch zu sehen | 
-<code c hellolora.ino> +<code c hello_lora.ino>
 // MIT License // MIT License
 // https://github.com/gonzalocasas/arduino-uno-dragino-lorawan/blob/master/LICENSE // https://github.com/gonzalocasas/arduino-uno-dragino-lorawan/blob/master/LICENSE
Zeile 25: Zeile 24:
 #include <lmic.h> #include <lmic.h>
 #include <hal/hal.h> #include <hal/hal.h>
-//#include <credentials.h> 
  
-#ifdef CREDENTIALS 
-static const u1_t NWKSKEY[16] = NWKSKEY1; 
-static const u1_t APPSKEY[16] = APPSKEY1; 
-static const u4_t DEVADDR = DEVADDR1; 
-#else 
 static const u1_t NWKSKEY[16] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; static const u1_t NWKSKEY[16] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
 static const u1_t APPSKEY[16] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; static const u1_t APPSKEY[16] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
 static const u4_t DEVADDR = 0x00000000; static const u4_t DEVADDR = 0x00000000;
-#endif+
  
 // These callbacks are only used in over-the-air activation, so they are // These callbacks are only used in over-the-air activation, so they are
Zeile 103: Zeile 96:
  
     // Start job     // Start job
-    do_send(// MIT License +    do_send(&sendjob); 
-// https://github.com/gonzalocasas/arduino-uno-dragino-lorawan/blob/master/LICENSE +}
-// Based on examples from https://github.com/matthijskooijman/arduino-lmic +
-// Copyright (c) 2015 Thomas Telkamp and Matthijs Kooijman+
  
-// Adaptions: Andreas Spiess+void loop() { 
 +    os_runloop_once(); 
 +
 +</code> 
 +++++
  
-#include <lmic.h> +===== Neues Device bei TTN erstellen =====
-#include <hal/hal.h> +
-//#include <credentials.h>+
  
-#ifdef CREDENTIALS 
-static const u1_t NWKSKEY[16] = NWKSKEY1; 
-static const u1_t APPSKEY[16] = APPSKEY1; 
-static const u4_t DEVADDR = DEVADDR1; 
-#else 
-static const u1_t NWKSKEY[16] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; 
-static const u1_t APPSKEY[16] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; 
-static const u4_t DEVADDR = 0x00000000; 
-#endif 
  
-// These callbacks are only used in over-the-air activation, so they are +Nun benötigt man in der TTN Console eine Application und muss dort ein neues Device anlegen. Man vergibt einen Namen und lässt die übrigen Werte berechnen. Das Ergebnis sieht so auswie im Screenshot zu sehen
-// left empty here (we cannot leave them out completely unless +
-// DISABLE_JOIN is set in config.hotherwise the linker will complain). +
-void os_getArtEui (u1_t* buf) { } +
-void os_getDevEui (u1_t* buf) { } +
-void os_getDevKey (u1_t* buf) { }+
  
-static osjob_t sendjob;+**Wichtig**: 
  
-// Schedule TX every this many seconds (might become longer due to duty +  * Das Device muss als Activation Method ''ABP'' haben 
-// cycle limitations). +  * Um die passenden IDs im Sketch einzutragen, müssen diese das passende Format haben - die Darstellung kann man durch anklicken von ''<>'' umschalten.
-const unsigned TX_INTERVAL = 20;+
  
-// Pin mapping Dragino Shield +{{ :faecher:nwt:lorawan:uebersicht:lorashield:device_ttn.png |}}
-const lmic_pinmap lmic_pins = { +
-    .nss = 10, +
-    .rxtx = LMIC_UNUSED_PIN, +
-    .rst = 9, +
-    .dio = {2, 6, 7}, +
-}; +
-void onEvent (ev_t ev) { +
-    if (ev == EV_TXCOMPLETE) { +
-        Serial.println(F("EV_TXCOMPLETE (includes waiting for RX windows)")); +
-        // Schedule next transmission +
-        os_setTimedCallback(&sendjob, os_getTime()+sec2osticks(TX_INTERVAL), do_send); +
-    } +
-}+
  
-void do_send(osjob_t* j){ +===== IDs in den Sketch eintragen =====
-    // Payload to send (uplink) +
-    static uint8_t message[] "hi";+
  
-    // Check if there is not a current TX/RX job running +  * NWKSKEY: Network Session Key 
-    if (LMIC.opmode & OP_TXRXPEND) { +  * APPSKEY: Application Session Key 
-        Serial.println(F("OP_TXRXPEND, not sending")); +  * DEVADDR: Device Address
-    } else { +
-        // Prepare upstream data transmission at the next possible time. +
-        LMIC_setTxData2(1, message, sizeof(message)-1, 0); +
-        Serial.println(F("Sending uplink packet...")); +
-    } +
-    // Next TX is scheduled after TX_COMPLETE event. +
-}+
  
-void setup() { 
-    Serial.begin(115200); 
-    Serial.println(F("Starting...")); 
  
-    // LMIC init +{{ :faecher:nwt:lorawan:uebersicht:lorashield:keys.png |}}
-    os_init();+
  
-    // Reset the MAC state. Session and pending data transfers will be discarded. +===== Kompilieren und Testen =====
-    LMIC_reset();+
  
-    // Set static session parameters. +Beim Kompilieren erscheinen Warnungen, die kann man ignorieren.
-    LMIC_setSession (0x1, DEVADDR, NWKSKEY, APPSKEY);+
  
-    // Disable link check validation +{{ :faecher:nwt:lorawan:uebersicht:lorashield:warnings.png |}} 
-    LMIC_setLinkCheckMode(0);+
  
-    // TTN uses SF9 for its RX2 window. 
-    LMIC.dn2Dr = DR_SF9; 
  
-    // Set data rate and transmit power for uplink (note: txpow seems to be ignored by the library) 
-    LMIC_setDrTxpow(DR_SF12,14); 
  
-    // Start job +Wenn man den Sketch auf den Arduino lädt, sollte man bei TTN sehen, dass das Device aktiv ist:
-    do_send(&sendjob); +
-+
- +
-void loop() { +
-    os_runloop_once(); +
-+
-&sendjob); +
-+
- +
-void loop() { +
-    os_runloop_once(); +
-+
- +
-</code>+
  
 +{{ :faecher:nwt:lorawan:uebersicht:lorashield:active.png?600 |}}
  
 +Im Data-Tab kann man jetzt auch sehen, dass da Daten übermittelt werden:
  
 +{{ :faecher:nwt:lorawan:uebersicht:lorashield:data.png?600 |}}
  
  
  • faecher/nwt/lorawan/uebersicht/lorashield/start.1581964113.txt.gz
  • Zuletzt geändert: 17.02.2020 19:28
  • von sbel