Du betrachtest gerade Automatische Pflanzenbewässerung

Automatische Pflanzenbewässerung

  • Beitrags-Autor:
  • Beitrags-Kategorie:Arduino

Wenn man in den Urlaub fährt, vergisst man oft schnell die Zimmerpflanzen. Aber nehmen wir an, eine Maschine würde diesen Arbeitsschritt übernehmen: Wie müsste man sie bauen und was bräuchte man dafür? In diesem Artikel möchte ich meine Antwort auf dieses Problem vorstellen.

1. Vorüberlegung

Was muss das Gerät können?

  • Ein Mikrocontroller steuert alle Prozesse
  • Ein Sensor misst die Feuchtigkeit in der Erde der Pflanze
  • Wasser soll aufgefüllt werden, wenn ein gewisser Wert unterschritten wurde, sprich die Erde zu trocken ist
  • Auch eine manuelle Ansteuerung sollte möglich sein
  • Stop-Knopf schalten die Vorgänge ab
  • Eine Wasserpumpe befördert Wasser aus einem Eimer in den Topf

Flussdiagramm – Wie müsste ein Programcode aussehen?

Um eine erste Vorstellung davon zu bekommen, wie der Programmcode aussehen könnte, lohnt es sich in vielen Anwendungen zunächst ein Ablaufdiagramm zu erstellen. Dabei stellen die Rauten eine Abfrage dar.

Nach diesem Schema würde das jeweilige Programm nur dann laufen, wenn währenddessen ein Knopf gedrückt ist. Dies ist beim vorgesehenen Verwendungszweck nicht unbedingt sinnvoll. Der Automatikmodus der Pumpe soll natürlich fortlaufend aktiv sein, selbst wenn die Taste nur zum „Aktivieren“ dieses Modus verwendet wurde. Außerdem besteht ein Problem im Programm 1: Hier würde das Drücken eines Knopfes keine Wirkung mehr zeigen, da das Programm sich im sogenannten Deadlock befinden würde, aus dem es nicht ohne einen Neustart herauskommen könnte. Das Ablaufdiagramm muss also noch einmal angepasst werden:

Welche Bauteile werden benötigt?

(Bei dieser Auflistung handelt es sich nicht um bezahlte Werbung. Die Komponenten wurden selbst bezahlt. Auch Produkte anderer Firmen/Händler können funktionieren.)

2. Wie werden die Bauteile verbunden?

Bevor man praktisch tätig wird sollte man die Komponenten erstmal theoretisch miteinander verbinden. Hierzu eignet sich das Programm Fritzing. An dieser Stelle habe ich damit den Schaltplan für alle Elemente außer den Knöpfen visualisiert:

Hier folgt noch die Ergänzung für die Knöpfe. Zum Schutz des Boards sollte man einen sog. Teardown-Widerstand in jedem Kreis nutzen.

Einzelne Tests sind wichtig

Vor dem Zusammenfügen aller Komponenten empfehle ich einen Funktionstest des vorliegenden Sensors. Dies ermöglicht nicht nur das Ausschließen von Defekten, sondern vermittelt auch direkt ein Gefühl dafür, wie die Sensorwerte ausgegeben werden.

Hier teste ich gerade die Funktionalität des Feuchtigkeitssensors. Wenn das Relai klickt, würde die Pumpe Strom bekommen.

Schaltknöpfe

Da die Schaltknöpfe ohne Anschlusskabel geliefert werden, habe ich diese zunächst angelötet. Um Kurzschlüsse zu vermeiden, sollten die offenen Kabelstellen mit Schrumpfschlauch oder Isolierband umschlossen werden.

Die Projektbox

Damit Arduino (Mikrocontroller), Relais und Verkabelung an ihrem Platz bleiben, sollte eine Brotdose o.ä. als Projektbox genutzt werden. Wenn die Bewässerung im Außenbereich betrieben werden soll, können auch wasserdichte Kabelboxen aus dem Baumarkt verwendet werden.

Verkabelung

Das fertig verkabelte Innenleben der Projektbox.

3. Programmierung

Nun geht es um die Programmierung. Dafür greifen wir auf unseren Ablaufplan zurück, den wir am Anfang erstellt haben. Zur besseren Veranschaulichung nutze ich zum Erstellen des Programmcodes die kostenlose Programmierumgebung NEPO. Für die Verbindung zwischen PC und Arduino ist eine Installation des “OpenRobertaConnectors” notwendig. Weiteres dazu im Handbuch der Anwendung. Zum besseren Verständnis ist hier zunächst der gesamte Code dargestellt (zum Vergrößern auf das Bild klicken).

Roboterkonfiguration

Der zuvor erstellte Schaltplan muss nun in die „Roboterkonfiguration“ übertragen werden, damit NEPO weiß, an welchen Pins die Bauteile angeschlossen sind. Unter „Aktor digital…“ wird die Stromzufuhr für die Knöpfe festgelegt (+5V).

Variablen

Wir benötigen zwei Variablen. „Messwert“ gibt den jeweiligen Feuchtigkeitswert des Sensors an (muss später noch beschrieben werden). Da es drei Programme geben soll (AN, AUS, AUTO), muss ein Programmstatus festgelegt werden.

Hauptprogramm

Zunächst wird mit „1“ die Stromzufuhr für die 3 Druckknöpfe aktiviert. Dann wird je nach gedrücktem Knopf der Programmstatus geändert. Anschließend wird je nach Programmstatus das jeweilige Programm aufgerufen.
Hier wird je nach gedrücktem Knopf der Programmstatus geändert.
Hier wird anschließend je nach Programmstatus das jeweilige Programm aufgerufen.

Sensor auslesen

Diese Funktion liest den Wert des Sensors aus und gibt ihn als Zahl zurück. Der Wert wird als Prozentwert auf dem seriellen Monitor ausgegeben.
Der serielle Monitor kann über den „OpenRobertaConnector“ eingesehen werden.
Diese Funktion definiert das Programm 1. Das Relais wird mit „1“ eingeschaltet. Die Warte-Funktion wird benötigt, um Störungen zu vermeiden.
Programm 2 definiert den Automatikmodus. Die Variable „Messwert“ wird zunächst mit dem Feuchtigkeitswert beschrieben. Wenn der Messwert den Schwellwert von 85 überschreitet, wird das Relais eingeschaltet (Stromkreislauf der Pumpe wird geöffnet). Wenn der Wert nicht überschritten wird, wird das Relais abgestellt.
Das letzte Programm schaltet das Relai aus.

Abschluss

Damit schließen wir nun das Projekt „Automatische Pflanzenbewässerung“ ab. Ich wünsche viel Spaß beim Nachbauen. Senden Sie gerne Ihre Fragen, Anregungen oder fertige Projekte an kontakt@nelsons-logbuch.de

Anleitung und Bilder © 2024 Nelson Ptak

Schreibe einen Kommentar