LoRaWAN

LoRa Was??

LoRa funkt im unlizensierten Frequenzband (in Europa 868Mhz) und kann so von jedem ohne Kosten oder Anmeldung benutzt werden. LoRa basiert auf einem Spread-Spektrum Prinzip, das sehr breitbandig bei extrem geringer Sendeleistung funkt. Daher können auch nur sehr geringe Datenmengen verschickt werden. Am besten eignet es sich für Sensorik. Z.B.:

  • Wetterstation
  • Umweltsensoren
  • Parkplatzmanagement
  • Detektion für unser Haselmausprojekt
  • GPS Tracking (z.B. Wetterballon)
  • Alles, was dezentral vernetzt werden soll, ohne, dass es etwas kostet

Auch, wenn das LoRa Protokoll selber proprietär ist (Basiert alles auf einem Chip von Semtech), so ist die ganze Infrastruktur offen für Erweiterungen und sehr gut dokumentiert. Es gibt europaweit eine sehr aktive Community.

Erste Schritte mit einem Sensorknoten

Ich habe mich für das Draguino LoRaWAN Shield entschieden.
Es verwendet ein HopeRF RFM9x Modul mit dem Semtech SX1272 Chip, das man auch einzeln kaufen kann. So können wir später – ähnlich c-trone – einen C-Hack-Sensorknoten bauen.

Die Arduino Software zum HopeRF Modul gibt es hier:
https://github.com/matthijskooijman/arduino-lmic

Die Pinbelegung des Shields muss noch im lmic-Code angepasst werden:

const lmic_pinmap lmic_pins = {
.nss = 10,
.rxtx = LMIC_UNUSED_PIN,
.rst = 9,
.dio = {2, 6, 7},
};

Hier eine ganz simple Beispiel-Sketch, die einfach nur „Hello World“ sendet.
minimal_ttn-template.ino

The Things Network (TTN)

Nun hat man einen Knoten, der Dummy-Daten sendet und was nun?
Jetzt kommt TheThingsNetwork ins Spiel. Auf der ganzen Welt gibt es jede Menge Gateways, die von privaten Betreibern ins TheThingsNetwork eingebunden sind. Dieses macht dann die Daten jedes einzelnen Knotens verfügbar, egal, mit welchen Gateway er gerade über Funk verbunden ist.

Bei uns in der Nähe gibt es jetzt drei Gateways (Stand März 2019).

Das Stammheimer Gateway soll dann final in den c-turm wandern.

Ich will hier nicht das ganze Anmeldeprozedere für TTN nochmal aufschreiben, da es wirklich gut dokumentiert ist. Hier ein paar Links:
TTN Device Registration Doku
Youtube Tutorial für Draguino-LoRa-Shield

Bis es funktionierte, habe ich etwas gebraucht, da ich nicht wusste, dass bei dem ABP-Anmeldeverfahren dieses Flag nicht gesezt sein darf:

Alles Andere ist so gut beschrieben, dass ich hie keine Details erklären muss.

Weiterverarbeitung der Daten

Wenn du einen Account bei TTN angelegt hast, dann kannst du in der Console unter deinem angemeldeten Device die Daten sehen, die das Netzwerk von deinem Knoten empfängt. Allerdings ist das ein recht langweiliger String von Hex-Zahlen.
Um den weiter zu verarbeiten, kannst du ihn vom TTN speichern lassen und per HTTP auf die Daten zugreifen. Die bleiben dort 7 Tage lang gespeichert.
Wie das geht findest du unter Integrations in deinem TTN Account.

TTN kann die Daten aber auch an einen Server schicken, auf dem z.B. NodeRed läuft. So etwas werden wir dann vielleicht im C-Hack machen.

Oder man benutzt einen öffentlichen Server wie z.B. Cayenne
Hier kann man sich kostenlos einen Account verschaffen und dann Daten hübsch anzeigen, auch auf dem Handy:

Hierzu muss der Knoten im CayennLPP-Format senden.
Das ist keine Wissenschaft und wird von einer Arduino Library erledigt, die es hier gibt:
github

So sieht dann das Verschicken von ein paar Messwerten in der Arduino-Sketch aus:

lpp.reset();
lpp.addTemperature(1, 22.5);
lpp.addBarometricPressure(2, 900.21);
lpp.addGPS(3, 52.37365, 4.88650, 2);
if (ev == EV_TXCOMPLETE) os_setTimedCallback(&sendjob, os_getTime()+sec2osticks(TX_INTERVAL), do_send);

LoRaWAN Radtour um Stammheim

Um die Reichweite auszuprobieren, haben wir eine kleine Radtour gemacht. Auch wenn LoRa theoretisch eine Reichweite von 15km hat und auch durch Mauern dringt, stellen Hügel eine unüberwindbare Hürde dar. Wald und Gestrüpp durchdringt Lora aber problemlos.

Die Sterne zeichen an, von wo aus wir die Dumy-Daten noch problemlos ins TheThingsNetwork senden konnten.

Es gibt noch viel zu tun…

  • Das Gateway muss in den C-Turm
  • Wir werden einen C-Hack Sensornoten designen
  • Es gibt noch viel zu Erkunden auf der Software Seite
  • Natürlich kann man auch Daten zum Knoten senden, dass eröffnet weitere Möglichkeiten