Mein Weg nach Kona

Tagebuch eines Triathleten
 
 

Bewässerungscomputer Teil 1

Liebe Leser,

wie Ihr in meinen letzen Beiträgen lesen konnte, sind wir wieder aus dem Urlaub zurück. Der Frühling steht vor der Tür und ich habe noch ein Versprechen einzulösen. Genau genommen war es kein Versprechen, sondern mehr ein Angebot an meinen Bruder, der in der Nähe von Graz wohnt. Vor unserem Urlaub habe ich ihn Anfang des Jahres besucht, wir haben dann wie immer über alles Mögliche geplaudert, sind aber dann auf ein konkretes Problem gestoßen. Mein Bruder würde gerne die Bewässerung seines Rasens im Garten per Handy-App fern steuern. Aktuell hat er einen Gardena Bewässerungscomputer im Einsatz, der die beiden Rasensprenger abwechselnd ansteuert. Dieser erlaubt über die Woche verteilt jeden Tag mehrere Bewässerungen vor zu programmieren. Auch ein Anschluss eines Regensensors ist möglich, sollte der Rasen nass genug sein, wird er dann nicht bewässert. Soweit so gut, das Prinzip eines Bewässerungscomputers ist ja vermutlich jedem bekannt. Wir haben den gleichen Typ von Bewässerungscomputer im Einsatz, allerdings können wir nur eine Leitung damit steuern. Die Steuereinheit des Gerätes sieht aber sehr ähnlich aus, unseres hat halt nur einen Anschluss für ein elektromagnetisches Ventil, die meines Bruders hat halt zwei Anschlüsse. Super wäre es, wenn dieser Bewässerungscomputer also per Handy-App programmierbar und kontrollierbar wäre. Dann müsste er z.B. am Abend nicht im Regen zum Bewässerungscomputer auf die Terasse gehen, um die Bewässerung für diese Nacht zu deaktivieren, da es eh gerade genug regnet, dies wäre bequem vom Wohnzimmer aus per Handy möglich. Auch das Programmieren ist ein bisschen umständlich, dieses wäre über eine bedienungfreundliche Handy-App ebenfalls bequemer. Bei unserer Diskussion sind wir dann auf die Idee gekommen, da die kommerziell erhältlichen Lösungen von Gardena ein Vielfaches des einfachen Grundgerätes kosten und außerdem ein kompletter Umbau der Zuleitung zu den Rasensprengern notwendig wäre, einfach die Steuereinheit durch eine Eigenlösung zu ersetzen, die dann die gewünschten Features kann. Auch wären zusätzliche Erweiterungen möglich, wie z.B. ein Koppelung mit einer Überwachungskamera mit Bilderkennung, wenn z.B. die Nachbarskatze beim Kacken entdeckt wird, könnte die Bewässerung automatisch an gehen, um die Kontaminierung des Rasens zu verhindern. Diese Idee stammt leider nicht von mir, das hat Nvidia Developer Robert Bond, ja nicht 007 der Agent seiner Majestät James Bond, mit einem Nvidia Jetson TX1 schon vor Jahren realisert, wen es interessiert der kann seinen Beitrag "Build an AI Cat Chaser with Jetson TX1 and Caffe" im Nvidia Developer Forum nachlesen. Diese Lösung wäre dann schon etwas aufwändiger, für den Anfang wollten wir kleinere Brötchen backen.

Mein Bruder hätte gerne eine Lösung mit diesen Eigenschaften:

  • pro Wochentag bis zu 3 Bewässerungen pro Kanal programmierbar
  • per Android Handy-App ein-/ausschalten der beiden Rasensprenger
  • direkt über die Steuereinheit ein-/ausschalten der beiden Rasensprenger
  • zeitliche Überwachung einer Bewässerung auf eine wählbare Maximalbewässerungsdauer
  • spritzwasserfestes Design der Steuereinheit
  • Steuereinheit passt auf das vorhandene Grundgerät, kein Umbau des Wasseranschlusses notwendig

Dies alles und ein bisschen mehr, läßt sich mit einer ESP32 Node MCU von espressif realisieren. Diese kleinst Computer mit WLAN und Bluetooth sind ideal für IoT Anwendungen. Sie sind sehr preisgünstig, ein Board mit der ESP32 Node MCU kostet um die €13,-, wie schon geschrieben, mit WLAN und Bluetooth an Bord. Ich kann mich noch erinnern, als ein einzelner WLAN bzw. Bluetooth Transceiver um die €50,- kostete, da war aber noch kein Microcontroller dabei, geschweigen denn ein kompletter, funktionierender Microcomputer. Der ESP32 ist in der Lage über GPIOs die beiden Ventile anzusteuern, ein kleines OLED-Display wird über den Zustand der Steuereinheit Auskunft geben und über 4 Touchkeys kann man die notwendigen Benutzerinteraktionen direkt an der Steuereinheit vornehmen. Stomversorgung wird mit einer 9V Blockbatterie oder -akku erfolgen, wie beim Original von Gardena. Das Gehäuse selbst wird mit meinem Locxess Reptile-Extension Reinforced 3D-Drucker hergestellt und wird an das Design von Gardena angelehnt sein. Auf der Rückseite der Steuereinheit sind simple Audio-Chinch Buchsen für den Anschluss der Ventile.

Die originale Gardena Basiseinheit des Bewässerungscomputers hat auf der linken Seite die beiden Audio-Chinch Buchsen, über die beide Magnetventile angesteuert werden. Die Batterie habe ich nur für einen Größenvergleich in die Basiseinheit gelegt, sie findet normalerweise in der Steuereinheit ihren Platz.

Die Unterseite der Steuereinheit ist das Gegenstück zur Basiseinheit. Sie wird einfach mit den beiden Buchsen auf die Basiseinheit gesteckt. Durch den Aufbau ist sie spritzwasserfest, wenn man mit dem Schlauch direkt draufhält, wird wahrscheinlich Wasser in die Einheit eindringen, dann geht nichts mehr. Aber im Normalfall, wenn z.B. Regen fällt, sollte der Einheit nichts passieren.

Dies ist mein Versuchsaufbau, allerdings noch ohne die Touchkeys. Ich wollte nur einmal ausprobieren, ob durch die Ansteuerung mit den beiden GPIOs die 9V schaltbar sind. Ich habe dafür eine NPN Sziklai Darlington Schaltung gewählt. Dabei wird über einen NPN Transistor ein PNP Transistor geschalten, der NPN wird vom ESP32 direkt getrieben. Durch den PNP habe ich eine Hi-Side Schaltung meiner Last, dies erschien mir sinnvoller als eine Lo-Side Schaltung, bei der evtl. durch eindringendes Wasser ein Kurschluß gegen Masse auch bei ausgeschaltener Bewässerung möglich wäre. Die beiden Dioden habe ich parallel zur Last geschalten, wenn die Leitung offen ist, d.h. das Ventil angesteuert wird, leuchten sie. Ob ich das im Enddesign auch so machen werde, muß ich mir noch überlegen, eigentlich wäre es nicht notwendig, aber bis ich das Display korrekt ansteuere, ist es die einfachste Möglichkeit die Schaltung zu testen. Die Freilaufdioden parallel zur Last habe ich noch nicht in der Schaltung gesteckt, da ja auch noch keine reale Last geschalten ist.

Für die nächsten Beiträge habe ich noch einiges zu tun. Rein von der Schaltung her fehlen nur noch die Touchkeys, die Versorgung und die Schaltung für die Ventilansteuerung funktioniert ja schon. Der ESP32 unterstützt von Haus aus Touchkeys, ich werde 4 benötigen. Ein OK/Select-Key, Up-Key, Down-Key und Cancel-Key sollte reichen, um sich durch das einfache Menü zu hanteln. Das Gehäuse und die PCBs muss ich noch designen, fertigen und dann fehlen natürlich das ESP32 und Android Programm.

Die Steuereinheit mit dem ESP32 wird mehrere Zustände unterstützen:

  • Auto, automatische Bewässerung nach Programm
  • Manuell, manuell eingeschaltene Bewässerung
  • Programmier-Mode, über Bedientasten wird die Einheit programmiert, d.h. die Bewässerungszeiten eingegeben
  • Standby, keine Bewässerung ist aktiv, weder manuell noch automatisch
  • Koppelung mit dem WLAN, die Einheit wird mit dem WLAN gekoppelt

Ein Zustandsdigagramm werde ich noch nachliefern, aber ich glaube mit diesen Zuständen sollte ich auskommen. Diese State Machine läuft dann auf dem ESP32. Dazu kommt die Ansteuerung der beiden Ventile über die GPIOs, das habe ich für Testzwecke schon erstellt und die Behandlung der Touchkeys. Das wird noch ein bisschen kniffelig, bzw. fängt das mit dem Design der Touch-Flächen auf dem PCB an und hört mit der Feinabstimmung im Programm auf, da kommt es auch auf das Gehäuse an, wie die Touchkeys zu kalibrieren sind. Das Display will auch angesteuert werden, da muss ich mir noch einen Treiber programmieren, das OLED-Display wird über I2C angesteuert. Es ist ein 128x64px Grafikdisplay um knapp €5,00- von AZ-Delivery, dort habe ich auch das ESP32 Board erstanden.

Programmtechnisch kommt da noch einiges auf mich zu. Der Koppelungsmodus mit dem WLAN macht mir noch ein bisschen Kopfzerbrechen, aber es sollte möglich sein mit "GATT via Bluetooth" die WLAN Verbindung aufzubauen, dann normal über TCP/IP Sockets die Kommunikation abzuwickeln. Dafür sind auch auf Android Seite passende Klassen vorhanden. Natürlich soll der ESP32 so wenig wie möglich Energie verbrauchen, d.h. ich werde den "Power saver mode of WiFi" nutzen müssen, das ist auch nicht trivial, wie ich nach durchsehen einiger Beispiele gesehen habe.

Die Android-App werde ich mit dem Developer Studio von Google implementieren. Es soll möglich sein die App mit der Steuereinheit zu koppeln, das wird über GATT passieren, dann sollte man bequem die Programmierung der Bewässerung und die manuelle Antsteuerung vornehmen können. Mehr muss die App einmal nicht können, vielleicht fallen mir später noch ein paar Features ein.

Die Mindmap gibt einmal einen groben Überblick, was so alles zu tun sein wird. Ich werde sie natürlich im Laufe des Projektes verfeinern und erweitern, vielleicht lässt sich auch nicht alles so verwirklichen, dann muss ich mir halt eine neue Lösung einfallen lassen, mal sehen wie lange mich das Projekt beschäftigen wird, der Frühling kommt ja mit Riesenschritten.


Euer ultrafastfreddy

22.3.19 16:40

bisher 0 Kommentar(e)     TrackBack-URL

Name:
Email:
Website:
E-Mail bei weiteren Kommentaren
Informationen speichern (Cookie)

Die Datenschuterklärung und die AGB habe ich gelesen, verstanden und akzeptiere sie. (Pflicht Angabe)


 Smileys einfügen