Startseite>Minimalinvasives Imkern mit dem Raspberry Pi
Aus Raspberry Pi Geek 04/2019

Minimalinvasives Imkern mit dem Raspberry Pi

© Vasyl Kosolovskyy, 123RF

Bienenflüsterer

Lars Jurzik

Bienenzüchter, die ihre Völker besser kennenlernen möchten, müssen die fleißigen Insekten nicht pausenlos stören. Mit einem Raspberry Pi und verschiedenen Sensoren überwachen sie Temperatur, Luftfeuchtigkeit und bald auch das Gewicht des Bienenstocks.

Die Winter im Sauerland sind lang, aber vor allem wechselhaft. Mal schneit es im Oktober, mal herrschen über Weihnachten frühlingshafte 15 Grad. Die Imker in der Gegend sind darauf eingerichtet und füttern schon im Frühherbst nach der letzten Honigernte für den Winter ein: Je nach Größe des Bienenvolks wandern mehrere Liter Zuckerlösung in die Insektenbehausungen, die sogenannten Beuten. Fallen die Außentemperaturen, heißt es irgendwann: Klappe zu, Mäusegitter vors Flugloch, und im April sehen wir uns wieder.

Da Imker während der Wintermonate die Beuten normalerweise nicht öffnen, wissen sie in der Regel auch nicht, ob es dem Volk darin gut geht. Inspiriert vom Hiveeyes-Projekt [1] und dem Open-Hive-Monitoring-System [2] planen die Autoren eine eigene Monitoring-Lösung für ihre Bienenvölker. Die Hobbyimker wollen zunächst die Temperatur beobachten, das System in einer späteren Ausbaustufe aber noch um eine akustische Warnung und eine eigene Stockwaage erweitern.

Zum Einsatz kommt ein Raspberry Pi 2 Model B mit Raspbian “Stretch” auf Basis von Debian 9, bestückt mit einem Temperatur- und Luftfeuchtigkeitssensor DHT11. Das Autorenteam experimentierte ebenfalls mit einem DS18B20-Temperatursensor und einem aktiven Lautsprecher, die sie über ein 40-Pin-GPIO-Extension-Board und ein Breadboard mit dem RasPi verbanden.

DHT11-Sensor anschließen

Den digitalen Temperatur- und Feuchtigkeitssensor DHT11 gibt es für wenige Euro im Handel. Er liefert die Temperatur in Grad Celsius und die relative Luftfeuchtigkeit in Prozent. Die Bastler verbanden den Sensor im ersten Versuch direkt mit dem RasPi. Beim Auslesen hilft die Python DHT Sensor Library [3]. Nach dem Installieren der beiden Pakete build-essential und python3-dev gilt es, die Bibliothek aus dem Github-Repository auszuchecken und auf dem Rechner einzuspielen (Listing 1).

Listing 1

$ git clone https://github.com/jugend-programmiert/Python_DHT
$ cd Python_DHT
$ sudo python3 setup.py install

Danach lässt sich die Library mit import in eigene Python-Skripte einbinden. Das Skript dht11_einfach.py aus Listing 2 zeigt ein Beispiel, das die Daten des Sensors ausliest und auf der Konsole ausgibt.

Listing 2

import Python_DHT
sensor = Python_DHT.DHT11
pin = 4
humidity, temperature = Python_DHT.read_retry(sensor, pin)
print("dht temperature="+str(temperature)+",humidity="+str(humidity))

Listing 3 zeigt einen typischen Aufruf des Skripts samt Rückgabewerten. Sie legen es unter /usr/local/bin/ ab und kümmern sich als Nächstes um die Datenbank und den Kollektor.

Listing 3

$ python3 dht11_einfach.py
dht temperature=17.0,humidity=49.0

Datenbank einrichten

Die Influxdata-Paketquelle [6] steuert sowohl Influx DB [4] als auch Telegraf [5] bei. Um beides zu installieren, tragen Sie zunächst das Repository in die Datei /etc/apt/sources.list.d/influxdb.list ein und fügen danach dessen GnuPG-Schlüssel hinzu (Listing 4, erste Zeile). Nach dem Aktualisieren der Paketliste via apt update spielen Sie dann die beiden Pakete influxdb und telegraf ein.

Für die Datenbank aktivieren Sie den automatischen Start beim Booten und Initialisieren des Servers mit den Einträgen in den Zeilen 2 und 3 aus Listing 4. Mit dem Aufruf aus Zeile 4 starten Sie den Influx-Kommandozeilenclient. Darin legen Sie den neuen Benutzer admin sowie eine neue Datenbank namens telegraf an (Zeilen 8 und 9).

Listing 4

$ curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
$ sudo systemctl enable influxdb
$ sudo systemctl start influxdb
$ sudo influx
Connected to http://localhost:8086 version 1.5.1
InfluxDB shell version: 1.5.1
> CREATE USER admin WITH PASSWORD '****' WITH ALL PRIVILEGES
> CREATE DATABASE telegraf
> exit

In der Influx-DB-Konfigurationsdatei /etc/influxdb/influxdb.conf gilt es, unter [http] den Webserver zu aktivieren (Listing 5, Zeilen 1 bis 3). Nach einem Neustart des Diensts über systemctl restart influxdb geht es mit der Telegraf-Konfiguration weiter.

Listing 5

[http]
  enabled = true
  bind-address = ":8086"
[[outputs.influxdb]]
  timeout = "5s"
  username = "admin"
  password = "****"
[[inputs.exec]]
    commands = ["python3 /usr/local/bin/dht11_einfach.py"]
    interval = "60s"
    data_format = "influx"

Gut gesammelt

Das Benutzerkonto telegraf muss Mitglied in der Gruppe gpio sein, damit der Kollektor die Werte vom GPIO-Pin lesen darf. Dafür sorgen Sie mit dem Kommando usermod -a -G gpio telegraf.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
€0,99 – Kaufen
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland