Regelung der Wasserzufuhr für Haus- und Nutzpflanzen
Autoren: Marvin Stute, Nils Betten
→ zurück zur Übersicht: WS2023: Angewandte Elektrotechnik (BSE)
Einleitung
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
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
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
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)