Original-URL des Artikels: https://www.golem.de/news/raspberry-pi-im-garteneinsatz-wasser-marsch-1503-113015.html    Veröffentlicht: 26.03.2015 12:04    Kurz-URL: https://glm.io/113015

Raspberry Pi im Garteneinsatz

Wasser marsch!

Lassen sich mit dem Bastelcomputer Raspberry Pi wirklich so einfach Projekte umsetzen? Auch für Linux-Novizen und Python-Anfänger ist das nicht unmöglich. Ein Selbstversuch.

"Lazy Gardening" heißt der neueste Gartentrend, über den sogar das Kleingärtnerfachblatt Gartenfreund jüngst ausführlich berichtet hat. Was liegt dem technikaffinen Gärtner näher, als einen Computer lästige Arbeiten übernehmen zu lassen? Mit dem Raspberry Pi müsste sich eine Lösung finden lassen, um von der heimischen Couch aus per SMS die Tomaten zu gießen und den Rasen zu sprengen. Schließlich ist er ein günstiger Bastelrechner, mit dem sogar Schulkinder das Programmieren lernen sollen. Also los.




Am Anfang des Projekts steht die Überlegung, einen handelsüblichen analogen Regenmesser digital aufzurüsten. Das Raspberry Pi soll kontinuierlich die Impulse eines Durchflussmessers zählen, der unter einem durchgebohrten Regenmesser befestigt ist. Per UMTS-Verbindung sollen die Daten dann regelmäßig ins Internet übertragen werden, so dass sie von einem beliebigen Ort aus abgelesen werden können. Denn trotz Regenradars und anderer Wetterprognosen: Ob es im Garten tatsächlich geregnet hat, lässt sich aus der Ferne eben doch nicht erkennen.

So schnell die Regenmessung revolutioniert?

Der große Vorteil des Raspberry Pi liegt in der individuell programmierbaren Ein-/Ausgabeschnittstelle (GPIO). Mit Hilfe eines Python-Programms sollte sich ein handelsüblicher Durchflussmesser damit auswerten lassen. Python gilt in den Raspberry-Anleitungen als leichte Programmiersprache. Doch ich fühle mich schnell an den Spruch von Exfußballbundestrainer Berti Vogts erinnert, wonach es keine leichten Gegner mehr gibt.

Wer 50 Zeilen Code braucht und nur 20 davon im Internet findet, muss sich eben doch gewisse Grundkenntnisse von Python aneignen. Was in diesem Fall etwas schwieriger ist als für einfache Shell-Skripte, die ebenfalls sinnvoll auf dem Raspberry Pi eingesetzt werden können. Schon die Frage, wie ein Python-Prozess am besten beendet werden soll, scheint nur etwas für Profis zu sein.

Der Code für ein einfaches Zählprogramm auf Interrupt-Basis ist aber schnell gegoogelt. Nachdem die Kontakte des Durchflussmessers auf eine Steckerleiste gelötet wurden, lässt sich der Regenmesser schon testen. Und siehe da: Der Zähler spuckt genügend Impulse aus, um eine genaue Anzeige der Durchflussmenge zu erhalten. So leicht lässt sich Regenmessung revolutionieren? Leider dann doch nicht. Simuliert man einen tatsächlichen Regenguss, laufen die Tropfen einfach durch den Sensor, ohne die Flügelrädchen mitzunehmen. Die Menge ist zu gering. Dem Hersteller zufolge soll möglichst keine Luft in den Durchflussmesser gelangen. Gegen diese physikalischen Gesetzmäßigkeiten ist auch das Raspberry Pi machtlos.

Komplizierte Fernverbindung

Wir müssen also auf konventionelle Regenmesser nach dem Wippprinzip zurückgreifen. Diese gibt es schon recht günstig in Kombination mit einer Wetterstation, die dazu noch Daten zu Temperatur, Luftdruck, Luftfeuchtigkeit sowie Windgeschwindigkeit und -richtung liefert. Es gibt reichlich Anbieter auf dem Markt, deren Geräte auch mit Linux kompatibel sind und mit einem Raspberry Pi ausgewertet werden können. Das günstigste dürfte ein Kombisensor-Bausatz von ELV sein. Ich entscheide mich für ein Modell von Oregon Scientific (WMRS200), das von einem Nutzer in Kombination mit einem Raspberry empfohlen wurde.

Bis die Wetterstation geliefert ist, widme ich mich dem nächsten Problem: der Fernkommunikation. In Kleingärten gibt es meist kein Festnetz und kein WLAN. Ein UMTS-Stick ist daher die einzige Alternative. Dieser soll aber zwei Funktionen übernehmen. Zum einen soll er eine Internetverbindung herstellen, zum anderen Textnachrichten empfangen können, um das Raspberry Pi per SMS steuern zu können. Auch in diesem Fall gibt es Software, die die entsprechenden Aufgaben übernimmt.

Das Standardprogramm für die Internetverbindung ist sakis3g. Es verfügt über einen interaktiven Modus (sakis3g --interactive "connect"), um die Verbindung herzustellen. Die eingetragenen Werte zum Anbieter (APN, Pin) und USB-Anschluss lassen sich anschließend in eine Kommandozeile eintragen, so dass sich die Verbindung über ein Skript starten lässt.

Auswertungssoftware mit vielen Funktionen

Das Empfangen und Senden von SMS lässt sich prinzipiell auch per UMTS-Stick realisieren. Dazu müssen zunächst die Programmbibliothek Gammu und das Sende- und Empfangstool Gnokii installiert werden (Anleitung). Hier gibt es jedoch ein Problem: Manche Sticks können zwar eine SMS empfangen, lassen sich jedoch nicht auslesen. Andere Sticks wiederum lassen sich auslesen, sind aber nicht empfangsfähig. Auf Dauer ist es aber ein wenig umständlich, bei jeder SMS den Stick zu wechseln.

Unnötiges Experimentieren lässt sich mit einem Check der von Gammu unterstützten Geräte vermeiden. Gebrauchte Sticks wie der Huawei 220 funktionieren für diesen Zweck recht zuverlässig, benötigen für den Betrieb am Raspberry Typ B aber einen USB-Hub mit eigener Stromversorgung.

Nach dem Eintragen der Gerätedaten in die Gnokii-Konfigurationsdatei (.config/gnokii/config) steht der SMS-Kommunikation nichts mehr im Wege. Über ein Bash-Skript lassen sich je nach SMS-Text bestimmte Programme oder Skripte aufrufen (Skript). Allerdings kann der Stick nicht gleichzeitig online sein und SMS empfangen. Um die Onlinekosten möglichst gering zu halten, empfiehlt sich ohnehin, per Cronjob jeweils nur einige Minuten in der Stunde ins Netz zu gehen.

In der übrigen Zeit steht der Stick dann für die SMS-Kommunikation zur Verfügung. Das Skript lässt sich dabei so einrichten, dass nicht für die Steuerung benötigte Nachrichten, wie SMS des Anbieters, per Mail weitergeleitet werden. Die Handynummer lässt sich damit auch für Authentifizierungszwecke im Internet verwenden. Da das Raspberry Pi keine eigene Hardware-Uhr besitzt, ist es wichtig, regelmäßig eine Synchronisierung mit einem Zeitserver (ntpdate) durchzuführen.

Einfache Einbindung in Wetterstationensysteme

Nachdem die Wetterstation aufgebaut und angeschlossen ist, stellt sich die Frage nach einem geeigneten Programm zur Auswertung. Die Auswahl hängt zum einen davon ab, ob die eigene Station unterstützt wird, zum anderen läuft nicht jedes Programm auf jeder Linux-Version. Mit Blick auf eine kostengünstige Auswertung ist es sinnvoll, dass das Programm auch die Datenübertragung an RESTful-basierte Wetterstationensysteme wie Awekas, Wunderground, die britische Weather Observations Website (WOW), das Citizen Weather Observer Program oder PWSWeather unterstützt.

Dies lässt sich beispielsweise mit weewx oder wview realisieren. Die Programme lesen permanent die Daten der Wetterstation in einer SQlite- oder MySQL-Datenbank aus und können sie je nach Einstellung an die Systeme übertragen. Über eine Datenflatrate oder per WLAN lassen sich auch die von den Programmen erstellten Wettergrafiken per FTP auf eine eigene Website hochladen. Pro Tag kommen einige Megabyte an Daten zusammen.

Relaissteuerung über Transistor

Wenn das Raspberry Pi und die Wetterstation endlich laufen, lassen sich weitere Anwendungen für den Garteneinsatz anschließen. Mit Hilfe eines elektrischen Ventils kann man per Zeitsteuerung oder Handy beispielsweise den Garten bewässern. Dazu benötigt man allerdings eine Relaissteuerung, die an die GPIO angeschlossen wird. Mit Hilfe eines Transistors wird der Ausgangsstrom des Pins verstärkt, um damit auch ein Relais sicher ansteuern zu können. Auf eine galvanische Trennung des Relais vom Steuerstrom mit Hilfe eines Optokopplers haben wir verzichtet.

Damit lässt sich das Relais auch über den 5-Volt-Pin des GPIO schalten und benötigt keine zusätzliche Stromversorgung. Die Freilaufdiode sorgt (hoffentlich) dafür, dass das Raspberry Pi durch die Schaltvorgänge keinen Schaden nimmt. Der Basiswiderstand errechnet sich je nach Strombedarf des Relais und der Verstärkung des ausgewählten Transistors.

Der Schaltplan und das Platinenlayout lassen sich beispielsweise mit einem Freeware-Programm wie Kicad erstellen. Dieser Aufwand lohnt sich allerdings nur dann, wenn man die Steuerung um weitere Elemente und Bauteile ergänzt und möglichst platzsparend unterbringen will. Sinnvoll ist beispielsweise eine Funktion, um per Schalter das Ventil und den Durchflussmesser testen zu können. Wer nicht selbst löten will, kann entsprechende Relaisplatinen für den Arduino nutzen. Diese lassen sich ebenfalls an die GPIO anschließen.

Die Stunde des Durchflussmessers

Die Auswahl des Ventils hängt wiederum vom Einsatzzweck ab. Für den Anschluss an eine Frischwasserleitung können günstige vorgesteuerte Ventile genommen werden, die einen gewissen Druck zum Öffnen benötigen. Für die Nutzung von Regenwasser empfiehlt sich jedoch ein Kugelhahnventil, das auch bei verunreinigtem Wasser sicher schließt. Manche Anbieter verkaufen allerdings übliche Sitzventile (Zonenventile) als Kugelhähne, weil sie einfach die Beschreibung eines Kugelhahn-Herstellers auf ihre Ebay-Seite kopiert haben. Solange es sich um sogenannte Direktventile handelt, lassen sie sich aber auch an die Regentonne anschließen. Benötigen die Ventile eine Spannung von 220 Volt, sind die Sicherheitsanforderungen für den Betrieb zu beachten.

Um die Bewässerung genau steuern zu können, schlägt schließlich doch noch die Stunde des Durchflussmessers. Zwar ließe sich die Menge auch über die Öffnungsdauer des Ventils ungefähr einstellen. Aber da Geräte mit Wasserleitungsdurchmesser auf Ebay unschlagbar günstig verkauft werden, spricht eigentlich nichts gegen diese Spielerei.

Das Python-Programm (Code) sollte aber in der Lage sein, beim Ausbleiben von Impulsen nach einer gewissen Zeit das Ventil automatisch zu schließen. Gerade beim Anschluss an eine Frischwasserleitung kann auf diese Weise verhindert werden, dass das Raspberry Pi den ganzen Garten unter Wasser setzt. Je nach Wunsch erhält der faule Gärtner dann auch eine E-Mail oder SMS, ob die Bewässerung tatsächlich funktioniert hat.

Selbstverständlich lässt sich der Garten nicht nur per SMS, sondern auch regelmäßig per Cronjob bewässern. Dies empfiehlt sich beispielsweise bei Gewächshäusern, die kein direktes Regenwasser erhalten. Für diesen Zweck gibt es bereits eigene Automatisierungsprojekte.

Fernzugriff per VPN möglich

Zu guter Letzt stellt sich die Frage, mit welchem Telekommunikationsanbieter der UMTS-Stick betrieben wird. Werden die Daten an ein Wetterstationensystem hochgeladen, liegt der Datenverbrauch bei wenigen Megabyte im Monat. Daher lohnt sich ein SIM-Kartenanbieter mit 10 MByte Freikontingent, wie beispielsweise Blau. Solche Anbieter liefern aber in der Regel keine öffentliche IP-Adresse, über die sich das Raspberry Pi zu Wartungszwecken von zu Hause ansprechen lässt. Abhilfe schafft in diesem Fall eine VPN-Verbindung. Dazu benötigt man auf dem Raspberry Pi einen VPN-Client wie vpnc, als VPN-Server dient beispielsweise eine Fritzbox.

Diese benötigt zunächst eine öffentlich zugängliche IP-Adresse. Dann lässt sich ein Benutzer mit VPN-Berechtigung anlegen. Die nun angezeigten VPN-Einstellungen werden in die Konfigurationsdatei von VPNC eingetragen. Standardmäßig erhält der VPN-Client die interne IP-Adresse 192.168.178.201, die sich dann mit Putty aufrufen lässt. Dies ist auch möglich, wenn sich der eigene Rechner selbst von außen über eine VPN-Verbindung an der Fritzbox einwählt. Die VPN-Verbindung lässt sich dann jederzeit per SMS auf dem Raspberry Pi starten. Das ist sinnvoll, um mögliche Fehler zu beheben oder beispielsweise den Zeitpunkt und die Menge der Bewässerung anzupassen. Wer über eine SIM-Karte mit öffentlicher IP-Adresse verfügt, kann sich diese nach dem Starten der Verbindung mit ifconfig auslesen und dann per Mail zusenden lassen.

Powertipps für Linux-Anfänger

Wie das Raspberry Pi tatsächlich im Garten funktioniert, wird aber erst der Sommer zeigen. Immerhin funkte die Wetterstation in den vergangenen Wochen schon recht zuverlässig, nachdem ein täglicher Neustart des Minicomputers eingerichtet worden war. Der Nachteil, dass der Regenmesser nur eine Genauigkeit von einem Liter pro Quadratmeter besitzt, ließe sich durch einen größeren Trichter beheben, wobei die Konfigurationsdatei der Station angepasst werden müsste.

Für einen richtigen Wintereinsatz ist allerdings eine Heizung des Trichters erforderlich, die mit Hilfe von Leistungswiderständen umgesetzt werden könnte. Diese ließen sich bei Schneefall beispielsweise per SMS einschalten.

Zahlreiche Handbücher und Foren im Netz

Mit dem Minicomputer lassen sich tatsächlich eine ganze Reihe von Anwendungen für den Garteneinsatz programmieren. Allerdings müssen Linux-Einsteiger doch eine Reihe von Hürden überwinden. Zwar finden sich im Grunde auf alle Fragen Antworten im Netz, aber es dauert mitunter seine Zeit, bis die richtige in irgendeinem Forum oder in einer Anleitung gefunden ist. Wer die Debian-Distribution Raspbian installiert, dürfte als Anfänger sicher nichts falsch machen. Hilfreich ist dabei, sich neben Platine und Netzteil eine SD-Karte mit vorinstallierten Betriebssystemen (NOOBS) anzuschaffen.

Auch eine Kurzanleitung in Buchform ist nützlich, wenn man sich nicht mit dem Internethandbuch auf raspberrycenter.de oder den Informationen der britischen Raspberry-Pi-Foundation begnügen will.

Ungewohnt ist für Einsteiger vor allem der Verzicht auf die grafische Benutzeroberfläche. Was der Giersch für den Kleingärtner, ist die Kommandozeile für verwöhnte Windows- und OS-X-Nutzer. Zwar lässt sich mit startx durchaus eine grafische X11-Oberfläche starten. Doch diese wird im Grunde nicht benötigt und ist spätestens im realen Garteneinsatz nicht mehr brauchbar. Per SSH-Verbindung und einer Terminalsoftware wie Putty lässt sich das Raspberry Pi ohne eigene Peripherie auch vom gewohnten Rechner aus programmieren.

Unverzichtbar sind dabei Editoren wie nano oder vi. Die wichigsten Linux-Befehle finden sich im Netz häufig in Übersichten zusammengestellt und manchmal sogar ganz einfach erklärt. Kleiner Powertipp für Linux-Neulinge: jeden Befehl, den man mehr als einmal benutzen könnte, in einer eigenen Textdatei abspeichern und dann bei Bedarf über die Zwischenablage und die rechte Maustaste wieder einfügen. Dann wird man irgendwann feststellen: Auch der Giersch hat positive Eigenschaften und ist eigentlich ein "wohlschmeckendes Wildgemüse". Nicht nur für faule Gärtner.  (fg)


Verwandte Artikel:
Android-App für Raspberry programmieren: werGoogelnKann (kann auch Java)   
(23.08.2017, https://glm.io/129559 )
Raspad: Raspberry Pi kommt ins Bastel-Tablet-Gehäuse   
(06.03.2018, https://glm.io/133180 )
Gardena Smart Garden: Serverabsturz macht den Garten dumm   
(15.08.2017, https://glm.io/129495 )
Bastelrechner Eagleye 530s: Zigbee und Flash-Speicher im Raspberry-Pi-Format   
(01.03.2018, https://glm.io/133078 )
Rockpro64: Bastelplatine kommt mit USB-C, PCIe und Sechskernprozessor   
(20.02.2018, https://glm.io/132877 )

© 1997–2019 Golem.de, https://www.golem.de/