LoraWAN GPS Tracker für TTNMapper

Das Projekt LoraWAN GPS Tracker ist ein geniales DIY Gerät für den Eigenbau und bietet zusätzliche wertvolle Funktionen für das “The Things Network”.

In nur 15 Schritten zum eigenen GPS-Tracker für LoraWAN.

Die Basis gab Guido Burger aus Stuttgart mit einem Artikel bei Hackster.io. Nachzulesen unter folgendem Link: https://www.hackster.io/fablabeu/gps-mapper

Nun der Artikel ist in Englisch und wir wollen hier das ganze in Deutscher Sprache beschreiben damit ein Nachbau fehlerfrei möglich wird.  Darüber hinaus haben sich ein paar Missverständnisse  eingeschlichen die in diesem Artikel korrigiert bzw. geklärt werden. Die wurden in Zusammenarbeit mit Guido behoben und flossen in diesen Artikel ein.

Warum bauen wir so ein Teil?
Nun in der Vergangenheit benötigten wir immer einen Lora-Node (auch Sensor genannt), ein Smartphone und die Software TTNMapper auf dem Smartphone. Die Anwendung TTNMapper ist nötig und wichtig, um eine umfangreiche Übersicht zu bekommen, wie die Erreichbarkeit von Gateways aussieht. Bei einer Messung mit einem Sensor in der Hand und aktiver TTNMapper App, wird das GPS-System des Smartphone genutzt, um verschiedene Daten für die Reichweitenmessung zwischen Sensor und Gateways zu ermitteln. Die visuelle Darstellung erfolgt dann über die Webseite ttnmapper.org.
Mit dem neuen GPS-Tracker benötigen wir kein Smartphone, keine TTNMapper App und keinen eigenen Sensor.

Als erstes besorgen wir uns die Teile die benötigt werden:

  • Adafruit Huzzah Feather ESP8266 Board (*)
    https://amzn.to/2AWqCLe
  • Adafruit LoraWAN FeatherWing 900MHz / RFM95W
    Achtung hier nicht bei Amazon bestellen, denn dort wird das falsche Board angeboten
  • Adafruit Ultimate  GPS FeatherWing (*)
    https://amzn.to/35f7upE
  • 2 * Dioden 1N4001
  • Etwas Schaltlitze 0,14 mm² für LoraWAN Antenne/ Verdrahtung
  • Optional Lötbare SMA-Buchse (*) https://amzn.to/32gYTks
  • Optional SMA-Buchse mit Kabel und Antenne (*) https://amzn.to/2BaJNks

Unter folgendem Link steht eine Einkaufsliste bei EXP-TECH zur Verfügung, diese kann alternativ zu der Amazon Einkaufsliste genutzt werden. Dort gibt es auch das richtige LoRaWAN Feather Board.

Huzzah ESP8266 Board
GPS Feather Board
LoraWAN Feather Board 868 MHz

Vorgehensweise in Einzelschritte, Reihenfolge ist wichtig:

  • Schritt 1: Verlöten der Steckverbinder am GPS Board
  • Schritt 2: Auftrennen der TX und RX Pads am GPS Board
  • Schritt 3: Brücke an PIN 5 löten am GPS Board
  • Schritt 4: Verlöten des LoraWAN Board ( Nur zur Info, kein Arbeitsschritt nötig)
  • Schritt 5: Anlöten einer LoraWAN Antenne
  • Schritt 6: Anlöten der beiden Dioden 1N4001 am LoraWAN Board
  • Schritt 7: Anlöten der Lötbrücke am LoraWAN Board
  • Schritt 8: Verlöten von GPS-Board mit dem LoraWAN Board
  • Schritt 9: Zusammenbau GPS-Mapper
  • Schritt 10: Anlegen Applikation in TTN-Network Console
  • Schritt 11: Anlegen Device in TTN-Console
  • Schritt 12: Anlegen des Decoder in TTN-Console
  • Schritt 13: Integration TTN-Mapper in TTN-Console
  • Schritt 14: Mit Arduino IDE Huzzah ESP8266 programmieren
  • Schritt 15: Erste Inbetriebnahme

Zu Schritt 2 für das GPS-Feather Board:

Pad aufschneiden

Zu Schritt 3:

Weitere Änderungen in Schritt 5 für das LoraWAN Board:

  • Antennenbuchse anlöten an LoraWAN Feather Board
  • Alternativ kann auch ein Draht mit 8,2 cm Länge angelötet werden
  • Alternativ kann auch ein Pitail angelötet werden mit SMA-Buchse

Zu Schritt 6:

  • 1 Diode anlöten an PIN IRQ -> B mit weißen Ring nach Links
  • 1 Diode anlöten an PIN DI01 -> B mit weißen Ring nach Rechts

Weitere Änderungen in Schritt 7:

  • Lötbrücke an PIN CS -> E anbringen

Zu Schritt 8:

Stecke das GPS Feather Board auf das LoRaWAN Board so auf dass auf der Unterseite das LoraWAN Board zu sehen ist. Die Stifte des GPS-Board sind auf dieser Unterseite sichtbar. Die müssen nun verlötet werde. ACHTUNG: So wenig wie möglich Lötzinn benutzen und es darf kein Lötzinn an die Beinen hochlaufen, sonst ist es nicht mehr möglich dieses Module auf das Huzzah ESP8266 Board aufzusetzen. Es muss absolut ruhig und ohne Stress gelötet werden und ganz dünnes Lötzinn nutzen.

Unterseite des LoraWAN Board mit GPS Board verlötet
So sollte das fertig gelötete Modul aussehen

Schritt 9:

Jetzt setzen wir das GPS-LoraWAN Modul auf das Huzzah ESP8266 Board auf um zu sehen ob die Pins nicht zuviel Lötzinn enthalten. Es sollte ungefähr wie folgt aussehen:

Fertiger GPS-LoraWAN TTN Mapper

Nun nehmen wir das GPS-LoraWAN Modul wieder ab und installieren die nötige Software aus den ESP8266. Dazu laden wir die Software aus dem GIT Repository:
https://git.unixweb.net/unixweb/TTN-Mapper-GPS

Mit der Ardunino IDE starten öffne die Datei “ttn_gps_mapper.ino” und editieren die Datei in der Zeile 32, 39 und 46. Die passenden Werte für Deinen Sensor gibt es in der TTN-Console. Siehe Schritt 11.

Zu Schritt 10:

Anlegen einer neuen Applikation :
https://console.thethingsnetwork.org/applications/add

 

Zu Schritt 11:

Anlegen eines Gerät sprich “Devices”, URL bitte anpassen zu dem angelegten Application-Name

https://console.thethingsnetwork.org/applications/ttn-mapper5/devices

Die 3 Werte in die Arduino IDE übertragen.

Hinweis und Update :

Aktuell ist es zusätzlich möglich den TTN-Mapper in ABP Mode einzurichten. Es ist eine Empfehlung der Community da der Tracker fest in SF7 arbeitet. Bei einschalten des Trackers und nicht erreichen eines Gateway, wird im OTAA Mode der Spreadfaktor auf bis zu SF12 automatisch erhöht, was die Messwerte bei TTN-mapper verfälscht.

Achtung hierzu bitte nur folgendes File für die Programmierung mit ABP nutzen:

https://git.unixweb.net/TTN-Mapper-GPS/src/branch/master/ttn-gps-mapper-abp.ino

TTN Mapper GPS ABP Mode
TTN Mapper in ABP Mode
TTN Mapper GPS ABP Mode
TTN Mapper in ABP Mode
TTN-Mapper-GPS-ABP Mode
TTN-Mapper-GPS-ABP Mode

Nun muss der Decoder installiert werden und die Integration TTN-Mapper aktiviert werden.

Die Datei “decoder.js” in die Zwischenablage aus dem GIT Repository kopieren
https://git.unixweb.net/TTN-Mapper-GPS

Zu Schritt 12:

Anlegen des Decoder , bitte URL anpassen zu Deinem Device-Name:
https://console.thethingsnetwork.org/applications/ttn-mapper5/payload-formats

Zu Schritt 13:

Aktivieren der TTN-Mapper Integration. In diesem Menüpunkt die TTN-Mapper Funktion, dh. die Daten die mit dem GPS-Tracker erfasst werden übergibt das TTN-Netzwerk an ttnmapper.org um dort die Visualisierung der Messpunkte zu ermöglichen

Zu Schritt 14:

Hinweis: Damit der Upload der Ardunio IDE auf das Huzzah Board ESP8266 möglich ist, muss vorher das GPS-LoraWAN Modul abgezogen werden. Dann ESP8266 am Computer anschließen, Code hochladen. Board vom Computer abstecken, GPS-LoraWAN Modul wieder aufstecken, USB-Anschluß mit 5 Volt versorgen via Powerbank Akku zum Beispiel. GPS-Mapper dann in den Außenbereich hinlegen, damit Satelliten erkannt werden können, sonst sendet der GPS-Mapper keine Daten.

Zu Schritt 15:

Die Daten können in der TTN-Console eingesehen werden wenn der GPS-Mapper funktioniert unter folgender URL nach unserem Beispiel und muss entsprechend Deines Devices Namen aufgerufen werden: https://console.thethingsnetwork.org/applications/ttn-mapper/data

Das Ergebnis sollte so in dieser Form aussehen

Jetzt interessiert uns ja noch ob die Daten im TTN-Mapper angezeigt werden.
Besuche diese Webseite und gebe dort den Namen Deine Device ID ein  :
https://ttnmapper.org/advanced-maps/

Unter folgender URL kann man die Testdaten meines Trackers einsehen:

https://ttnmapper.org/devices/map.php

Headmap

So da sollte es soweit gewesen sein und der GPS-Mapper kann nun mobil oder portabel eingesetzt werden. Wer noch ein Gehäuse selbst drucken möchte, kann sich von folgender URL die notwendigen STL-Dateien herunterladen und das Gehäuse auf seinem eigenem 3D-Drucker ausdrucken.

https://www.thingiverse.com/thing:3913383

Falls es Fragen oder Fehler in dem realtiv großen Artikel gibt dann einfach unten in die Kommentare schreiben. Ansonst wünsche ich viel Spass und Erfolg mit dem GPS-Mapper für das TTN-Network.

Grüße , Joachim Hummel

Alle Artikel auf dieser Seite sind mit einem sogenannte Provision-Links. Wenn du auf so einen Verweislink klickst und über diesen Link einkaufst, bekomme ich von deinem Einkauf eine Provision. Weiterführende Infos gibt es hier unter Punkt 8 in der Datenschutzerklärung  https://blog.unixweb.de/datenschutzerklaerung/

Joachim

Aus Leidenschaft für Technik. Aktuelle Themen sind Datensicherheit, Software für Datenschutz, Mobile Geräte, Smartphone Sicherheit und Anwendungen, Raspberry Pi Geek.

Alle Beiträge ansehen von Joachim →

14 Gedanken zu “LoraWAN GPS Tracker für TTNMapper

  1. Hallo Joachim,
    Vielen Dank für den tollen Beitrag. Könntest Du bitte ein Bild vielleicht seitlich aufgenommen von der SMA-Buchse online stellen. So wie Du diese fest angelötet hast sieht diese um 99° gedreht aus. Mir ist nicht klar wie das gehen soll mit der SMA-Buchse aus Deinem Amazon Link.
    Vielen Dank,
    Ingmar

    1. Hallo Ingmar

      Danke für Deine Nachricht.
      Die SMA Buchse wir genau so wie sie in Amazon abgebildet ist 1:1 auf die Platine geschoben.
      Die 2 Pins sind unten und die 3 Pins sind oben, es wird in der unteren Hälfte der SMA-Buchse einfach die Platine eingeschoben.

      Grüße Joachim

  2. Hallo Joachim
    Im ABP-Modus werden die Keys laut Deinem Bild oben nicht in Hex in den Sketch eingetragen?
    Hier meckert die IDE wenn ein Buchstabe im Key vorkommt: static const u4_t DEVADDR = 0x260XXXX;
    Und die Keys bei ABP sind DEVADDR, APPSKEY und NWKSKEY?

    Vielen Dank
    Michael

  3. Hallo Michael

    Du musst die APPS Session Key + Network Session Key in diesen Format eintragen, steht auch im Code “MSB” … { 0x12, 0xBB, 0x0E, 0x3A, 0xEF, 0xA5, 0x1C, 0xD8, 0xFE, 0xCE, 0x6B, 0x69, 0x7F, 0x5B, 0x88, 0x30 }
    Die Device Address muss “26011234” enthalten und darf keine Buchstaben enthalten und musst Deine eintragen die in der TTN-Console angezeigt wird und KEINE beliebige.

    Diese Werte sind nur Platzhalter und müssen ALLE durch Deine Werte ersetzt werden:
    static const u4_t DEVADDR = 0x260XXXX;
    static const u1_t PROGMEM APPSKEY[16]={ XXX };
    static const u1_t PROGMEM NWKSKEY[16]={ XXX };

    Grüße , Joachim

  4. Hallo Joachim
    Danke für die schnelle Rückmeldung. Mir war anhand Deiner Anleitung (vielen Dank übrigens dafür!) nicht klar geworden wie ich den Platzhalter für die Device Adress verstehen soll. Wenn ich Dich jetzt richtig verstehe verwende ich von meiner ID 2601160A alles ohne A. Sprich die 4 Xe werden durch 1160 ersetzt.
    Danke und Grüße aus Hamburg

    1. Hallo Michael

      ja klar , auch Dir Danke. Versuche immer exakt alles im Detail zu beschreiben. Kann halt nicht alle Fehlerquellen ausschalten, deshalb bin ich auf Infos und Feedback der Leser angewiesen. Was mir aber noch eingefallen ist, dass der Buchstabe “A” schon enthalten sein muss. Denn A bis F sind ebenfalls Hexwerte, Du darfst das A nicht weglassen sondern hast Du nur 7 Stellen statt 8 Stellen eingetragen.

      Viel Spaß mit dem neuen Tracker.

      Beste Grüße und viel Erfolg , Joachim

  5. Vor dem Spaß kommt der Schweiß😅 Weil bei A im Key meckert die IDE🤷‍♂️ Kenne mich jetzt leider auch nicht wirklich gut mit der Deklaration der const aus.

  6. Nein, aber meine Aufmerksamkeit geschärft und den Fehler entdeckt😁
    Hatte das 0x davor irgendwie vergessen🙄 Nun geht’s.

    1. Hallo Michael

      wie konnte man das vergessen , das verstehe ich nicht. Im Code steht es doch drin:
      static const u4_t DEVADDR = 0x260XXXXX;
      Es dürfen nur die die großen “X” Werte überschrieben werden, der kleine “x” Wert muss dort stehen bleiben wo er ist. Naja zumindest hast jetzt dabei was gelernt und es funktioniert jetzt.

      Viel Spaß nun mit dem neuen Gerät.

      Grüße , Joachim

  7. Beim reinkopieren vernichtet und dann nicht mehr beachtet. Ist quasi wie vergessen😁
    Läuft jetzt alles und eine erste Map ist erstellt.
    Nochmals l Danke für das eindeutchen.
    Beste Grüße
    Michael

  8. Ich fand die Anleitung sehr interessan.
    Werde sie noch an UFO weiterleitten
    Setze Deine Genehmigung vorau!?
    Gruß Klaus
    (damals Mehlfeld-Teffen)

  9. Ich bin gerade am verzweifeln: Beim Hochladen des Code erhalte ich ständig die Meldung:

    “‘DR_SF12’ was not declared in this scope”

    Wo liegt mein Fehler ?

    Gruss Thomas

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert