Der selbst-gießende Blumentopf
Seit einiger Zeit kümmere ich mich um ein paar Orchideen und diese bekommen jetzt ein wenig Automatisierung.Mein Auf und Ab beim Gießen meiner Orchideen brachte mich dazu, eine Lösung zu entwickeln, die sowohl mir als auch meinen Pflanzen hilft. Ich habe eine Konstruktion gebaut und gedruckt, welches meine Orchideen regelmäßig gießen soll, ohne dass ich mich darum kümmern muss. Am Ende meines Artikels findet man die Bauteile und benötigten 3D-Modelle.
Orchideen gießen
Da Orchideen zu den sogenannten Luftwurzlern gehören, benötigen sie in ihrem Topf Orchideensubstrat oder wurzeln komplett in einem leeren Untertopf. Das Substrat nimmt dabei Wasser auf und gibt es nach und nach wieder an die Wurzel ab. Somit ist reguläres gießen wie bei anderen Topfpflanzen nicht so wirklich möglich. Empfohlen wird daher ein Tauchen der Orchideen mit ihren Untertöpfen in stehendes Wasser, so das sich das Substrat ausreichend voll saugen kann. Das sollte man je nach Laune der Orchidee alle 4-7 Tage tun, um sie mit Wasser zu versorgen.
Die Idee
Als Einstieg stand der Gedanke den bekannten Tauchvorgang bei Orchideen zu simulieren. Also den Übertopf langsam von unten mit Wasser zu füllen und nach 1-2 Minuten wieder ablassen. Mit diesem simulierten Tauchen hat das Substrat genug Zeit um genügend Wasser aufzunehmen. Dafür benötigt es einen Wassertank, um den Topf unabhängig von einer Wasserquelle zu betreiben. Um ein Überfluten des Topfes zu vermeiden, muss für den Tauchvorgang die maximale Wasserhöhe festgestellt werden. Das könnte mit zwei Kontakten realisiert werden, die einen Stromkreis schließen, sobald das Wasser sie erreicht.
Die Umsetzung
Aus dem 3D Drucker entstehen die benötigten "Töpfe". Meine erste Konstruktion somit. Anschließend zieht die Technik und der Mikrocontroller ein.
Der Topf
Als Grundlage für die Maße des Pflanzentopfes nehme ich die Maße einer meiner normalen Orchideen-Töpfe. Dieser Topf wird später auf einem zylindrischen zweiten Topf stehen, welcher das Wasser enthält. Eine kleine Pumpe fördert das Wasser nach oben zur Pflanze.
Damit das Wasser von unten nach oben steigen kann, braucht es einen Schlauch und ein Loch im oberen Behältnis. Außerdem gibt es einen Überlauf, sollte die korrekte Abschaltung der Pumpe nicht funktionieren. Dies ist äußerst wichtig, da bei einem automatischen Gießen keiner vor Ort sein wird, um ein Chaos aufzuwischen. Zum Schluss füge ich noch ein paar Ablauflöcher hinzu und einen kleinen Ring am Boden des Topfes. Dieser Ring hält ein wenig Wasser zurück, welches mit der Zeit verdampft und das Substrat so passiv befeuchtet. Für die Elektronik kommt noch eine kleine Box an den Blumentopf.
Ist das Model fertig gedruckt, erhält die Oberfläche eine Nachbehandlung um es wasserdicht zu machen. Dafür gibt es verschiedene Ansätze. Der einfachheitshalber entschied ich mich für eine Lackierung der Innenflächen mit transparenten Klarlack. Dieser schließt die Poren zwischen den PETG Filamentschichten und Kanten.
Um ein zuverlässiges Verschließen zu erreichen, wiederhole ich die Lackierung ein zweites Mal. Die doppelte Schicht Lack dichtete bei mir auch wirklich alle noch vorhandenen Löcher ab.
Was ich dabei gelernt habe: Für ein paar Stunden den Topf voll gefüllt stehen lassen, denn oftmals tropft es langsam noch durch ein kleines Leck.
Es kommt vor, dass am Boden des Blumentopfes Wasser eindringt. Dabei funktionierte leider auch nicht das Erhöhen der soliden Druckschichten der innenliegenden Flächen. Ich verfolge dies nicht weiter, da es direkt in den Wassertopf tropft.
Die Technik
Eine kleine 5V Pumpe transportiert das Wasser aus dem Reservoir über einen Plastikschlauch bis in den oberen Topf.
Der Plastikschlauch sollte dabei nicht zu viel im Topf nach oben überstehen.
Sonst kann es passieren, dass zu viel Wasser im Blumentopf stehen bleibt, falls die Ablauflöcher verstopfen.
Ein Relais mit einer Schaltspannung von 3V realisiert die Steuerung der Stromzufuhr zur Pumpe.
Dieses ermöglicht den direkten Betrieb mit einem D1 Mini Microcontroller.
Auch die 5V Spannungsversorgung kann direkt über den Microcontroller laufen, da die Stromstärke der Pumpe noch klein genug ist.
Somit erfolgt die 5V Stromversorgung des kompletten Blumentopfs über den Micro-USB Anschluss des D1 Mini.
Die Spannung zum Schalten des Relais kommt hierbei auch direkt von dem D1
Pin der Steuerungsplatine.
Um jetzt den maximalen Wasserstand im oberen Blumentopf zu detektieren, benötigt es noch den "Endstopp".
Dafür zieht man aus einer 3-poligen Stiftleiste den mittleren Stift heraus und verlötet die anderen beiden jeweils mit einem Stück Kabel.
Dieses wird an der 3V Spannungsversorgung und dem Analog-Pin A0
angeschlossen.
Gelangt das Wasser zu den beiden "Prüfspitzen", steigt die Spannung an.
Der gemessene Wert an A0
erhöht sich und kann mittels einem Schwellwert in ein digitales Signal umgewandelt werden.
Die Programmierung
Wie alle in meinem Einsatz befindlichen ESP8266 Microcontroller wird auch der Blumentopf mittels ESPHome bespielt. ESPHome ist eine Software welche aus einer Konfiguration im YAML Format sich selbstständig den passenden Quellcode erzeugt. Dieser kompiliert direkt und kann anschließend direkt per USB oder OTA (Over-The-Air) auf den Microcontroller geflashed werden. Das erspart mir eine eigene Implementierung für jeden meiner Chips und ermöglicht eine einfache Konfiguration. Außerdem kann über die OTA Funktionalität später die Firmware jedes Chips komfortabel verändert werden, ohne diesen ausbauen zu müssen. Ebenso ist ESPHome direkt in Home Assistant integriert und so landet der Blumentopf auch automatisch bei meinen existierenden Geräten.
Nach dem Anlegen der Basiskomponenten für den Pumpen-Ausgang und den analogen Eingang des Endschalters wird der Schalter der Pumpe mit einer zusätzlichen Funktion versehen. Diese schaltet die Pumpe automatisch aus, sobald der Endschalter sich meldet oder ein paar Sekunden vergangen sind. Diese "Timeout"-Zeit dient mir als rudimentärer Trockenlauf-Schutz.
switch:
- id: pump_switch
# ...
on_turn_on:
then:
- wait_until:
condition:
- lambda: return id(maxWaterTrigger);
timeout: !lambda "return id(pumpTimeout) * 1000;"
- switch.turn_off: pump_switch
Um das Überschreiten der Spannungsschwelle des Wassersensors möglichst einfach zu nutzen, entsteht bei dem analogen Sensor ein
Bereichsfilter.
Dieser setzt eine globale Variable auf true
/false
. Abhängig davon, ob die Schwellen-Spannung überschritten wurde.
sensor:
- id: water_sensor
# ...
on_value_range:
- above: !lambda "return id(thresholdVoltage);"
then:
- globals.set:
id: maxWaterTrigger
value: "true"
- below: !lambda "return id(thresholdVoltage);"
then:
- globals.set:
id: maxWaterTrigger
value: "false"
Die Logik eines Gießvorgangs wird in einer 1-Knopf-Komponente abgebildet. D.h. man löst das Gießen schnell und einfach über einen einzigen Knopf auf der Web-Oberfläche des Home Assistant aus. Ein Gießvorgang besteht zum einen aus dem Einschalten der Pumpe und zum anderen aus dem Abwarten, bis sich dies wieder abschaltet. Nach einer kurzen Pause wiederholt sich der Vorgang so lange, wie es die konfigurierbare Zahl an Durchläufen definiert. Sprich, die vorgegebene Zahl an Vorgängen gibt an, wie oft die Pumpe den oberen Blumentopf unter Wasser setzt. Danach fließt das Wasser mittels Gravitation wieder nach unten zurück. Für das automatische Gießen plant die Interval-Komponente von ESPHome einen "Klick" auf den Gieß-Knopf alle 5 Tage ein. Somit steht der Blumentopf für sich alleine als funktionsfähiges Gerät und benötigt keinen externen Trigger für das Gießen.
button:
- id: giessen
# ...
on_press:
- repeat:
count: !lambda "return id(wateringCount);"
then:
- switch.turn_on: pump_switch
- wait_until:
- switch.is_off: pump_switch
- delay: 2s
- switch.turn_off: pump_switch
interval:
- interval: 5days
then:
- button.press: giessen
Um die Pumpzyklen und Pumpzeiten dynamisch verändern zu können, hinterlegt man sie als Variablen. Später im laufenden Betrieb verändert man diese Laufzeit-Variablen dann schneller über die Einstellungsseite des Blumentopfs im Home Assistant.
Den vollständigen Code findet man bei mir in der öffentlichen [Home Assistant Konfiguration]. Darin steht meine aktuell benutzte Konfiguration. Da ich inzwischen bereits 2 Blumentöpfe "teste" ist der in einer ausgelagerten Datei zu finden. Die gerätespezifischen Konfigurationen enthalten nur noch Referenzen auf weitere Dateien für WLAN- und MQTT-Anbindungen.
BOM (Bill of Materials)
- 3D Druck-Modelle
- Pumpe (Wichtig ist nur die 5V Eingangsspannung)
- Schlauch
- D1 Mini Microcontroller (das kann auch ein andere aus der ESP Familie sein. Wichtig ist ein analoger Eingang.)
- Relais Baustein (Jedes andere Relais für das ein Schaltstrom von 3V ausreicht, geht genauso)
Die obigen Links sind alle von Amazon, aber es gibt die Bauteile auch von anderen, lokalen Händlern oder Baumärkten.
Fazit
Zum Zeitpunkt des Artikels habe ich schon eine Version 2 am Laufen, welche ich Euch hier vorstellte. Bisher nehmen es meine beiden Orchideen ganz gut an. Beim ersten Blumentopf habe ich inzwischen ein kleines Podest unter den Innentopf gestellt, da diese sonst "wegschwimmt", sobald das Wasser steigt. Nachdem ich auch bei V2 das Wasserreservoir größer gedruckt habe, ist auch das zweiwöchentliche Auffüllen nicht mehr nötig. Dabei hilft auch eine andere Pumpe, welche bis zu einem niedrigeren Wasserspiegel funktioniert. Was mir die letzten Tage aufgefallen ist: Im Infill des Wassertopf-Deckels sammelt sich beim Gießvorgang Wasser. Ob das ein Problem darstellt, wird sich noch zeigen.
Alles in allem ist es ein cooles Projekt welches ich weiter verfolge. Eine Orchidee ist noch nicht damit versorgt und ich habe mir inzwischen Relais-Shields für den Microcontroller bestellt. Also nur eine Frage der Zeit bis aus der aktuellen V2 ein V3 wird.