Der selbst-gießende Blumentopf

Seit einiger Zeit kümmere ich mich um ein paar Orchideen und diese bekommen jetzt ein wenig Automatisierung.
Einer der gießenden Blumentöpfe in einer roten Ausführung

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.

Das Wurzelwerk einer Orchidee mit Substrat
Das Wurzelwerk einer Orchidee mit Substrat

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.

Das Model des oberen Blumentopf
Das Model des oberen 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.

Die beiden gedruckten Töpfe, (der 2. Iteration, daher sind sie weiß)
Die beiden gedruckten Töpfe, (der 2. Iteration, daher sind sie weiß)

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.

Die Technik an dem oberen Blumentopf
Die Technik an dem oberen Blumentopf

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.

Der Endstop am Innen-Topf-Rand wenn er Wasser berührt
Der Endstop am Innen-Topf-Rand wenn er Wasser berührt

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.

Die Geräteoberfläche im Home Assistant
Die Geräteoberfläche 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)

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.

Der fertige Topf V2 an seinem Einsatzort
Der fertige Topf V2 an seinem Einsatzort

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.