Wohnmobil oder Gartenhaus mit LoRaWAN überwachen

Einbrüche und Diebstahl in und aus Gartenhäusern und Wohnmobilen sind ein großes Ärgernis. Die Überwachung mit Bewegungsmeldern wird dann problematisch, wenn eine Übertragungsstandard wie z.B. WLAN aufgrund der Entfernung nicht verfügbar ist. Daher stelle ich auf der Basis von LoRaWAN eine einfache Lösung vor, die kaum Strom braucht und geografisch sehr flexibel ist. Grundinformationen zu LoRaWAN habe ich bereits im Artikel LoRaWAN mit eigenem Gateway einrichten veröffentlicht.

Hardware

Um einen Bewegungsmelder mit LoRaWAN zu realisieren habe ich das von ELV angebotene  ELV-Modulsystem für LoRaWAN verwendet (Loris). Mit diesem System kann man sehr flexibel Komponenten für einen Sensor oder Aktor, der über LoRaWAN kommunizieren soll, zusammenstecken. Dies funktioniert i.d.R. sogar, ohne irgendeinen Lötkolben in die Hand nehmen zu müssen.

Als Basis ist immer eine LoRIS-Base ELV-BM-TRX1 erforderlich, über die die Kommunikation per LoRaWAN erfolgt. Die LoRIS-Base besitzt einen USB-C Anschluss zur Verbindung mit einem PC oder einer externen Spannungsversorgung.

Zusätzlich benötigt man das ELV-PIR1 Modul welches aus einem Bewegungsmelder und eine Helligkeitssensor besteht. Ebenso besitzt das Modul einen Opencollector-Ausgang, über den man mittels eines Relais auch andere Geräte schalten könnte. Ich benutze das in meinem Beispiel allerdings nicht.

Zur Stromversorgung verwende ich zusätzlich noch das ELV Powermodul LR03, in das man eine AAA-Micro Zelle einlegen kann. Bekanntermaßen braucht LoRaWAN zur Kommunikation unglaublich wenig Strom, so dass mit einer Batterie das Gerät bis zu mehrere Jahre laufen kann. Alternativ sind auch andere Module für die Stromversorgung mit mehr Kapazität verfügbar (inkl. Solarmodul, etc.).

Als Gehäuse kann man das ELV-MH0101a verwenden. In meiner Umsetzung habe ich ein eigenes Gehäuse entworfen und mit dem 3D-Drucker passgenau gedruckt.

Softwareinstallation

Die LoRIS-Base wird immer mit einer Standardfirmware ausgeliefert, die die Funktionen des Moduls wie z.B. einfache Schalter unterstützt. Um den Bewegungsmelder zu unterstützen, muss eine andere Firmware aufgespielt werden.

Auf der Produktseite des PIR1-Moduls im ELV-Shop befindet sich die Firmware, die man sich von dort runterlädt. Die Firmwaredatei hat eine .hex-Endung und befindet sich in einem ZIP-Archiv.

https://de.elv.com/elv-pir1-applikationsmodul-pir-bewegungsmelder-elv-am-pir1-158570?fs=185688875

Das Flashen erfolgt über das ELV-Base Flasher Tool. Dieses befindet sich in einem ZIP-Archiv im Downloadbereich der LoRIS-Base unter

https://de.elv.com/elv-lw-base-experimentierplattform-fuer-lorawan-elv-bm-trx1-156514

Vor der Benutzung empfehle ich, die PDF-Anleitung in diesem ZIP-Archiv zu lesen.

Die Installation des Flasher Tools erfolgt als Administrator. Anschließend wird das Tool aufgerufen.

Das eigentlichen Flashen mit dem Tool ist hervorragend in der beiliegenden PDF-Anleitung beschrieben. Als Firmwaredatei wird die soeben für das ELV-PIR1 heruntergeladene .hex-Datei angewählt.

Nachdem mit dem grünen Haken der erfolgreiche Flashvorgang bestätigt wurde kann das Tool beendet werden.

Hardware zusammenstecken.

Nun kann man die Module zusammenstecken.

Unten befindet sich die Loris-Base, darauf wird das Powermodul mit der Batterie gesteckt und oben wird das PIR-Modul aufgesteckt. Alles zusammen schiebe ich anschließend in ein Gehäuse. Hat man das ELV-Gehäuse gekauft, dann muss mit einem Stufenbohrer eine ca. 13mm große Öffnung gebohrt werden, so dass der obere Teil des Sensors aus dem Gehäuse herausragt. Ich habe mit das Gehäuse allerdings passend mit einer Öffnung sowie einer Öse (zum Befestigen mit einer Schraube) passend gedruckt.

Payload decodieren

Der Sensor wird nun als neue Applikation im TTN-Netz eingerichtet. Ich verweise hierzu auf meine Artikel Füllstandsmessung mit LoRaWAN, in dem die Einrichtung erklärt wird.

Anschließend kann man den Payload Parser von der ELV-Seite Seite des PIR Moduls im Downloadbereich kopiereren und im Application Modul unter „Payload Formatters/Uplink“ eingefügen.

Die Daten werden dann korrekt interpretiert. Diese kann man sich über den Menüpunkt Livedata anschauen. Damit man diese versteht gebe ich folgende Hinweise:

Die Payload unterscheidet grundsätzlich zwei Zustände, die in der TX_Reason ausgegeben werden. In Abhängigkeit davon werden auch unterschiedliche Bytezahlen zurückgegeben.

TX_Reason #Bytes, die empfangen werden Inhalte der Bytes Kommentar
Timer_Event 5 Bytes TX_Reason und Voltage der Batterie Das Event wird automatisiert, d.h. ohne Auslöser durch den Bewegungsmelder generiert.
Input_Event 6 Bytes TX_Reason, Voltage der Batterie und ob Input_1 active ist Der Input 1 Zustand gibt an, ob der Bewegungsmelder eine Bewegung erkannt hat.

D.h. wenn der Input Event als Active ausgegeben wird, wurde eine Bewegung erkannt und man kann reagiren.

Konfigurationswerte ändern

Der Sensor hat eine Vielzahl von Konfigurationswerten, die in der Anleitung beschrieben sind. Hierzu wird ein Bytefolg aus diesen Werten gebildet, die dann an den Sensor übermittelt wird.

Für die Standardkonfiguration lautet diese Bytefolge

0C 05 19 22 18 02 85 85

Möchte man den Lichtsensor (zu empfehlen) ausschalten lautet diese Bytefolge

0C 05 19 22 10 02 85 85

Hierzu geht man in "Applications /End Device / Messaging / Downlink". Im Feld FPort wird 10 als Kommunikationskanal eingetragen und in "Payload" die Bytefolge.

Abfragen der Daten in Node-Red

Auch hierzu verweise ich  auf meine Anleitung Füllstandsmessung mit LoRaWAN insbesondere die Kapitel "Daten an MQTT-Server senden" sowie "Daten mit NodeRed verarbeiten". Zu diesem Zweck wird unter "Integrations/MQTT" für die Application ein neuer Nutzer angelegt sowie ein neuer API-Key vergeben. Dies sind die Accountdaten, um nachher in Node-Red die Werte abzufragen.

Mit dem MQTT-Explorer kann man diese Daten vorab auch auf dem MQTT-Server von TTN selber kontrollieren.

ACHTUNG: Wenn man in Node-Red bereits einen LoRaWAN-Sensor eingerichtet hat, dann muss man für diesen Sensor wieder eine neuen Server im MQTT-In Node einrichten, da man ja neue Accountdaten für diesen Sensor angelegt hat.

Unter Node-Red werden die Daten dann über folgende Funktion vom MQTT-Server ausgelesen und weiterverarbeitet.

Die Daten kann man nun für Alarmmeldungen z.B. über Nachrichtendienste verwerten.