4.3 Umsetzung der App

Eine zusätzliche Möglichkeit zur Kontrolle und zur externen Steuerung der Bewässerungsanlage, welche keinen Einfluss auf den automatisierten Bewässerungsablauf hat, soll eine App via MQTT bieten. Dazu sind hauptsächlich die definierten Topics zum Schreiben und Lesen des Brokers zu verwenden, die bereits in der Software des ESP8266 enthalten sind. Mit Hilfe von Flutter können Cross-Plattform-Apps, also Apps für die Betriebssysteme iOS und Android, in einer Programmierspache entwickelt werden. Diese Technolgie wird im Rahmen dieses Projekts verwendet.

Mit Flutter wurden drei Bildschirme implementiert, die es ermöglichen sich mit dem Broker zu verbinden, um anschließend die Kommunikation zwischen der Bewässerungsanlage und der App zu ermöglichen. Die Werte des Sensors werden vom ESP8266 in regelmäßigen Abständen an den Broker übermittelt, sodass die App diese mit Hilfe des richtigen Topics lesen und auf einem der drei Bildschirm als Wasserstand der Pflanze anzeigen kann, sobald die Bewässerungsanlage aktiviert und die App mit dem Broker verbunden ist.

Abb.: Drei Bildschirme der App ohne Verbindung zum Server. Im linken Bildschirm “Water Level” wird der Wasserstand der Pflanze angezeigt, sobald die App mit dem Broker verbunden wird und die Bewässerungsanlage aktiv ist.

Für die Verbindung zum Server müssen keine Einstellungen vorgenommen werden. Durch das betätigen des Connect-Buttons auf dem Bildschirm “Water Level”, kann der Nutzer die App mit dem Broker verbinden. Es ist ihm auch möglich die Kommunikation zwischen dem Broker auf dem Bildschirm “Messages” zu lesen und ggf. definierte Nachrichten an andere Topics des Brokers zu senden. Zusätzlich werden die verwendeten Topics zum Lesen und Schreiben im Bildschirm “Broker Settings” angezeigt. Dort ist es ebenfalls möglich die Kommunikation zwischen Broker und App aufzuheben.

Abb.: App im verbundenen Zustand.

Klicke hier, um die App für Android zu laden


3.1.2 Beschreibung der Software

Die Software ist auf dem ESP8266 gespeichert, der sich wiederrum auf der Platine befindet. Diese kann mit Hilfe eines weiteren Computers und mit einer Entwicklungsumgebung (IDE), wie beispielsweise Arduino, erstellt werden. Bei einem vorgegeben Quellcode können ebenfalls Änderungen mit einer IDE vorgenommen werden.

3.1.2.1 Funktion des Programms

Abb.: Flussdiagramm zur Darstellung des Programms, welches auf den ESP8266 übertragen wird.

Zunächst wird eine WIFI-Verbindung aufgebaut. Dafür muss das Programm die nötigen Informationen erhalten. Dazu gehören Name des Router und das Passwort.
Sobald eine bestehende WIFI-Verbindung existiert, werden laufend Spannungswerte vom Sensor zum ESP8266 gesendet. Dabei sind dem Programm bestimmte Schwellenwerte vorgegeben, um zu entscheiden, ob die Pflanze Wasser benötigt oder nicht. Das Programm liest die Werte und entscheidet dann über die Bewässerung der Pflanze.
Wenn die Pflanze gegossen wurde, soll diese für mehrere Sekunden nicht gegossen werden können, damit die Erde der Pflanze das Wasser zunächst aufnehmen kann. Der Sensor erhält außerdem Zeit, um neue Werte zu messen und zu entscheiden, ob die Wassermenge ausreicht. Falls die Wassermenge nicht ausreicht, wird die Pumpe wieder aktiviert. Dieser Ablauf wiederholt sich solange, bis die Erde der Pflanze ausreichend Wasser aufgenommen hat.

Für die Übertragung der Sensorwerte und die Steuerung zur Bewässerung der Pflanze via App, müssen ein Broker, ein Port, ein WIFI-Netz und Topics zum Lesen und Schreiben im Programm des ESP8266 festgelegt werden.

Auch bei der Umsetzung der App müssen die festgelegten Topics des Brokers zum Lesen und Schreiben genutzt werden. Die App sollte erst dann umgesetzt werden, wenn sowohl die Hardware als auch die Software des ESP8266 einwandfrei funktioniert, um nicht weitere Probleme hinzuzufügen, da es ansonsten schwieriger wird, die Ursachen herauszufinden.

3.1.1 Beschreibung der Hardware

Abb.: Fertiggestellte Platine, welche für das Projekt genutzt werden kann.*

Die Hardware besteht aus den folgenden Komponenten:

  • 1x Pumpe
  • 1x Sensor**
  • 1x Platine (inkl. 1x ESP8266, 1x 12v –> 3,3V Spannungswandler)

Um die Platine vor Feuchtigkeit zu schützen, soll diese in einem Behälter installiert werden. Sowohl die Pumpe als auch die Platine sollen durch eine Installation auf einer Holzwand die nötige Stabilität erhalten, um keinen Bewegungsspielraum zu ermöglichen. Diese Holzwand kann neben der ausgewählten Zimmerpflanze aufgestellt werden. Die Kabel des Sensors und des Netzteils sind an der Platine angeschlossen. Auch die Pumpe ist an der Platine angeschlossen. Die Kontakte zur Platine wurden mit einer Heißklebepistole verdichtet, damit kein Wasser auf die Platine kommen kann. Die Pumpe ist an zwei Schläuchen angeschlossen. Der eine Schlauch saugt das Wasser aus dem Wasserbehälter und der andere pumpt das angesaugte Wasser zur Pflanze. Dazu muss der Schlauch, welcher zur Pflanze führt, gut befestigt werden, damit die Erde mit Wasser versorgt werden kann. Zur Befestigung des Schlauchs können Drahtstücke oder Kunststoffklammern genutzt werden, die in die Erde gesteckt werden. Auch eine Befestigung des Schlauchs am ausgewählten Wasserbehälter ist sinnvoll, da auch dieser durch das Ansaugen des Wassers seine Position wechseln könnte, sodass schließlich der Schlauch kein Wasser ansaugen kann.

Abb.: Einige Ausschnitte der Platinenschaltung.*

Es ist darauf zu achten, dass der Sensor, welcher den Wasserstand der Pflanze misst, nicht zu locker in der Erde sitzt. Wenn der Sensor zu locker in der Erde sitzt, kann der Sensor nicht den Wasseranteil der Erde messen, da sich Luft zwischen Erde und Sensor befindet.

Außerdem sollen die elektrischen Kontakte oberhalb des Sensors vor Wasser geschützt werden. Dazu können die Kontakte mit einer Heißklebepistole überklebt werden.


*Die dargestellte Platine wurde von Anatolij Fandrich entworfen.
**Sensor: Hygrometer

3.1 Schritte für die Umsetzung

Für die Umsetzung des Projekts ist eine grobe Unterteilung hilfreich, um kleine Hardware- und Software-Komponenten schnell und erfolgreich umsetzen zu können. Außerdem ermöglicht eine Unterteilung des Projekts eine bessere Testbarkeit, da die einzelnen Komponenten unabhängig voneinander getestet und ggf. verbessert werden können.

Empfehlenswert ist eine Definition oder eine übersichtliche Skizze des Projekts, um die Schritte zur Umsetzung effektiv vornehmen zu können.

Wie bereits beschrieben, beinhaltet das Projekt folgende Punkte:

  • Feuchtigkeitsmessung der Erde
  • Ein 12V-Netzteil zur Stromversorgung der Hardware (Platine und Pumpe)
  • Eine Pumpe, die Wasser aus einem Behälter, wie beispielsweise aus einer Gießkanne, an eine Pflanze pumpen kann.
  • Eine programmierbare Hardware zur automatisierten Steuerung der Bewässerung.
    • Die Hardware muss 12V in die Betriebsspannung von 3,3V umwandeln können, um nicht zwei unterschiedliche Netzteile für die Pumpe und die Hardware nutzen zu müssen.
    • Die Hardware muss mindestens einen AD-Konverter beinhalten, um die Werte des Feuchtigkeitssensors empfangen zu können.
    • Die Hardware muss WIFI-fähig sein, um drahtlos eine Internetverbindung aufbauen zu können, damit sich die Bewässerungsanlage mit einem externen Gerät via MQTT lesen und steuern lässt.
  • Zusätzlich wird ein Computer benötigt, um die Software zur automatisierten Bewässerung der Pflanze via USB auf die Hardware übertragen zu können.
  • Um drahtlos via Internetverbindung Werte vom Sensor lesen zu können, ist ein weiteres internetfähiges Gerät mit Anzeige notwendig. Dazu eignet sich ein Smartphone hervorragend.
  • Eine App soll es ermöglichen, Werte vom Sensor lesen zu können. Außerdem soll es möglich sein, die Pflanze via App zu gießen. Dies soll auch außerhalb der automatisierten Bewässerung ermöglicht werden.

Für die Umsetzung des Projekts ist eine Unterteilung in Hardware und Software sinnvoll. Die Hardware kann als erstes, unabhängig von der Software, entwickelt werden. Für die Software zur Steuerung der Hardware ist nach der Fertigstellung zu berücksichtigen, welche Anschlüsse für die Pumpe und für den Sensor zu verwenden sind.

Nach der Fertigstellung der Hardware und Software zur automatisierten Bewässerung, soll eine App fertiggestellt werden, die es ermöglicht Sensorwerte zu lesen und auch zu gießen. Dazu soll MQTT verwendet werden, sodass ein Broker und mindestens zwei Topics für die Umsetzung benötigt werden. Die Topics zum Lesen und Schreiben müssen sowohl in der Software für die Platine als auch in der Software für die App genutzt werden. Dies bedeutet, dass bei der Fertigstellung der Software für die Platine bereits MQTT, Broker, Topics, Ports und WIFI-Verbindung berücksichtigt werden müssen.


3.0 Planung des Projekts

Die Bewässerungsanlage besteht im Wesentlichen aus einem Sensor, einer Platine mit integriertem ESP8266, einer Wasserpumpe und einer vollen Gießkanne mit Wasser.
Sowohl der Sensor, welcher die Feuchtigkeit in der Erde misst, als auch die Pumpe sind an die Platine angeschlossen. Dabei werden gemessene Spannungswerte des Sensors kontinuierlich an den ESP8266 gesendet. Ein 12V-Netzteil versorgt die Platine sowie die Pumpe mit Energie. Der ESP8266 wird mit einem Router via WIFI verbunden, um via App mit der Bewässerungsanlage kommunizieren zu können. Für die Kommunikation zwischen der Bewässerungsanlage und der App wird MQTT verwendet.

Abb.: Skizze als Hilfestellung zur Umsetzung.*

*Senor: Hygrometer

1.0 Idee: Automatische Bewässerungsanlage einer Zimmerpflanze

Das automatische Bewässern einer Zimmerpflanze soll durch eine digitale Lösung erfolgen. Automatisch soll Wasser aus einer vollen Gießkanne zur Pflanze gepumpt werden, sobald die Pflanze Wasser benötigt. Zusätzlich soll es möglich sein, den Wasserstand der Pflanze mit einer App zu lesen und auch außerhalb der automatisierten Bewässerung zu gießen.

Abb.: Skizze zur Idee “Automatische Bewässerungsanlage einer Zimmerpflanze”*


1.1 Motivation & Alltagsbezug

Abb.: Eine Zimmerpflanze auf einem Fensterbrett.**

Das Gießen einer Zimmerpflanze wird oft vernachlässigt, da andere Dinge im Alltag eine höhere Priorität aufweisen oder ein Urlaub es verhindert. Ein automatisches System zur kontrollierten Bewässerung einer Zimmerpflanze, kann somit das Gießen übernehmen.


*Sensor: Hygrometer
**Quelle: https://pixabay.com/de/photos/vergossene-kaktus-17929/,
zuletzt abgerufen am 24.07.19.