Inhaltsverzeichnis
Dragino LoRa GPS Hat für den Raspberry Pi
Neben dem Dragino Arduino Shield gibt es auch eine Erweiterung für den Raspberry Pi, die zusätzlich auch noch einen GPS Empfänger besitzt. Mit einem Preis von ~25-35 EUR liegt das Shield preislich im Mittelfeld der Entwicklungsboards. Neben einem Standard Knoten kann man mit dem Shield aber, wie immer, auch ein Single Channel Gateway betreiben.
Da die Anleitungen im Netz irgendwie immer etwas durcheinander erscheinen, habe ich hier einfach mal aufgeschrieben, wie ich den Dragino LoRa GPS Hat an meinem Raspberry Pi Zero W als Knoten angesprochen habe.
Hardwareanpassungen
Entgegen einiger Foreneinträge, die man im Netz noch so findet, sind Hardwareanpassungen nur bei einer Hardwarerevision kleiner v1.3 notwendig. Solltet ihr also ein Hat haben, das bereits die Hardwarerevision v1.3 oder größer besitzt, dann braucht ihr nichts mehr zu machen - der Hat läuft direkt „out of the box“.
Alle Anderen müssen noch DI1 und DI2 des LoRa Transceivers auf dem Hat verbinden. Das ist auch nicht weiter schwer (nur zwei Kabel) und wird gut im LMIC Repository für den Dragino LoRa GPS Hat beschrieben.
Installation
Den Raspberry Pi, wenn nicht bereits geschehen, mit der Raspbian Distribution ausstatten. Wie das geht, wird auf der unzähligen Seiten und auch der offiziellen Seite der Raspberry Pi Foundation beschrieben, deshalb werde ich hier nicht weiter darauf eingehen.
Nach der Installation müsst ihr euch mit der Konsole des Raspberry Pi verbinden - sei es über die Benutzeroberfläche direkt am System oder per SSH über das Netzwerk.
Aktiviert nun SSH (in „5 Interfacing Options - P4 SPI“):
sudo raspi-config
Danach installiert ihr wiringpi. Mit dieser Bibliothek werden die GPIOs des Raspberry Pi angesprochen. Sie wird benötigt, um mit dem Hat zu kommunizieren:
sudo apt-get install wiringpi
Als nächstes benötigen wir die Bibliothek, die den LoRaWAN Stack implementiert. In den meisten Fällen ist das die LMIC Bibliothek. Auf GitHub gibt es eine entsprechende Portierung für den Raspberry Pi.
wget https://github.com/wklenk/lmic-rpi-lora-gps-hat/archive/master.zip unzip master.zip cd lmic-rpi-lora-gps-hat-master
Das war es auch schon. Wenn ihr jetzt in das Verzeichnis examples wechselt, könnt ihr die Beispiele der LMIC Bibliothek ausprobieren. Ich habe zum Testen das Beispiel join, das eine OTAA Personalisierung drchführt, verwendet. Wechselt dazu in das entsprechende Verzeichnis
cd examples/join
und passt dort die main.c Datei mit dem Editor eurer Wahl an. Hier müsst ihr die APPEUI (Application EUI), die DEVEUI (Device EUI) und den DEVKEY (App Key) eintragen. Achtet aber darauf, dass die APPEUI und die DEVEUI im LSB Format angegeben werden müssen, d.h. sie sind einmal gedreht anzugeben. Die Konsole des The Things Network hilft euch dabei aber weiter und ihr braucht die Werte dann nur noch per Copy und Paste übertragen.
Wenn ihr alles richtig gemacht habt, könnt ihr mit
make
den Build Prozess für das Programm starten. Wenn keine Fehlermeldungen angezeigt werden, findet ihr das Programm im build Ordner und könnt es dort starten.
cd build sudo ./join.out
Wenn alles funktioniert hat, solltet ihr eine ähnliche Ausgabe auf eurer Konsole sehen
000000000 HAL: Initializing ... 000000011 HAL: Detected SX1276 radio module. 000000013 HAL: Set radio RST pin to 0x00 000000019 HAL: Wait until 000000020 ms 000000020 HAL: Set radio RST pin to 0x02 000000021 HAL: Wait until 000000026 ms 000000027 HAL: Receiving ... 000000042 Debug: Initializing 000000043 Debug: JOINING 000005771 Debug: EV_TXSTART 000005774 HAL: Sending ... 000010837 HAL: Receiving ... 000010838 HAL: Wait until 000010838 ms 000010910 Debug: JOINED
Das war es schon… euer Dragino Shield funktioniert damit mit dem Raspberry Pi.