Selbstgebaute Balkonbewässerung mit dem ESP32

ESP32 | Foto © Florian Bauer

Der ESP32 ist ein Mikrocontroller mit integriertem WLAN des chinesischen Herstellers Espressif Systems. Module zum Auflöten ab 2€ und komplette Platinen direkt aus China importiert ab 5€ machen den Chip zu einer idealen Plattform für Maker, aber auch für professionelle Anwendungen. Neben dem „Killer-Feature“ WLAN hat der Chip einen 140 MHz Dual-Core Prozessor. Bluetooth sowie ein reichhaltiges Angebot an Peripherie sind ebenfalls an Board. Espressif bietet ein umfangreiches SDK als Open Source (Apache License 2.0) an, das auf bekannten Open-Source-Projekten wie FreeRTOS, wpa_supplicant und lwip basiert.

Alternative: Raspberry Pi Zero W

Eine interessante Alternative ist der Pi Zero W. Er besitzt ebenfalls Bluetooth und WLAN und kostet nur ein wenig mehr. Er verbraucht mehr Strom und bietet weniger Schnittstellen. Der große Vorteil ist, dass statt eines RTOS ein vollständiges Linux zur Verfügung steht.

Balkonbewässerung

Viele besitzen keinen Garten, wollen aber trotzdem nicht auf selbst angebaute Kräuter und Gemüse (oder Blumen) verzichten. Die Pflanzen wollen aber auch mit Wasser versorgt werden, wenn du bei einer Fortbildung oder im Urlaub bist. Neben dem begrenzten Platz auf dem Balkon ist das Hauptproblem ein fehlender Wasseranschluss. Abhilfe schafft hier ein Wassertank, den du – je nach Größe –  alle paar Tage auffüllst.

Umsetzung

Für eine einfache Balkonbewässerung benötigst du folgende Teile:

  • ESP32 Entwicklungsplatine
  • 3.3V auf 5V Pegelwandler
  • 5V Relay
  • 5V Aquariumspumpe
  • Ultraschall Entfernungsmesser, z.B. HC-SR04
  • 5V USB Netzteil
  • Breadboard, Werkzeug und Kabel

Alle I/O-Pins des ESP32 arbeiten mit einer Spannung von 3.3V. Allerdings benötigt sowohl der Entfernungsmesser als auch das Relay eine Spannung von 5V, weshalb ein Wandler zwischengeschalten wird. Der hier eingesetzte Chip erkennt automatisch, ob es sich um einen Eingangs- oder Ausgangspin handelt und kommt so ohne jegliche Konfiguration aus.

Verdrahtung des ESP32 | Foto © Florian Bauer

Bewässerung

Eine billige 5V-Pumpe hat zwar nicht viel Leistung, die benötigt sie für unseren Anwendungsfall aber auch nicht. Allerdings ist es trotz der relativ niedrigen Leistungsaufnahme wichtig darauf zu achten, dass die Energiequelle (i.d.R. das Netzteil) auch genügend Strom liefert. Auf keinen Fall solltest du die Pumpe direkt über die Spannungsversorgung des ESP32-Boards versorgen, da dieses sonst beschädigt werden kann.

Wasserstandsmessung

Eine (zeitgesteuerte) Pumpe alleine würde schon für eine einfache Balkonbewässerung ausreichen. Das wäre aber viel zu einfach. Außerdem: Was wäre schon ein IoT-Gadget, wenn es keine mehr oder weniger sinnvollen Daten in die Cloud schicken würde? Nützlich wäre es zum Beispiel zu wissen, wenn sich das Wasser im Tank dem Ende neigt. Es gibt viele verschiedene Möglichkeiten, den Wasserstand zu messen. Einfach und billig ist die Verwendung eines Ultraschall-Entfernungsmessers für 1-3€. Der Sensor wird dabei im Deckel nach unten gerichtet montiert. Aus der Signallaufzeit des Schalls vom Sensor zur Wasseroberfläche und zurück lässt sich der Abstand und schließlich die verbleibende Wassermenge berechnen.

Cloud

Das SDK des ESP32 bietet einen umfangreichen WLAN- und TCP/IP-Stack, der die Kommunikation mit der Außenwelt sehr einfach macht. Ob diese Außenwelt dabei ein Raspberry Pi im Wohnzimmer oder die Google Cloud ist, bleibt jedem selbst überlassen. Das Protokoll der Wahl ist in diesem Projekt MQTT. Eine für den ESP32 geeignete Implementierung findet sich auf Github. Der ESP32 sendet regelmäßig die aktuellen Daten wie Wasserstand und Laufzeit der Pumpe an den Broker. Des Weiteren lauscht er auf eine Nachricht, die das manuelle An- und Ausschalten über eine Website erlaubt.

Nächste Schritte

Das Projekt ist bei Weitem noch nicht am Ende. Die rein zeitbasierte Steuerung der Pumpe würde ich gerne durch eine bedarfsgerechte Steuerung mit Hilfe eines Hydrometers ersetzten. Außerdem benötigen verschiedene Pflanzen unterschiedlich viel Wasser, weshalb ich die verschiedenen Blumenkästen unabhängig voneinander bewässern möchte.

Auch wäre eine Integration des vom SDK unterstützten Over-the-Air-Updates mit einem CI-Server vorstellbar. Das wäre sicherlich Overkill für solch ein kleines Projekt, aber bestimmt interessant.

Links

3 Gedanken zu „Selbstgebaute Balkonbewässerung mit dem ESP32

  1. Matthias Dräger Antworten

    Hallo,
    Ein sehr interessantes Projekt. Mich interessiert, wie die Sensordaten per WLAN gesendet werden, das erschließt sich mir aus dem Programmierhandbuch von espressif nicht. Hast du dafür einen Tipp?

  2. Guest Antworten

    Zum geplanten Hydrometer:
    Nach meiner Erfahrung haben die käuflichen Hydrometer (diese langen zweizinkigen flachen Gabeln mit beschichteten Zinken) eine recht begrenzte Lebensdauer (1 Monat?) wenn permanent bestromt (die Beschichtung löst sich auf, wohl irgendwas mit Elektrochemie oder so…).
    Abhilfe:
    1. Messungen nur in bestromten Intervallen (z.B. alle 1 min für 1 s) und
    2. Installation mit Steck- statt Lötverbindung für leichteren Austausch.

    • Florian Bauer Autor des BeitragsAntworten

      Ich habe die gleiche Erfahrung gemacht. Es gibt zwar Hydrometer, die angeblich wesentlich langlebiger sein sollen und dann auch z.B. direkt über Bluetooth ansprechbar sind, allerdings kosten diese auch ein vielfaches.

      Eine dauerhafte Bestromung ist auch in im Bezug auf Batterielaufzeit nicht zu empfehlen. Die Feuchtigkeit des Bodens ist (wenn nicht gerade gegossen wird) so träge, dass auch ein Intervall von 15min oder noch weniger ausreicht.

      Ich habe aktuell keine Individuelle Bewässerung im Einsatz sondern bin beim hart-kodierten Bewässerungsintervall geblieben. Hauptgrund ist allerdings nicht der Hydrometer pro Blumenkasten sondern der Aufwand, Wasser für jeden Kasten einzeln an-/ausschalten zu können.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.