Aus Linux-Magazin 06/2019

Aus dem Alltag eines Sysadmin: Bodenfeuchte drahtlos messen

Abbildung 1: Der per Bluetooth funkende Mi-Flora-Sensor ist ein Abfallprodukt aus dem Smartphone-Gadget-Markt chinesischer Prägung.

Mi Flora heißen die Sensoren, die Kolumnist Charly Kühnast seit Neuestem in die heimische Scholle rammt. Die funken per Bluetooth erst mal nur Pferdemist, mit dem richtigen Werkzeug und einem Raspi fährt Charly aber im Nu eine reiche Ernte ein.

Vor geraumer Zeit habe ich hier über mein kleines Pomodo-Pi-Projekt [1] geschrieben. Dabei überwache ich die Bodenfeuchtigkeit in den Tomatentöpfen und lasse bei drohender Trockenheit nachgießen, indem sich automatisch ein Magnetventil öffnet, wenn die Feuchtigkeit einen bestimmten Wert unterschreitet. Die Vegetronix-Sensoren, die ich dazu benutze, sind zwar hochwertig und langlebig. Doch leider benötigen sie einen extra A/D-Wandler, und ihre Verkabelung bedeutet einigen Aufwand.

Inzwischen habe ich mir Feuchtigkeitssensoren des Modells “Mi Flora” zugelegt (Abbildung 1). Sein Hersteller, Xiaomi, sieht vor, dass es seine Daten in eine Smartphone-App sendet. Die habe ich aber nie installiert, ich hole mir die Daten direkt per Bluetooth ab.

Bei mir läuft das Ganze auf einem Raspberry Pi, aber natürlich tut’s jeder Linux-PC, der mit Bluetooth-Hardware ausgestattet ist. Software-seitig benötige ich die Pakete »bluez«, »python3« und »python-pexpect«, die schnell installiert sind.

Bluetooth-Witterung aufnehmen

Der nächste Schritt: Ich scanne die Umgebung nach Bluetooth-Sendern ab. Das geht normalerweise mit dem Kommando »sudo hcitool scan«, da aber der Sensor das Low-Energy-Übertragungsverfahren beherrscht, scanne ich mit »sudo hcitool lescan«. Als Ergebnis bekomme ich eine Liste der MAC-Adressen und Kurzbezeichnungen der Geräte in der Nähe, die Bluetooth Low Energy sprechen. Darunter finde ich auch meinen Sensor:

[...]
C4:7C:8D:6A:5E:17 Flower care

Jetzt habe ich die MAC-Adresse und will sehen, ob der Sensor Daten liefert:

sudo gatttool --device=C4:7C:8D:6A:5E:17 --char-read -a 0x35

Die Rückmeldung muss mir nicht auf Anhieb etwas sagen:

Characteristic value/descriptor: aa bb cc dd ee ff 99 88 77 66 00 00 00 00 00 00

Wichtig ist, dass überhaupt eine Antwort kommt. Denn auf Github gibt es ein kleines Tool, das die Daten aus dem Sensor interpretieren kann. Ich klone es mit

git clone https://github.com/open-homeautomation/miflora.git

in mein aktuelles Verzeichnis. Es enthält ein kleines-Python-Skript namens »demo.py«, das verschiedene Messwerte aus dem Sensor ausliest und darstellt. Ich führe es mal aus:

python3 /home/pi/miflora/demo.py --backend gatttool poll C4:7C:8D:6A:5E:17

Voilà! Die Ausgabe schaut gut aus:

Getting data from Mi Flora
FW: 3.2.1
Name: Flower care
Temperature: 23.0
Moisture: 40
Light: 193
Conductivity: 247
Battery: 100

Die Feuchtigkeit ist in Prozent angegeben, die Lichtstärke in Lux. Hinter »Conductivity« erscheint die Leitfähigkeit in Mikrosiemens – sie sagt jedenfalls mittelbar etwas über den Nährstoffgehalt des Bodens aus.

Damit ist mein elektronischer Grün-Daumen (im Moment) ausgewachsen (Abbildung 2), und ich lege den Arm lässig auf die bald öffnende Salatbar.

Abbildung 2: 24 Stunden im Leben einer Topfpflanze unter Charlys Obhut.

Abbildung 2: 24 Stunden im Leben einer Topfpflanze unter Charlys Obhut.

Infos

  1. Charly Kühnast, “Nächste Station: Gießen”: Linux-Magazin 06/15, S. 51, https://www.linux-magazin.de/ausgaben/2015/06/einfuehrung2/

Der Autor

Charly Kühnast administriert Unix-Systeme im Rechenzentrum Niederrhein. Zu seinen Aufgaben gehören Sicherheit und Verfügbarkeit der Firewalls und der DMZ.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 1 HeftseitePreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben