Zeitgesteuerte Pflanzenbewässerung

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

von Philipp Kälin Benutzer:philippk


Einleitung

Die zeitgesteuerte Bewässerungsanlage ist für alle geeignet, die zu faul sind um Pflanzen selber zu giessen oder es immer wieder mal vergessen. Ziel des Projektes ist einen einfachen Aufbau zu haben, der per PC konfigurierbar und batteriebetrieben ist. Ein Taster ist vorhanden um die Kommunikation mit dem PC zu aktivieren. Ist die Kommunikation aktiv leuchtet eine LED konstant. Im normalbetrieb ist die LED aus und fängt an zu blinken, wenn die Spannung der Batterie unter einen bestimmten Wert fällt. Um die Pumpe für Testzwecke oder manuell einzuschalten ist der Taster S2 vorgesehen.

Features

  • Batteriebetrieben
  • Über PC konfigurierbar
  • Einfacher Aufbau ohne komplizierte Feuchtemessung

Aufbau

Mechanisch

Der Hauptteilbesteht aus einer Membranpume, die mit einem Wasser-Vorratsbehälter verbunden ist. Es ist darauf zu achten, dass eine Membranpumpe von sich aus nicht sperrt, das heisst wenn der Wasserspiegel im Vorratsbehälter höher ist als der in der Pfalnze so fliesst Wasser von alleine! Als Wasserverteiler dient ein festes Kunststoffröhrchen mit seitlich gebohrten Löchern.

Fotos des Aufbaus

Die Schwedenflaggen gibt es übrigens wie auch den Wasserbehälter bei Ikea (Ursprünglicher Verwendungszweck: Aufbewahrungsbox für Zucker usw.)

Hardware

Die generelle Funktion sollte aus dem Schema erkennbar sein, hier wird nur auf ein paar spezielle Sachen hingewiesen. Generell kann die Schaltung in folgende Teile unterteilt werden:

  • Spannungsregelung 5V
  • Schalter, Taster und LED
  • Prozessor mit Uhrenquarz
  • RS232 Kommunikation
  • Ansteuerung der Pumpe mit StepUp Konverter

Schema

Schema

Spezialitäten der Schaltung

Im Betrieb ist der grösste Stromverbraucher der MAX232, deshalb kann diesem die Betriebsspannung mit dem Schalter S1 weggenommen werden, zugleich wird auch die Kommunikation softwaremässig deaktiviert.

Um die Akkuspannung zu messen ist ein spezieller Spannungsteiler (R1, R6) vorhanden. R1 wird nur während der Messung auf Low gezogen. Dadurch wird erreicht dass der Ruhestrom nur (Vbatt – 5V) / R6 beträgt und nicht Vbatt / (R1 + R6) wenn der Widerstand konstant auf GND wäre, was einen erheblichen Unterschied macht.

Eventuelle Anpassungen der Hardware

Der StepUp Wandler muss natürlich an die Pumpenspannung angepasst werden. Falls man eine genügend hohe Spannung zur verfügung hat kann man auch den FET Q2 durch einen Leistungsfet ersetzen und die Pumpe oder ein Relais direkt schalten.

Fotos der Hardware

Software

Die Software ist komplett in C geschrieben und mehr auf Einfachheit als auf volle Optimierung ausgerichtet. Das erklärt auch dass die 4K des Atmega48 randvoll sind. Alle Einstellungen ausser der aktuellen Zeit und dem aktuellen Wochentag werden im EEPROM abgespeichet und sind nach einem Stomausfall wieder vorhanden.

Kommunikation

Die Kommunikation verläuft über RS232 und kann mit jedem "anständigen" Terminalprogramm konfiguriert werden. Ich empfehle für diesen Zweck das kostenlose Termite Termite für Windows oder CuteCom für Linux.

Terminaleinstellungen

Baudrate 2400
Daten Bits 8
Stop Bits 1
Parity Bit keins
Flusssteuerung keine
Zeilenumbruch CR 0x0d
Terminaleinstellungen

Kommunikation starten

Die Kommunikation wird gestartet indem man den Befehl "status" sendet, danach sollte etwa folgendes zurückkommen:

Kommunikation

Parameter

Befehl Parameter Beschreibung
time hh:mm Aktuelle Uhrzeit
weekday x Wochentag (1=Mo 7=So)
days xxxxxxx Wochentage an denen die Pumpe aktiv ist. 0 oder 1 für jeden Wochentag Mo – So
active sss Einschaltzeit in Sekunden in der die Pumpe aktiv ist
daytime hh:mm Tageszeit zu der die Pumpe beginnt zu laufen

Wichtig ist, dass man die Anzahl Zeichen einhält, will man also eine Einschaltzzeit vo 2 Sekunden erreichen, so muss active 002 gesendet werden.

Alternativen / Erweiterungen

Natürlich kann dieses Projekt nicht nur als Steuerung für eine Pumpe dienen, sondern als beliebige Tageszeitschaltuhr.

Downloads

Schema

Eagle Schema und das PDF sind hier: Bewaesserung_HW_V1.0_2010_04_24

Software

C-Source Code für AVR-GCC und die vorkompilierte HEX Datei für einen ATmega48 sind hier: Bewaesserung_SW_V1.0.3_2010_10_09