Dieses Repository enthält die Firmware, die auf einer alternativen Leiterplatte für eine TFA 30.3161 -Regenmesser ausführt (siehe Link am Ende der Seite für weitere Informationen), das das Gerät in die 868 MHz Lorawan -Technologie umwandelt.
Die Messdaten werden an ein Lorawan -Gateway im Bereich des Geräts übertragen (selbst in städtischen Gebieten können 1 km ohne Probleme abgedeckt werden), während der Stromverbrauch wirklich niedrig ist, sodass die Batterien jahrelang dauern.
Ein mit TheThingsNetwork V3 und ChirpStack V4 getestetes JavaScript -Nutzlast -Decoder wird bereitgestellt.

Neben dem versammelten Lora -Regenmessgerät sind die folgenden Werkzeuge benötigt:
Der Prozessor auf der Hauptschaltplatine ist ein Arduino -kompatibler Atmel Atmega328p. Das Projekt nutzt daher die beliebte McCi Arduino LMIC -Bibliothek für Lora. Für die einfache Zusammenstellung und Bereitstellung wird die Plattformio Toolchain verwendet.
Die Lorawan -Implementierung unterstützt OTAA und ABP. Sitzungsdaten (z. B. Sitzungsschlüssel, Rahmenschalter) und der Niederschlagszähler werden von Zeit zu Zeit im SPI -Fram -Chip gespeichert. Dies erfolgt unmittelbar nach dem Beitritt zum Netzwerk und auch nach jedem dritten Datenpaket. Der Vorteil von FRAM gegenüber Flash -Speicher ist eine viel höhere Anzahl von Schreibzyklen, aber es ist immer noch eine gute Idee, sie ein wenig zu begrenzen.
Nach dem Start geht das Gerät zuerst in den Schlafmodus. Es wacht entweder nach dem definierten Zeitintervall oder wenn die Taste gedrückt wird (was einmal pro Minute möglich ist). Wenn es keine gültige Sitzung gibt, wird versucht, zuerst teilzunehmen. Wenn das Datenpaket gesendet wurde, wechselt der Mikrocontroller wieder in den Tiefenschlaf, bei dem der Stromverbrauch auf nur 14 µA sinkt. Das Timing des tiefen Schlafmodus wird realisiert, indem der Watchdog -Timer jede Sekunde aus dem Power Down -Modus aufweckt, wodurch eine Zählervariable, die den Zeitraum bis zum nächsten Getriebe enthält, verringert.
Die von der Regenmesser erzeugten Impulse werden durch einen Hafenwechsel -Interrupt erfasst. Dies ist notwendig, da die meisten Komponenten der Microcontroller -Peripheriegeräte (einschließlich Timer/Zähler) aufgrund des tiefen Schlafmodus inaktiv sind. Der Interrupt weckt den Controller für kurze Zeit, um den Regenschalter zu erhöhen. Danach wird es mit dem nächsten tiefen Schlafzyklus fortgesetzt.
Wenn ein BMP280 -Sensor angeschlossen ist, sind auch Temperatur- und barometrische Druckdaten in der Übertragung enthalten.
Schlafintervall und Regenzähler können über Downlink -Nachricht aktualisiert werden. Verwenden Sie einfach Fport 1 für das Intervall und die FPORT 2 für den Zählerwert, die beide als nicht signierte 16-Bit-Ganzzahl (MSB zuerst) gesendet werden.
Diese Firmware verwendet das Plattformio -Build -System, mit dem alle Toolchain- und Abhängigkeitsbeziehungen automatisch verarbeitet werden. Bitte folgen Sie den Leitfäden auf Platformio.org, um den Platformio Core (für Konsolenbetrieb) oder VS Code & Platformio (IDE) zu installieren. Klonen Sie dann dieses Repository und ändern Sie das richtige Verzeichnis.
Schließen Sie einfach Ihre USBASP mit dem 6 -Pin -ISP -Anschluss an der Tafel an. Bitte stellen Sie sicher, dass der Programmierer auf eine Spannung von 3,3 V eingestellt ist, da der RFM95W nicht 5 -V -tolerant ist! Führen Sie danach pio run -t bootloader -e m328p_isp (oder -e m328pb_isp für atmega328pb) aus, um Bootloader und FuseBits zu programmieren. Danach kann das Gerät einfach über eine serielle Verbindung programmiert werden.
Kopieren Sie die Datei src/config.h.example in src/config.h. Erstellen Sie dann entweder Use_OTAA oder Use_abp, erstellen Sie ein neues Gerät auf Ihrem Lorawan -Server und geben Sie die darin beschriebenen Erstsitzungsdaten in config.h ein. Sie finden den erforderlichen Nutzlast-Decoder in Dokumenten/Payload-Decoder.js.
Sobald alles konfiguriert ist, verbinden Sie den seriellen USB -Adapter mit dem entsprechenden Pin -Header. Führen Sie dann pio run -t upload aus (add -e m328pb für atmega328pb), um die Firmware zu programmieren.
Möglicherweise möchten Sie die serielle Konsole auf Protokollnachrichten über den Befehl pio device monitor überprüfen. Das Netzwerk wird unmittelbar nach dem Ausschalten verbunden. Messwerte werden alle 15 Minuten übertragen.
Sobald die Lorawan -Aktivierung abgeschlossen ist, werden die Sitzungsdaten in FRAM gespeichert und am Boot wiederhergestellt. Ein Hash -Wert von config.h ist enthalten, um Konfigurationsänderungen zu erkennen und die aktuelle Sitzung ungültig zu machen, wodurch das Gerät zur Reaktivierung gezwungen wird. Die Reaktivierung kann auch erzwungen werden, indem die Taste im Batteriefach für einige Sekunden lang gedrückt wird, während die Batterien eingefügt werden.
Die LED auf der Leiterplatte leuchtet auf, wenn ein Paket gesendet wird. Es wird blinzeln, wenn die OTAA -Aktivierung fehlschlägt.
https://www.maltepoegegel.de/?site=lora-raingauge
Diese Firmware wird unter den Bestimmungen der MIT -Lizenz veröffentlicht. Weitere Informationen finden Sie unter Lizenzdatei.