LoRa Pulse Counter
Auswertung von Gaszählern und anderen Impulsgebern via LoRaWAN
Im Zuge der Integration weiterer Geräte in mein Smarthome kam mir die Idee, auch den Gasverbrauch der Heizung zu überwachen. Der von meinem Netzbetreiber installierte Zähler Elster Kromschröder BK-G4 verfügt über einen Permanentmagneten in der letzten Stelle des mechanischen Zählwerks. Unterhalb von diesem lässt sich ein Reedkontakt montieren, der so bei jeder Umdrehung einen Impuls erzeugt.
Leider befindet sich keine Steckdose in der Nähe, eine batteriebetriebene Funklösung wäre daher optimal. Mein Blick fällt auf eine herumliegende Platine des LoRaWAN Regenmengenmessers, den ich kürzlich entwickelt habe. Die kann man doch dafür modifizieren!
Modifikationen
Bei dem Regenmesser bewegt sich der Magnet am Sensor vorbei, sobald die Kippwaage auf einer Seite gefüllt wurde, was einen sehr kurzen Impuls erzeugt. Beim Gaszähler hingegen sind die Impulse deutlich länger. Außerdem ist es möglich, dass das Zählwerk so stehen bleibt, dass der Reedkontakt permanent im geschalteten Zustand verbleibt. Der dann durch den internen Pull-Up-Widerstand im Mikrocontroller fließende Strom erhöht die Ruhestromaufnahme signifikant. Ich habe daher die Firmware angepasst, um diesen mit Setzen des Flags "-D USE_EXTERNAL_PULLUP" zu deaktivieren. Stattdessen wird hier der sonst unbestückte Widerstand R3 mit einem deutlich hochohmigeren Wert von 100 kOhm bestückt. Das Flag wird vor dem Compilieren in der Datei platformio.ini in der mit "build_flags" beginnenden Zeile angehängt. Um den Kontakt zu entprellen, wurde zusätzlich ein 100nF Kondensator auf der Platinenrückseite über die Anschlüsse des Reedkontaktes geschaltet.
Statt der Batterieplatine des Regenmessers wird ein 2xAA Batteriehalter direkt an die ursprünglich dorthin führenden Kontakte angelötet. Ein SMD-Taster findet ebenfalls direkt auf der Hauptplatine Platz. Die 868MHz Antenne vom Typ Yageo ANTX150P116B08683 klebt im oberen Gehäuseteil.
Reedkontakt
Zur Montage des Reedkontaktes verwende ich einen 3D gedruckten Halter. Das Modell mit der Nummer 2749173 ist kostenfrei bei Thingiverse herunterladbar. Der verdrahtete Kontakt wird in passender Einbaulage mit 2-Komponenten-Kleber eingegossen. Als Kabel verwende ich abgeschirmte Diodenleitung, wobei der Schirm auf Masse liegt.
Gehäuse
Der Aufbau passt in eine Hensel DP9025 Abzweigdose. Hierfür habe ich eine Halteplatte entworfen, die ebenfalls 3D gedruckt ist. Sie wird in der Dose verschraubt. Die Leiterplatte lässt sich einrasten, ein Trennsteg fixiert den Batteriehalter im unteren Teil. Dieser kann zusätzlich mit einem Klett-Kabelbinder gegen Herausfallen gesichert werden.
Payload Decoder
Eine kleine Anpassung am Payload Decoder ist ebenfalls nötig, da hier statt mm Niederschlag der Gasverbrauch in Kubikmeter erfasst werden soll. Zeile 40 wird wie folgt modifiziert:
Der zurückgegebene Wert ist ein Absolutwert des Zählerstandes im Mikrocontroller, bei der Auswertung muss daher wie auch beim Regenmengenmesser die Veränderung über den gewünschten Zeitraum betrachtet werden.