Der Programmierer und das Gärröhrchen

Nach langer Zeit ist es endlich mal wieder soweit. Ich habe mich aufgerafft einen neuen leckeren Met anzusetzen. Und weil ich es auch schon länger vorhatte, habe ich die Gelegenheit genutzt den Gärprozess ein wenig zu besser überwachbar zu machen.
Angeregt zu dem ganzen wurde ich durch folgendes Projekt:
http://raspberrypihobbyist.blogspot.com/2015/04/fermentation-detector.html

Was meine ich damit? Nun, während der Herstellung von Met, möchte man gerne die Gäraktivität im Auge behalten. Das tut man um zu sehen, wann die erste Gärung abgeschlossen ist. Das ist der Zeitpunkt um den jungen Met vom Hefelager abzuziehen.
Nun bin ich im sonstigen Leben Software-Entwickler und bastle eigentlich ganz gerne. Was lag also näher als sich einen Raspberry Pi zu schnappen, einen Sensor, Python und ein bisschen Software, um die Gärtätigkeit zu loggen und auszuwerten.

Zutaten (Hard- und Software)

Gärröhrchen mit IR und DHT22

Folgende Zutaten (für den Logger, lies hier für Metzutaten) brauchen wir:

Vorbereitung des Raspberry PI

Der Raspberry Pi wird nach Anleitung mit einem frischen Raspian versehen und koniguriert. Die Anleitung findet man auf der Raspberry Pi Homepage. Stellt sicher, das ihr euren Raspberry mit eurem WiFi verbindet und das ihr den SSH Demon aktiviert, damit ihr euren Raspberry auch fernwarten könnt. Ihr könnt das natürlich auch wahlweise per VNC machen wenn ihr wollt.

Installation von InfluxDB und Grafana

Die InfluxDB wollen wir dazu verwenden, zu loggen, wenn ein Bläschen im Gärrohr registriert wird und in bestimmten Zeitabständen auch die Temperatur und die Luchtfeuchtigkeit. Das ermöglicht uns hinterher diese drei Messwerte in korrelation zu setzen.
Ich benutze in diesem Fall InfluxDB weil es eine push-basierte Time-Series Datenbank ist, so das ich in dem Moment wenn ein Ereignis einritt, die Daten übermitteln kann.
Eine Pull-basierte Time Series Datenbank wie zum Beispielt Prometheus würde erweiterten Aufwand beim Code für die Sensoren erfordern.
Um die InfluxDB Datenbank zu konfigurieren, benutze ich InfluxDBStudio. Damit kann man neue User und Datenbanken recht komfortabel erzeugen wenn man sich nicht mit der Kommandozeile herumschlagen möchte-
Grafana werden wir benutzen, um die Daten aus der InfluxDB ansprechend zu visualieren. Es ermöglicht uns die InfluxDB als Datenquelle einzurichten und komfortabel Abfragen einzurichten die dann auf verschiedene Art und Weise visualisiert werden können. In diesem Artikel werde ich allerdings nicht darauf eingehen. Vielleicht hole ich das später mal nach 😉

Visualisierung der Daten durch Grafana

Wenn jetzt also der Raspberry Pi fertig installiert und konfiguriert ist, geht es daran die InfluxDB und Grafana zu installieren. Hierzu gibt es bereits einen ausführlichen Artikel, den ich als Referenz herangezogen habe.
Da der Artikel aus dem Jahr 2018 ist, gibt es zu diesem Zeitpunkt allerdings schon neuere Versionen der Software, so dass ihr auf den dort verlinkten Homepages, nach neueren Packages suchen solltet, die ihr verwenden wollt

Die Sensoren

Die Sensoren am Raspberry PI

Die Sensoren sind sehr einfach anzuschliessen, da sie bereits auf Platinen gelötet sind und direkt verwendet werden können.
Der IR Sensor wurde an PIN 4 (5V), PIN 6 (Gnd) und an PIN8 (GPIO 14) angeschlossen, so dass die Signale an Channel 14 ausgelesen werden können.
Der Temperatur Sensor wurde an PIN 1 (3,3V), PIN 7 (GPIO 4) und PIN 9 (Gnd) angeschlossen, so das diese Signale an Channel 4 ausgelesen werden können.
Diese Channels müssen hinterher an die Python-Scripte übergeben werden, die dann die Signale lesen und in die InfluxDB schreiben.

Python-Magic

Nun, da wir die beiden Softwares, InfluxDB und Grafana, installiert haben, müssen wir eigentlich nur noch die Sensoren anschliessen und den Python-Code auf den Raspberry bringen.
Den Code dafür habe ich auf Github öffentlich unter GPL-3.0 zur Verfügung gestellt. Ihr dürft den gerne verwenden und verbessern.
Um den Code zu verwenden braucht ihr noch einige Libraries, die ihr sehr einfach über den pip manager installieren könnt. Loggt euch per SSH auf euren Raspberry Pi ein und führt folgenden Befehl aus:

sudo pip install RPi.GPIO influxdb Adafruit_DHT

Nun müsst ihr nur noch den Code von Github klonen

sudo mkdir /code
cd /code
sudo git clone https://github.com/MatrixCrawler/fermentation-logger.git .

Wenn ihr den Code erfolgreich geklont habt, dann könnt ihr das auslesen des Bubble-Sensors und des Temperatur-Sensors einfach über die Kommandozeile starten. Um die Sensoren zu starten wenn der Raspberry Pi startet, tragt die beiden Befehle in die /etc/rc.local ein, direkt for der exit anweisung.
Die Parameter müsst ihr natürlich entsprechend eurer Umgebung setzen. Das hier sind nur Beispiel-Werte

/code/sensor.py -H localhost -U InfluxUsername -P influxPassword -D influxDB -M influxMeasurementName -C GPIOChannel

/code/temp.py -H localhost -U InfluxUsername -P influxPassword -D influxDB -M influxMeasurementName -C GPIOChannel

Das sollte schon ausreichen, das die Daten gesammelt werden. Happy Logging!

Schreibe einen Kommentar