Regelung der Wasserzufuhr für Haus- und Nutzpflanzen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

Autoren: Marvin Stute, Nils Betten

→ zurück zur Übersicht: WS2023: Angewandte Elektrotechnik (BSE)

Einleitung

Projektplan

Im Rahmen des Praktikums "Angewandte Elektrotechnik" im Studiengang "Business and Systems Engineering" ist dieses Projekt entstanden.

Im Rahmen dieses Projektes soll ein Gerät entworfen und realisiert werden, welche es ermöglicht, automatisch Haus- und/oder Nutzpflanzen zu wässern. Um diese verschiedenen Anforderungen abzudecken muss das System in verschiedenen Konfigurationen funktionieren und je nach gewählter Einstellung verschiedene Bewässerungsprofile für verschiedene Pflanzenarten und Einsatzzwecke nutzen können.

Das System soll ebenfalls in der Lage sein, stehendes Wasser, also Wasser was nicht mehr vom Substrat im Topf absorbiert werden kann da dies gesättigt ist, bei entsprechender Möglichkeit am Behälter abzulassen.

Zur Entwicklung wird das V-Modell eingesetzt um sicherzugehen, dass das System hinterher hinreichend getestet wurde und es zu keinen Unfällen oder überwässerten Pflanzen kommt.

Während bisherige Projekte wie beispielsweise Smarter_Kräutergarten sich auf die Versorgung von kleinen Kräuterpflanzen fokussiert haben, ist dieses Projekt auf größere Zimmerpflanzen ausgerichtet. Die Projekte sind zwar vergleichbar, die Anforderungen für diese Art von Pflanze jedoch grundsätzlich verschieden. Da Zimmerpflanzen in deutlich größeren Töpfen wachsen, kann sich bei zu häufigem Gießen Wasser anstauen, was zu einem Verschimmeln der Wurzeln führen kann. Deswegen muss die Feuchtigkeit an verschiedenen Stellen des Topfs gemessen werden und zusätzlich zur Versorgung mit Wasser muss das Ablassen von stehendem Wasser möglich sein. Somit wird ein Regler benötigt, der die Feuchtigkeit im Topf auf einem möglichst konstanten Level hält. Die Zimmerpflanzen haben außerdem einen deutlich höheren Wasserbedarf, sodass ein großer Wassertank notwendig ist.

Anforderungen

Anforderungen

ID Inhalt Ersteller Datum Geprüft von Datum
1.0 Die Feuchtigkeit im Blumentopf muss durch den Arduino, die Sensoren und die Aktuatoren auf einem konstanten, einstellbaren Level gehalten werden. Die Feuchtigkeit muss mit einer Genauigkeit von +/-15% eingehalten werden. Marvin Stute 04.10.2023 Nils Betten 04.10.2023
2.0 Um verschiedene Pflanzen versorgen zu können muss der Nutzer in der Lage sein, zwischen verschiedenen Bewässerungsmodi zu wählen. Marvin Stute 04.10.2023 Nils Betten 04.10.2023
2.1 Mindestens zwei verschiedene Bewässerungsprofile müssen im finalen Projekt implementiert sein, die Möglichkeit, sowohl Hard- als auch Software für mehr zu erweitern muss gegeben sein. Marvin Stute 04.10.2023 Nils Betten 04.10.2023
3.0 Zwei Feuchtigkeitssensoren messen unabhängig voneinander die Feuchtigkeit an zwei verschiedenen Positionen des Topfs. Marvin Stute 04.10.2023 Nils Betten 04.10.2023
4.0 Eine Pumpe wird zur Förderung des Wassers aus einem Reservoir zum Blumentopf eingesetzt. Marvin Stute 04.10.2023 Nils Betten 04.10.2023
4.1 Die Förderhöhe der verwendeten Pumpe muss mindestens 150cm betragen. Marvin Stute 04.10.2023 Nils Betten 04.10.2023
5.0 Falls am Behälter der Pflanze möglich kann ein motorisiertes Ventil verwendet werden, um überschüssiges Wasser in den Untertopf oder einen Abwasserbehälter abzuführen. Diese Funktion kann nur nicht absorbiertes Wasser ablassen. Marvin Stute 04.10.2023 Nils Betten 04.10.2023
6.0 Der Sollwert wird in der Software für die einzelnen Bewässerungsprogramme hinterlegt. Marvin Stute 04.10.2023 Nils Betten 04.10.2023
6.1 Der Sollwert wird mit dem/den (mittleren) Messwert(en) des/der Feuchtigkeitssensor(en) verglichen, um die Abweichung vom Sollwert zu ermitteln. Marvin Stute 04.10.2023 Nils Betten 04.10.2023
6.2 Bei erkanntem zu niedrigem Feuchtigkeitsgehalt im Substrat wird über einen Regler die Pumpe angesteuert, um den Feuchtigkeitsgehalt des Substrates anzuheben. Marvin Stute 04.10.2023 Nils Betten 04.10.2023
6.3 Bei Erkennung von stehendem Wasser wird gegebenenfalls über das motorisierte Ventil überschüssiges Wasser abgelassen. Marvin Stute 04.10.2023 Nils Betten 04.10.2023
7.0 Pumpe und Motor müssen als gemeinsam funktionierende Einheit als Strecke fungieren. Marvin Stute 04.10.2023 Nils Betten 04.10.2023
8.0 Das System gibt einen Warnton aus, wenn der Füllstand des Tanks unter einen kritischen Wert fällt. Nils Betten 04.10.2023 Marvin Stute 04.10.2023
8.1 Der Wert wird durch einen Füllstandssensor definiert, welcher unter einem gewissen Füllstand keinen Wasserkontakt mehr hat. Nils Betten 04.10.2023 Marvin Stute 04.10.2023

Bill of materials (BOM)

Anzahl Komponente Preis Link
4 Feuchtigkeitssensor 1,31€ Funduino
1 Arduino Uno 15,90€ Funduino
2 Wasserpumpe (Nicht final) 3,21€ Funduino
2 Wasserventil (Nicht final) 6,18€ Funduino
1 Piezospeaker 0,90€ Funduino

Funktionaler Systementwurf / Technischer Systementwurf

Funktionaler Systementwurf

Funktionaler Systementwurf

Technischer Systementwurf

Technischer Systementwurf

Komponentenspezifikation

Die Komponentenspezifikation beschreibt detailliert die einzelnen Komponenten des Projekts, alle Ein- und Ausgänge sowie alle Parameter, die verwendet werden. Außerdem werden die Spezifikationen der Komponenten in einer Tabelle festgehalten, anhand welcher die Implementierung erfolgen soll.

Durch [Ausklappen] der einzelnen Komponenten werden die detaillierten Beschreibungen tabellarisch dargestellt.

Sollwertgeber

In dieser Komponente wird die aktuelle Position des Buttons eingelesen und dem entsprechenden Sollwert des Regelkreises zugeordnet.


Ausgänge

Ausgänge Beschreibung Einheit
Feuchtigkeit_soll Ermittelter Sollwert basierend auf dem Buttonzustand Digitalwort

Parameter

Parameter Beschreibung Einheit Wert
Zustand_Button Ausgelesener Zustand des installierten Buttons - [-1 0 1]

Spezifikationen

ID Kapitel Inhalt Ersteller Datum
1 Rahmenbedingungen Nils Betten & Marvin Stute 13.10.2023
111 Das Auslesen des Button-Werts erfolgt über einen Digital Read Block in Simulink Nils Betten & Marvin Stute 13.10.2023
112 Der Sollwert muss als Digitalwort ausgegeben werden Nils Betten & Marvin Stute 13.10.2023
113 Die Höhe des vorgegebenen Digitalworts entspricht optimalen Messwerten für Pflanzen mit hohem bzw. niedrigem Wasserbedarf Nils Betten & Marvin Stute 13.10.2023

Regler

In dieser Komponente wird die ermittelte Abweichung von dem Sollwert über einen Regler in ein PWM-Signal umgewandelt, mit dem der Arduino und somit auch die Pumpe angesteuert wird.

Eingänge

Eingänge Beschreibung Einheit
e Vom Sollwert abweichende, ermittelte Regelabweichung Digitalwort

Ausgänge

Ausgänge Beschreibung Einheit
PWM PWM-Ausgabe an den digitalen Arduino Pin -

Parameter

Parameter Beschreibung Einheit Wert
Zustand_Button Ausgelesener Zustand des installierten Buttons - [-1 0 1]

Spezifikationen

ID Kapitel Inhalt Ersteller Datum
1 Rahmenbedingungen Nils Betten & Marvin Stute 13.10.2023
211 Der Regler darf nicht zu stark oscillieren da sonst ein ordnungsgemäßes funktionieren der Pumpe nicht mehr sichergestellt werden kann. Nils Betten & Marvin Stute 13.10.2023
212 Der PWM-Wert muss auf die Maximal bzw. Minimal mögliche Größe beschränkt werden, die der Arduino Pin verarbeiten kann. Nils Betten & Marvin Stute 13.10.2023
2 Berechnung Nils Betten & Marvin Stute 13.10.2023
221 Für die Ermittlung des Reglers wird die Strecke mit einem Sprung angeregt und die gemessene Antwort ausgewertet. Nils Betten & Marvin Stute 13.10.2023
222 Die stationäre Abweichung des Reglers muss minimiert werden. Nils Betten & Marvin Stute 13.10.2023
223 Für den Test wird eine simulierte Strecke aufgebaut, mithilfe derer die Regelparameter eingestellt werden können. Nils Betten & Marvin Stute 13.10.23

Aktor

In dieser Komponente wird das über den Regler ermittelte PWM-Signal an den Arduino Pin weitergegeben, um über ein Relay, die entsprechende Pumpe anzusteuern.

Eingänge

Ausgänge Beschreibung Einheit
PWM PWM-Ausgabe an den digitalen Arduino Pin -


Spezifikationen

ID Kapitel Inhalt Ersteller Datum
1 Rahmenbedingungen Nils Betten & Marvin Stute 13.10.2023
311 Das PWM-Signal des Reglers wird an einen PWM-fähigen Arduino Pin ausgegeben, der über ein Relay die Pumpe ansteuert Nils Betten & Marvin Stute 13.10.2023

Messung

In dieser Komponente wird über einen Feuchtigkeitssensor die aktuelle Feuchtigkeit im Pflanzentopf ausgelesen und

Ausgänge

Ausgänge Beschreibung Einheit
Feuchtigkeit_mess (keine) Digitalwort


Spezifikationen

ID Kapitel Inhalt Ersteller Datum
1 Rahmenbedingungen Nils Betten & Marvin Stute 13.10.2023
311 Die gemessene Feuchtigkeit wird über einen Feuchtigkeitssensor eingelesen und als tatsächliche Feuchtigkeit in den Regelkreis gespeist. Nils Betten & Marvin Stute 13.10.23

Umsetzung

Hardware

Das System besitzt als Kopf einen Arduino Uno mit RTC-Shield. Der Shield dient zum einen dem Aufbau aller gelöteten Komponenten der Schaltung als auch zum anderen dem Datenlogging in der Reglerauslegung und potentiellen Logdateien in der Zukunft. Der Shield versorgt zwei kapazitive Feuchtigkeitssensoren mit Spannung, Ground und liest deren jeweilige Datenleitung aus. Außerdem werden beide Relays von hier mit Spannung und einem Eingangssignal versorgt. Diese steuern die beiden Motoren zum Wasser zu- und abführen an. Hier werden Relays verwendet, um eine galvanische Trennung der beiden Stromkreise zu haben. Die Pumpen operieren mit 12V, während der Rest des Systems mit den 5V des Arduinos arbeitet. Um nicht mit Spannungstransformationen arbeiten zu müssen, wurden beide Stromkreise galvanisch getrennt und werden separat über verschiedene Quellen mit Strom versorgt.

Der Wasserkreislauf beginnt mit dem 10l Reservoir unter der Schaltung und geht mittels eines Schlauches durch Pumpe 1 in die Leitungen zum Pflanzenbehälter. Für die Demonstration in der Hochschule wurde aufgrund des vergleichsweise kleinen Topfes ein Stopfen eingesetzt, der den Durchmesser des Schlauches auf 2mm verringert, da die Regelstrecke bei kleinen Töpfen schnell übersteuert. Der zweite Schlauch liegt unterhalb des Untertopfes und führt über Pumpe 2 zurück in das Reservoir, um kein Wasser zu verschwenden.

Software

Die Software liest kontinuierlich die beiden Feuchtigkeitssensoren ein, diese werden aber in zwei voneinander getrennten Kreisen ausgewertet. Der Messwert des Sensors im Substrat liegt im Wertebereich 0-1023 vor und wird um einen konstanten Wert verringert. Dies sorgt dafür, dass der Wert negativ ist, wenn das Substrat zu trocken wird und positiv bleibt, wenn das Substrat feucht genug ist. Dieses Signal wird mittels eines PI-Reglers in eine Regelgröße umgerechnet.

FORMEL HIERREIN

Die ausgehende Größe wird per PWM-Wandler in ein PWM-Signal mit einer Dauer von 10 Sekunden umgewandelt und ausgegeben. Das Signal muss eine lange Länge haben, da die Relays sonst Schwierigkeiten haben, schnell genug zu schalten, außerdem ist es für die Lebensdauer der Pumpen sehr abträglich, wenn diese mit Intervallen von <1s geschaltet werden.

Der Regler zum Abpumpen ist deutlich einfacher, sobald am Sensor ein bestimmter Grenzwert überschritten wird, also der Sensor im Wasser hängt, wird die Pumpe aktiviert, bis der Sensor wieder trocken liegt. Tests haben ergeben, dass es kein Problem ist, wenn der Sensor kurzfristig unter Wasser liegt.

Vollständiges System

Fertiges System

Komponententest

Durch [Ausklappen] der einzelnen Komponenten werden die detaillierten Beschreibungen tabellarisch dargestellt.

Sollwertgeber

In dieser Komponente wird die aktuelle Position des Buttons eingelesen und dem entsprechenden Sollwert des Regelkreises zugeordnet. Folgend die Tests der Komponente.


Spezifikationen

ID Kapitel Inhalt Ersteller Datum Testergebnis Datum
1 Rahmenbedingungen Nils Betten & Marvin Stute 13.10.2023
111 Das Auslesen des Button-Werts erfolgt über einen Digital Read Block in Simulink Nils Betten & Marvin Stute 13.10.2023 Bestanden 06.12.2023
112 Der Sollwert muss als Digitalwort ausgegeben werden Nils Betten & Marvin Stute 13.10.2023 Bestanden 06.12.2023
113 Die Höhe des vorgegebenen Digitalworts entspricht optimalen Messwerten für Pflanzen mit hohem bzw. niedrigem Wasserbedarf Nils Betten & Marvin Stute 13.10.2023 Bestanden 06.12.2023

Regler

In dieser Komponente wird die ermittelte Abweichung von dem Sollwert über einen Regler in ein PWM-Signal umgewandelt, mit dem der Arduino und somit auch die Pumpe angesteuert wird. Folgend die Tests der Komponente.

Spezifikationen

ID Kapitel Inhalt Ersteller Datum Testergebnis Datum
1 Rahmenbedingungen Nils Betten & Marvin Stute 13.10.2023
211 Der Regler darf nicht zu stark oscillieren da sonst ein ordnungsgemäßes funktionieren der Pumpe nicht mehr sichergestellt werden kann. Nils Betten & Marvin Stute 13.10.2023 Bestanden 11.12.2023
212 Der PWM-Wert muss auf die Maximal bzw. Minimal mögliche Größe beschränkt werden, die der Arduino Pin verarbeiten kann. Nils Betten & Marvin Stute 13.10.2023 Bestanden 11.12.2023
2 Berechnung Nils Betten & Marvin Stute 13.10.2023
221 Für die Ermittlung des Reglers wird die Strecke mit einem Sprung angeregt und die gemessene Antwort ausgewertet. Nils Betten & Marvin Stute 13.10.2023 Bestanden 07.12.2023
222 Die stationäre Abweichung des Reglers muss minimiert werden. Nils Betten & Marvin Stute 13.10.2023 Bestanden 07.12.2023
223 Für den Test wird eine simulierte Strecke aufgebaut, mithilfe derer die Regelparameter eingestellt werden können. Nils Betten & Marvin Stute 13.10.23 Bestanden 07.12.2023

Aktor

In dieser Komponente wird das über den Regler ermittelte PWM-Signal an den Arduino Pin weitergegeben, um über ein Relay, die entsprechende Pumpe anzusteuern. Folgend die Tests der Komponente.


Spezifikationen

ID Kapitel Inhalt Ersteller Datum Testergebnis Datum
1 Rahmenbedingungen Nils Betten & Marvin Stute 13.10.2023
311 Das PWM-Signal des Reglers wird an einen PWM-fähigen Arduino Pin ausgegeben, der über ein Relay die Pumpe ansteuert Nils Betten & Marvin Stute 13.10.2023 Bestanden 08.12.2023

Messung

In dieser Komponente wird über einen Feuchtigkeitssensor die aktuelle Feuchtigkeit im Pflanzentopf ausgelesen und Folgend die Tests der Komponente.


Spezifikationen

ID Kapitel Inhalt Ersteller Datum Testergebnis Datum
1 Rahmenbedingungen Nils Betten & Marvin Stute 13.10.2023
311 Die gemessene Feuchtigkeit wird über einen Feuchtigkeitssensor eingelesen und als tatsächliche Feuchtigkeit in den Regelkreis gespeist. Nils Betten & Marvin Stute 13.10.2023 Bestanden 06.12.2023

Systemtest

Lorem Ipsum

Ergebnis

Lorem Ipsum

Zusammenfassung

Lorem Ipsum

Lessons Learned

Ganz oben bei den Lessons Learned steht definitiv der Benefit, mithilfe von MatLab Simulink eine Regelstrecke auszulegen und zu simulieren um den Regler korrekt implementieren zu können. Direkt dahinter leider auch die Tatsache, dass eine codebasierte Programmierung der finalen Software (Arduino IDE oder vergleichbares) zu zwei sauberer implementierten Reglern geführt hätte, die QoL Funktionen wie Datalogging mit RTC auf eine SD-Karte deutlich besser unterstützt hätte und in der Implementierung einige Fehler, die teils auch zu einem temporären Umrüsten des gesamten Projektes auf einen Arduino Mega (der Programmspeicher eines Uno reichte nicht mehr für die automatisch generierten Codes von Simulink aus) geführt haben.

Projektunterlagen

Projektplan

Projektplan

Projektdurchführung

Die Durchführung des Projektes war leider durch den Verlauf des Studiums in mehrere Phasen mit mehr oder auch weniger Aktivität am Projekt unterteilt, was dazu geführt hat, dass nicht alle vorher gesteckten Termine immer gehalten werden konnten und zu regelmäßigem Zeitaufwand zum "wieder reinfinden" geführt hat.

Insgesamt sind wir aber mit unserer Umsetzung des Projektes zufrieden. Das System wird zukünftig bei einem von uns mehrere bepflanzte Behälter (ca. 100l Volumen jeweils) mit Wasser versorgen. Zu diesem Zweck wird auch der Verengungsstopfen wieder entfernt werden.

Youtube Video

Lorem Ipsum




→ zurück zur Übersicht: WS2023: Angewandte Elektrotechnik (BSE)