Seit der Veröffentlichung dieser Anleitung hat sich viel getan und es gibt nun die Möglichkeit der Integration über die TTN Console. Daher spart ihr euch dem Umweg über die Mail und könnt direkt afangen. Als Software solltet ihr diese Variante von GitHub nehmen.
Ich habe ja bereits vor geraumer Zeit meinen LoRaWAN GPS Tracker vorgestellt. Dieser sollte als Konzept für GPS-Tracker dienen, was auch prima funktioniert. Nun ist es aber auch möglich den ttnmapper.org ohne Smartphone zu füttern, wenn der TTN Node GPS Daten sendet. Dazu sind nur ein paar Veränderungen am Code nötig, da ebenfalls die Höhenangaben und der HDOP Wert benötigt wird. Ich habe meinen Code entsprechend angepasst und ihn auf GitHub gepackt.
Der Vorteil liegt auf der Hand. Ich braucht nur noch euren Node zu aktivieren und mapped damit dann auch schon. Euer Handy bleibt frei und ihr müsst euch um nichts kümmern. Einzig das Feedback der App fehlt. Natürlich ist der Weg eures Mapping-Nodes damit sofort nachvollziehbar durch Dritte. Dessen solltet ihr euch bewusst sein. Ich weiß nicht ob ttnmapper.org die Daten nach einer Zeit löscht, sobald sie in die Datenbank eingepflegt wurde, stört mich aber auch nicht. Sollte ich den Node anderweitige benötigen, werde ich ihn als anderes Device registrieren.
Arduino Sketch
Im wesentlichen wurde der Code um die Abfrage von Altitude und HDOP erweitert und das entsprechende encoding. DER HDOP Wert spiegelt die Genauigkeit der GPS Daten wieder. Werte bis 5 sind noch als ok anzusehen.
[code lang=“java“]
faltitudeGPS = gps.f_altitude();
fhdopGPS = gps.hdop();
[/code]
TTN Payload Decoder
Der TTN Payload Decoder wurde ebenfalls entsprechend angepasst.
[code lang=“java“]
function Decoder(b, port) {
var lat = (b[0] | b[1]<<8 | b[2]<<16 | (b[2] & 0x80 ? 0xFF<<24 : 0)) / 10000;
var lon = (b[3] | b[4]<<8 | b[5]<<16 | (b[5] & 0x80 ? 0xFF<<24 : 0)) / 10000;
var alt = (b[6] | b[7]<<8 | (b[7] & 0x80 ? 0xFF<<16 : 0)) / 100;
var hdop = b[8] / 100;
return {
location: {
lat: lat,
lon: lon,
alt: alt,
hdop: hdop
},
};
}
[/code]
Anmeldung an ttnmapper.org
Laut FAQ:
Using a node with a GPS, transmitting GPS coordinates (like a Sodaq One)
I will listen for your node on MQTT and import measurement as I receive packets from your device. Your node needs to at least transmit latitude, longitude, altitude and hdop. Then send me your:
- Application ID (MQTT username)
- Access Key (MQTT password)
- Device ID (or tell me if I should listen to all devices in your application)
- Region (e.g. eu). Region is the last part of the handler you registered your application to.
- A description of your payload format. You can follow the same payload format as the Sodaq One universal tracker, or use my even more compressed format which is used in this example.
Also habe ich meine Daten an blog@jpmeijers.com geschickt und auch innerhalb von drei Tagen eine Rückmeldung erhalten. Es hat auch gleich auf Anhieb funktioniert und mein Node erscheint auf der Map. Somit spare ich mir zukünftig mein Smartphone, bzw. kann damit andere Dinge erledigen. Danke dafür an JP Meijers.
Hi,
das anbinden seines Mappers ist mittlerweile einfacher.
Siehe: https://www.thethingsnetwork.org/docs/applications/ttnmapper/
Grüße,
Oliver
Ja stimmt,
ich muss die Anleitung mal entsprechend anpassen. Hier muss ja nur der Payload Decoder etwas verändert werden und um Hinweise zur Integration erweitert werden.