www.mikrocontroller.net

Giess-o-mat

Giess-o-mat in Aktion

Inhaltsverzeichnis

[Bearbeiten] Giess-o-mat - die vollautomatische Blumengiessanlage - Version 2

Blumen gießen? Keinen Bock! Das erledigt für mich schon seit ein paar Jahren ein kleines Gerät. Ab und zu muss ich nur mal den Eimer wieder auffüllen und ab und zu die Gießintervalle einstellen.

Mit der Box kann die Bewässerung von 6 Pflanzen unabhängig voneinander gesteuert werden. Für jede Pflanze wird eine kleine Pumpe angesteuert, die die durstigen Pflanzen aus einem Eimer in der Zimmerecke mit Wasser versorgt. Der Giess-o-mat beinhaltet erstens eine Uhr und kann die Pumpen in programmierbaren Zeitintervallen schalten.

Zweitens kann nun auch die Feuchtigkeit der Blumenerde gemessen werden, ohne dass Elektroden in die Erde gesteckt werden müssen. Dazu verwende ich kapazitive Feuchtigkeitssensoren. Schaltplan und Platinenlayout dazu hat mir Dietmar Weisser freundlicherweise zur Verfügung gestellt.

[Bearbeiten] Bedienung

Bedienung über Terminal

Der Giess-o-mat kann zur Parametrierung über eine serielle Schnittstelle mit dem PC verbunden werden. Wenn man ein Terminal Programm startet (minicom unter Linux oder TeraTerm unter Windows), kann man Gießintervalle oder Schaltschwellen für die Feuchtigkeitsmessung einstellen.

[Bearbeiten] Im Hauptmenü kann man

  • eine Übersicht über sämtliche Einstellungen anzeigen
  • die Feuchtigkeitssensorwerte in einer Endlosschleife anzeigen
  • die Uhr stellen
  • In ein Untermenü zur Konfiguration von einer Pflanze wechseln


[Bearbeiten] Im Untermenü kann man für jede Pflanze

  • eine Namen vergeben
  • die Pumpe manuell ein und ausschalten
  • Einen Automatikmodus wählen:
  • Zeitsteuerung: Es wird ein Giessintervall in Stunden eingestellt, sowie eine Giesszeit in Sekunden, die bestimmt wie lange die Pumpe in jedem Intervall eingeschaltet bleiben soll.
  • Feuchtigkeitsmessung: Es wird erstens ein Sensor-Schwellwert eingestellt. Die Feuchtigkeitswerte werden ständig im Hintergrund gemessen. Je trockener die Blumenerde, desto höher der Sensorwert. Überschreitet der Sensorwert den eingestellten Schwellwert, wird die Pumpe eingeschaltet. Außerdem muss eine Zeit eingestellt werden, wieviele Sekunden die Pumpe laufen soll und eine Zeit, wie viele Stunden die Pumpe nach dem Gießen nicht laufen soll. So kann man vermeiden, dass eine Blume absäuft, falls der Sensor nicht so funktioniert wie man sich das vorgestellt hat.

Die Einstellungen werden im Flash des Mikrocontrollers gespeichert und sind auch nach Unterbrechung der Stromversorgung noch vorhanden.


[Bearbeiten] Technik

[Bearbeiten] Die Feuchtigkeitssensoren

Die Feuchtigkeitssensoren hat Dietmar Weisser erfunden und hier gut beschrieben.

Schaltplan Giess-o-mat

[Bearbeiten] Die Hardware

Das Herzstück ist ein Atmel mega8 Mikrocontroller. Mit Hilfe des avr-gcc habe ich diesen in C programmiert. Vielen Dank für die Tipps und Programmbeispiele aus www.mikrocontroller.net

Links oben im Schaltplan ist die Stromversorgung zu erkennen, die über einen Trafo und einen Gleichrichter erst 12V, dann mit einem Festspannungsregler 5V Versorgungsspannung erzeugt.

Rechts befinden sich die Anschlüsse für die Feuchtigkeitssensoren. Die Sensoren liefern eine Frequenz, die sich in Abhängigkeit der Kapazität (=Bodenfeuchte) ändert. Die Frequenz kann am Eingang T1 des µC gemessen werden. Da es aber nur einen Pin T1 gibt und ich 6 Sensoren anschliessen möchte, wird noch ein Multiplexer-Baustein benötigt.

Im unteren Teil des Schaltplans werden 6 Digitalausgänge verwendet, um über Transistoren und Relais 230V zu schalten. An jedem Relais ist eine Steckdose angeschlossen.

Außerdem findet man einen MAX232 Treiberbaustein, der die Pegelwandlung für den seriellen Port des PCs macht und einen Steckverbinder zum Anschluss eines Programmers für den Firmware-Download.

[Bearbeiten] Die Software

Ich denke, die Funktionalität ist größtenteils selbsterklärend, wenn man sich den Sourcecode anschaut. Im Wesentlichen besteht sie aus einer Endlosschleife für Benutzermenü und Giessautomatik sowie einer Interruptroutine, die in regelmäßigen Zeitabständen die Uhr aktualisiert und die Sensorwerte misst.

Der Timer0 ist so programmiert, dass bei angeschlossenem 8MHz Quarz 250 Interrupts pro Sekunde generiert werden. Der Zähler, der die Flankenwechsel am Sensor-Eingang T1 zählt, wird zunächst auf 0 gesetzt, dann eine Zehntelsekunde später ausgelesen. Danach wird der Multiplexer auf den nächsten Sensor umgeschaltet und das Spiel beginnt von vorne.

Einmal pro Sekunde wird eine Funktion autogiess() aufgerufen, die mit Hilfe der Uhrzeit, der Sensorwerte und der Konfiguration die Pumpen automatisch ein oder ausschaltet.

[Bearbeiten] Download

Sourcecode und Schaltpläne für Giess-o-mat und Bodenfeuchtesensoren findet man findet man im Forum Codesammlung.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net