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 | Bestelldatum |
---|---|---|---|---|
4 | Feuchtigkeitssensor | 1,31€ | Funduino | 09.11.2023 |
1 | Arduino Uno | 15,90€ | Funduino | bereits vorhanden |
2 | Wasserpumpe | 3,21€ | Funduino | 09.11.2023 |
2 | Wasserventil (Nicht final) | 6,18€ | Funduino | nicht lieferbar zu Bestellzeitpunkt |
1 | Piezospeaker | 0,90€ | Funduino | bereits vorhanden |
Funktionaler Systementwurf / Technischer Systementwurf
Funktionaler Systementwurf
Auf funktionaler Ebene wurde das System nach Komponenten aufgeteilt.
1. Sollwert: Aufgabe dieser Komponente ist es den entsprechenden Sollwert zu ermitteln, den das System aktuell ansteuern soll.
2. Regler: Aufgabe dieser Komponente ist es, aus dem Regelfehler ein PWM-Signal zu erstellen, mit dem die Strecke geregelt werden kann.
3. Aktor: Aufgabe dieser Komponente ist es, mithilfe des PWM-Signals auf die Strecke zu wirken und somit die Feuchtigkeit tatsächlich umzusetzen.
4. Messung: Aufgabe dieser Komponente ist es, die tatsächliche Feuchtigkeit zu messen und als Digitalwort an die Software weiterzugeben.
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 mittels der Analogpins 0 und 1 aus.
Außerdem werden beide Relays von hier mit Spannung und einem Eingangssignal über die Pins 5 und 6 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.
Alle Komponenten wurden mittels M4 Schrauben und Muttern als Abstandshalter auf dem Deckel des Reservoirs angebracht, um auf diese Weise das System kompakt zu halten.
Reglungstechnik
Die Software muss die vom Feuchtigkeitssensor gesammelten Werte einlesen, und damit die beiden Pumpen regeln um eine stets kontrollierte Feuchtigkeit im Topf sicherzustellen. Damit eine erfolgreiche Reglung möglich ist, ist es allerdings zuvor notwendig die Strecke mithilfe eines Einheitssprung zu stimulieren und die Antwort aufzuzeichnen. Diese ermöglicht es dann, die Regler so auszulegen, dass eine kontinuierliche Reglung sichergestellt ist und ein zu großes Überschwingen zu vermeiden. Da die Strecke sehr langsam reagiert, ist auch eine langfristige Auszeichnung notwendig. Konkret wurde die Reaktion der Strecke über 4 Stunden auf einen Einheitssprung mit einer Dauer von 5 Sekunden aufgezeichnet.
In der Reaktion ist eindeutig zu erkennen, wie sich das vom Sensor wahrgenommene Digitalwort über die Zeit erhöht. Dabei wird auch klar, dass es sich bei dem gemessenen System um ein "PT1"-System handelt. Dies wird besonders durch den starken Anstieg zu Beginn und das Abflachen nach oben hin deutlich. Dies gilt als charakteristisches Verhalten für ein "PT1"-System. Nun gilt es, dieses System mithilfe einer Übertragungsfunktion zu beschreiben, um ein simulieren des Systems zu ermöglichen.
Ein PT1 Verhalten lässt sich über die folgende Übertragungsfunktion beschreiben:
Es müssen also die Regelparameter und ermittelt werden. Gemessen wurde das Digitalwort, welches in einem Zeitraum von um angestiegen ist. Dies entspricht 45 A/D-Schritten Differenz. ist also gleich 45.
entspricht also dem Zeitpunkt t, zu dem das Digitalwort 713 gemessen wurde, also:
Es ergibt sich also die Übertragungsfunktion:
Regen wir dieses System mit einem Einheitssprung an und vergleichen die Reaktion mit dem echten System, so wird eine starke Ähnlichkeit deutlich.
Im nächsten Schritt gilt es nun, den Regler für die simulierte Strecke auszulegen. Für den Versuch wurde sich für die Verwendung eines PWM-Reglers entschieden.
Ein PWM (Pulsweitenmodulation) - Regler ist ein digitaler Regler, der eine technische Größe, in diesem Fall den digitalen Output-Pin des Arduino, regelt, indem sie zwischen zwei Werten gewechselt wird. Eine konstante Periodendauer wird in Schleife durchlaufen und setzt sich dabei aus einer Impulsdauer und einer Pausendauer zusammen. Für die Laufzeit der Impulsdauer wechselt der Ausgang auf 1, für die Laufzeit der Pausendauer wechselt der Ausgang auf 0. Der PWM-Ausgang des Reglers gibt die Impulsdauer vor. Hierbei entspricht bspw. ein Ausgang von PWM = 25 insgesamt 25% der gesamten Periodendauer. Der Ausgang ist also auf maximal 100, also Impulsdauer = Periodendauer und minimal 0, also Pausendauer = Periodendauer. Ein PWM-Signal muss durch einen PWM-Generator erzeugt werden, wobei mit dem Arduino gleich mehrere Pins zur Verfügung stehen, die eine solche Funktionalität unterstützen. Um nun den Regler auszulegen muss das Führungsübertragungsverhalten und das Störungsübertragungsverhalten des Reglers bestimmt werden.
Die Führungsübertragungsfunktion wird durch folgende Formel beschrieben:
Die Störungsübertragungsfunktion wird durch die folgende Formel beschrieben:
Für setzen wir nun die oben ermittelte Übertragungsfunktion ein. Wir gehen außerdem davon aus, dass der Sensor ideal ist, also
Dann ergibt sich für die Führungsübertragungsfunktion:
|
<=>
Außerdem für die Störungsübertragungsfunktion:
|
<=>
P-Regler
Um unnötige Komplexität zu vermeiden, wird zunächst die Regelung über einen P-Regler berechnet, mit
Hier ergibt sich:
Es bleibt also mit einem P-Regler eine stationäre Regelabweichung.
PI-Regler
Um einer stationären Regelabweichung entgegen zu wirken, wird als nächster Schritt ein PI-Regler mit
Mit dem PI-Regler ergibt sich:
<=> |
<=>
<=> |
<=>
Ein PI-Regler ermöglicht es also, die stationäre Regelabweichung zu beseitigen und das System perfekt zu regeln. Im Angesicht dessen wurde die Entscheidung getroffen, das System mit einem PI-Regler zu testen.
Software - Simulation
Um die Reglerauslegung zu ermöglichen, wurde zunächst ein vereinfachter Regelkreis mit der Übertragungsfunktion der simulierten Strecke aufgebaut. Dies ermöglicht es verschiedene Regelparameter zu testen ohne lange Wartezeiten zwischen echten Abläufen abzuwarten.
In Abbildung X und Abbildung X findet sich das vollständige Modell, der nebenstehende Code gibt Aufschluss über die notwendigen Parameter.
%**************************************************************** % Hochschule Hamm-Lippstadt * %**************************************************************** % Modul : leseBewässerungsdaten.m * % * % Datum : 22.12.2023 * % * % Funktion : Speichern der Parameter für die Simulation * % des "Blumentopf"-Regelkreises im Wordspace * % * % Implementation : MATLAB 2022b * % * % Req. Toolbox : - * % * % Req. Dateien : Bewaesserungsdaten.m * % * % Author : Nils Betten; Marvin Stute. * % * % Bemerkung : * % * % Letzte Änderung : 16.01.2024 * % * %***************************************************************/ close all; clear all; clc run("Bewaesserungsdaten.m"); RelevanteDaten = Messdaten(1362:15548,2); % Messdaten von 10:10:00 bis 14:10:00 %% Parameter der Strecke K_s = 45; T = 4277; %% Parameter der Regler K_p = 0.05; K_i = 0.0003;
Die genannten Parameter sind sehr gering, da die entsprechende Strecke nur langsam reagiert und zu hohe Parameter zu einem starken Überschwingen der Strecke führen kann. Mit den Reglerparameter von K_p = 0.05 und K_i = 0.0003 reagiert auch der Regler ausreichend langsam, dass ein zu starkes Überschwingen der Strecke vermieden werden kann. In Abbildung X finden sich die Simulationsergebnisse mit den genannten Parametern.
Software - Reale Umsetzung
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.
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 |
Anforderungen
ID | Inhalt | Testcase | Testergebnis | 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. | Die Abweichung des Digitalwortes wurde über eine Stunde gemessen und ausgewertet. | Der Test wurde bestanden, die Abweichung des Digitalwortes lag unter +/- 15%. | 29.12.2023 |
2.0 | Um verschiedene Pflanzen versorgen zu können muss der Nutzer in der Lage sein, zwischen verschiedenen Bewässerungsmodi zu wählen. | Ist eine Einstellmöglichkeit des Sollwertes vorhanden? | Der Sollwert kann sowohl in Code angepasst als auch per Button um 50 erhöht werden. | 29.12.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. | Kann der Sollwert angepasst werden? | Der Sollwert kann sowohl in Code angepasst als auch per Button um 50 erhöht werden. | 29.12.2023 |
3.0 | Zwei Feuchtigkeitssensoren messen unabhängig voneinander die Feuchtigkeit an zwei verschiedenen Positionen des Topfs. | Sind mehrere Sensoren an verschiedenen Positionen angebracht? | Ein Sensor steckt bei unserem Testtopf open im Substrat während ein weiterer etwa 1cm überm Boden zwischen Übertopf und Zwischentopf hängt. | 29.12.2023 |
4.0 | Eine Pumpe wird zur Förderung des Wassers aus einem Reservoir zum Blumentopf eingesetzt. | Ist mindestens eine Pumpe verbaut? | Ja, es ist eine Pumpe zur Zu- und eine zur Ableitung verbaut worden. | 29.12.2023 |
4.1 | Die Förderhöhe der verwendeten Pumpe muss mindestens 150cm betragen. | Ist eine Pumpe verbaut, welche diese Förderhöhe zulässt? | Ja, es ist eine Pumpe verbaut, welche eine Saughöhe von 2m und eine Pumphöhe von 3m hat. | 29.12.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. | Ist am Behälter ein Ventil verbaut? | Nein, der Testtopf für die Messe ist aus Keramik und kann somit kein Ventil erhalten. Alternativ wurde die Abfuhr überschüssigen Wassers per Pumpe implementiert. | 29.12.2023 |
6.0 | Der Sollwert wird in der Software für die einzelnen Bewässerungsprogramme hinterlegt. | Wird der Sollwert der Substratfeuchtigkeit in der Software hinterlegt? | Ja. | 29.12.2023 |
6.1 | Der Sollwert wird mit dem/den (mittleren) Messwert(en) des/der Feuchtigkeitssensor(en) verglichen, um die Abweichung vom Sollwert zu ermitteln. | Wird der Sollwert aus mehreren Werten gemittelt? | Nein, da die Sensoren an zu unterschiedlichen Punkten im Testtopf verbaut wurden. | 29.12.2023 |
6.2 | Bei erkanntem zu niedrigem Feuchtigkeitsgehalt im Substrat wird über einen Regler die Pumpe angesteuert, um den Feuchtigkeitsgehalt des Substrates anzuheben. | Wird dem Testtopf Wasser zugeführt, wenn der Istwert den Sollwert unterschreitet? | Ja. | 29.12.2023 |
6.3 | Bei Erkennung von stehendem Wasser wird gegebenenfalls über das motorisierte Ventil überschüssiges Wasser abgelassen. | Wird überschüssiges Wasser aus dem Testtopf entfernt? | Ja. | 29.12.2023 |
7.0 | Pumpe und Motor müssen als gemeinsam funktionierende Einheit als Strecke fungieren. | Sind Anforderung 6.2 und 6.3 erfüllt? | Ja. | 29.12.2023 |
8.0 | Das System gibt einen Warnton aus, wenn der Füllstand des Tanks unter einen kritischen Wert fällt. | Misst das System erfolgreich den verbleibenden Füllstand? | Nein. Die angedachte und verbaute Lösung hat der konstanten Feuchtigkeit im Wasserreservoir nicht standgehalten und Kurzschlüsse produziert. | 29.12.2023 |
8.1 | Der Wert wird durch einen Füllstandssensor definiert, welcher unter einem gewissen Füllstand keinen Wasserkontakt mehr hat. | Entfällt | - | - |
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)