Smarter Kräutergarten: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(121 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:Projekte]]  
[[Kategorie:Projekte]]  
[[Kategorie:ProjekteET MTR BSE WS2020]]
[[Kategorie:ProjekteET MTR BSE WS2020]]
[[Datei:Skizze_Kraeutergarten.jpeg|600px|thumb|right|Abb. 1: Skizze des smarten Kräutergartens.]]
[[Datei:Smarter_Kraeutergarten.jpg|630px|thumb|right|Bild für die Projektmesse.]]
<!-- Kopieren Sie diesen Header in Ihren Artikel, damit er aufgelistet wird.  -->
<!-- Kopieren Sie diesen Header in Ihren Artikel, damit er aufgelistet wird.  -->
'''Autoren: Frederik Markman, Henning Lütkemeier & Daniel Gosedopp''' <br/>
'''Autoren: Frederik Markman, Henning Lütkemeier & Daniel Gosedopp''' <br/>
Zeile 12: Zeile 12:
== Einleitung ==
== Einleitung ==
In diesem Projekt wird ein smarter Kräutergarten entwickelt, der die Pflanzen automatisch mit Wasser und Licht versorgt. Dieses Projekt ist Teil des GET-Fachpraktikums im Studiengang Mechatronik.
In diesem Projekt wird ein smarter Kräutergarten entwickelt, der die Pflanzen automatisch mit Wasser und Licht versorgt. Dieses Projekt ist Teil des GET-Fachpraktikums im Studiengang Mechatronik.
[[Datei:Skizze_Kraeutergarten.jpeg|300px|thumb|right|Abb. 1: Skizze des smarten Kräutergartens]]


== Anforderungen ==
== Anforderungen ==
Zeile 74: Zeile 76:


== Funktionaler Systementwurf/Technischer Systementwurf ==
== Funktionaler Systementwurf/Technischer Systementwurf ==
[[Datei:FunktionalerSystementwurfKraeutergarten.png|600px|thumb|right|Abb. 2: Funktionaler Systementwurf]]
 
Zur Ermittlung der Bodenfeuchtigkeit wird ein Feuchtigkeitssensor eingesetzt. Welche gemessene Feuchtigkeit die richtige ist, soll vorab durch Tests ermittelt werden.
Zur Ermittlung der Bodenfeuchtigkeit wird ein Feuchtigkeitssensor eingesetzt. Welche gemessene Feuchtigkeit die richtige ist, soll vorab durch Tests ermittelt werden.
Außerdem wird der Wasserstand des Tanks mit einem Wasserstandssensor und der Umgebungslichteinfall mit einem Fotowiderstand gemessen.
Außerdem wird der Wasserstand des Tanks mit einem Wasserstandssensor und der Umgebungslichteinfall mit einem Fotowiderstand gemessen.
Der Microcontroller filtert die Sensorsignale ggf. und wertet diese aus. Bei zu geringer Bodenfeuchtigkeit wird die Pumpe angesteuert, welche die Pflanzen bewässert. Dabei soll die Pumpe eine Zeit lang fördern (hier sollen auch Erfahrungswerte aus Tests herangezogen werden) und dann wieder abschalten.
Der Microcontroller filtert die Sensorsignale ggf. und wertet diese aus. Bei zu geringer Bodenfeuchtigkeit wird die Pumpe angesteuert, welche die Pflanzen bewässert. Dabei soll die Pumpe eine Zeit lang Wasser fördern (hier sollen auch Erfahrungswerte aus Tests herangezogen werden) und dann wieder abschalten.
Außerdem wird sichergestellt, dass die Pflanzen bei geringem Lichteinfall beleuchtet werden. Dies könnte z.B. in Wintermonaten von Bedeutung sein, wenn die Tage kürzer sind. Als Licht soll ein Vollspektrumlicht (450nm-650nm Wellenlänge) als LED-Streifen zum Einsatz kommen.
Außerdem wird sichergestellt, dass die Pflanzen bei geringem Lichteinfall beleuchtet werden. Dies könnte z.B. in Wintermonaten von Bedeutung sein, wenn die Tage kürzer sind. Als Licht soll ein Vollspektrumlicht (450nm-650nm Wellenlänge) in Form von LED-Streifen zum Einsatz kommen.
Der Füllstand des Wassertanks wird auf einem LC-Display angezeigt. Der funktionale Systementwurf ist in Abbildung 2 dargestellt.
Der Füllstand des Wassertanks wird auf einem LC-Display angezeigt. Der funktionale Systementwurf ist in Abbildung 2 dargestellt.
[[Datei:FunktionalerSystementwurfKraeutergarten.png|600px|thumb|left|Abb. 2: Funktionaler Systementwurf]]


<!-- Füllen Sie Ihre Projektskizze bis hierher aus. Fügen Sie einen Projektplan unten ein.  -->
<!-- Füllen Sie Ihre Projektskizze bis hierher aus. Fügen Sie einen Projektplan unten ein.  -->
<br>
<br>
<br>
<br>
<br>


== Komponentenspezifikation ==
== Komponentenspezifikation ==
Zeile 96: Zeile 106:
|-
|-
|Relais
|Relais
|Die Pumpe und die LED-Streifen werden durch eine externe Spannungsquelle versorgt. Zum ein- und ausschalten dieser Aktoren wird ein 2-Relais Modul verwendet.
|Die Pumpe und die LED-Streifen werden durch eine externe Spannungsquelle versorgt. Zum Ein- und Ausschalten dieser Aktoren wird ein 2-Relais Modul verwendet.
|[[Datei:Kraeutergarten Relais.jpg|126px|mini|zentriert|2-Relais Modul]]  
|[[Datei:Kraeutergarten Relais.jpg|126px|mini|zentriert|2-Relais Modul]]  
|-
|-
|Feuchtigkeitssensor
|Feuchtigkeitssensor
|Die Messung der Bodenfeuchte erfolgt mithilfe eines kapazitiven Bodenfeuchtigkeitssensors. Dieser misst die Änderung der Kapazität in Folge der Änderung des dielektrischen Kontrasts zwischen Wasser und Blumenerde. Das hat den Vorteil, dass die Metallelektroden keinen direkten Kontakt mit der Blumenerde haben und so vor Korrosion geschützt sind.
|Die Messung der Bodenfeuchte erfolgt mit Hilfe eines kapazitiven Bodenfeuchtigkeitssensors. Dieser misst die Änderung der Kapazität in Folge der Änderung des dielektrischen Kontrasts zwischen Wasser und Blumenerde. Das hat den Vorteil, dass die Metallelektroden keinen direkten Kontakt mit der Blumenerde haben und so vor Korrosion geschützt sind.
|[[Datei:Kraeutergarten Feuchtigkeitssensor.PNG|126px|mini|zentriert|Feuchtigkeitssensor]]
|[[Datei:Kraeutergarten Feuchtigkeitssensor.PNG|126px|mini|zentriert|Feuchtigkeitssensor]]
|-
|-
|Ultraschallsensor HC-SR04
|Ultraschallsensor
|Zum erfassen des Wasserstandes im Tank wird der HC-SR04 Ultraschallsensor verwendet. Dieser misst nach Anregung mit einer fallenden Flanke am Trigger-Pin selbstständig die Entfernung und wandelt diese in ein PWM Signal, welches am Echo-Pin zur Verfügung steht.<ref>https://elektro.turanis.de/html/prj121/index.html, abgerufen am 11.12.2021</ref> Mit dem Sensor können 50 Messungen pro Sekunde durchgeführt werden, für dieses Projekt reichen allerdings auch deutlich weniger Messungen aus.
|Zum Erfassen des Wasserstandes im Tank wird der HC-SR04 Ultraschallsensor verwendet. Dieser sendet nach Anregung des Trigger-Pins mit einer steigenden Flanke acht kurze Rechteckwellen aus. Danach wird der Echo Pin auf High gesetzt. Wird ein reflektiertes Signal empfangen, wechselt der Echo-Pin auf Low. Die Zeit, in der der Echo-Pin ein High-Signal liefert (also die Laufzeit), kann mit dem Arduino gemessen werden. Daraus lässt sich die Entfernung zum Objekt berechnen.
|[[Datei:Ultraschallsensor_.jpg|126px|mini|zentriert|Ultraschallsensor]]
|[[Datei:Ultraschallsensor_.jpg|126px|mini|zentriert|Ultraschallsensor]]
|-
|-
|Fotowiderstand (LDR)
|Fotowiderstand (LDR)
|Zur Ermittlung der ambienten Lichtstärke wird ein einfacher Fotowiderstand verwendet. Dieser basiert auf dem fotoelektrischen Effekt: dabei geben Photonen vom einfallenden Licht ihre Energie vollständig an die Elektronen der Atomhüllen ab und regen diese energetisch an. Im Energiebändermodell entspricht dies einem Wechsel vom Valenz- ins Leitungsband, wodurch die elektrische Leitfähigkeit steigt und die abfallende Spannung am LDR sinkt.
|Zur Ermittlung der ambienten Lichtstärke wird ein einfacher Fotowiderstand verwendet. Dieser basiert auf dem fotoelektrischen Effekt: Dabei geben Photonen vom einfallenden Licht ihre Energie vollständig an die Elektronen der Atomhüllen ab und regen diese energetisch an. Im Energiebändermodell entspricht dies einem Wechsel vom Valenz- ins Leitungsband, wodurch die elektrische Leitfähigkeit steigt und die abfallende Spannung am LDR sinkt.
|[[Datei:Kraeutergarten LDR.jpg|126px|mini|zentriert|Fotowiderstand]]
|[[Datei:Kraeutergarten LDR.jpg|126px|mini|zentriert|Fotowiderstand]]
|-
|-
Zeile 120: Zeile 130:
|-
|-
|LC-Display
|LC-Display
|Der aktuelle Füllstand des Wassertanks wird auf einem LC-Display als Balken dargestellt. Genauer handelt es sich um ein QAPASS 1602A<ref>Datenblatt LCD: https://datasheet4u.com/datasheet-pdf/CA/LCD-1602A/pdf.php?id=519148, abgerufen am 11.12.2021</ref>, welches über ein I²C-Modul (PCF8574 Port-Expander Chip<ref>https://www.mikrocontroller.net/articles/Port-Expander_PCF8574, abgerufen am 11.12.2021</ref>) per I²C-Bus angesteuert werden kann.
|Der aktuelle Füllstand des Wassertanks wird auf einem LC-Display als Balken dargestellt. Genauer gesagt, handelt es sich um ein QAPASS 1602A<ref>Datenblatt LCD: https://datasheet4u.com/datasheet-pdf/CA/LCD-1602A/pdf.php?id=519148, abgerufen am 11.12.2021</ref>, welches über ein I²C-Modul (PCF8574 Port-Expander Chip<ref>https://www.mikrocontroller.net/articles/Port-Expander_PCF8574, abgerufen am 11.12.2021</ref>) per I²C-Bus angesteuert werden kann.
||[[Datei:Kraeutergarten LCD.jpg|126px|mini|zentriert|LC-Display mit I²C-Modul]]
||[[Datei:Kraeutergarten LCD.jpg|126px|mini|zentriert|LC-Display mit I²C-Modul]]
|-
|-
|IWAVION USB Ladegerät
|USB Ladegerät
|Zur Spannungsversorgung der LED-Streifen, der Tauchpumpe und des Arduino kommt ein 30W USB-Ladegerät zum Einsatz.  
|Zur Spannungsversorgung der LED-Streifen, der Tauchpumpe und des Arduino kommt ein 30W USB-Ladegerät zum Einsatz.  
|[[Datei:Kraeutergarten Netzteil.PNG|126px|mini|zentriert|Netzteil]]
|[[Datei:Kraeutergarten Netzteil.PNG|126px|mini|zentriert|Netzteil]]
Zeile 132: Zeile 142:
'''Umsetzung der Hardware des Aufbaus'''  
'''Umsetzung der Hardware des Aufbaus'''  


Damit die Umsetzung des Projektes realisierbar ist, haben wir uns dazu entschieden einen 3D Drucker zu nutzen. Dieser wurde verwendet um den Wassertank und den Deckel des Tanks zu drucken. Außerdem wurde der Arm an einem gedruckten Ausgleichskeil befestigt, damit er senkrecht nach oben steht.
Damit die Umsetzung des Projektes realisierbar ist, haben wir uns dazu entschieden einen 3D Drucker zu nutzen. Dieser wurde verwendet, um den Wassertank und den Deckel des Tanks zu drucken. Außerdem wurde der Arm an einem gedruckten Ausgleichskeil befestigt, damit er senkrecht nach oben steht. Der Wassertank wird seitlich an den Blumentopf geklebt. Wie in Abb. 2 zu sehen ist, besitzt der Tank ein kleines Loch, wo der Wasserschlauch durchgeführt wird. Mittels 2-Komponenten-Kleber wurde der Tank an dieser Stelle abgedichtet, sodass kein Wasser austreten kann.


[[Datei:CAD-Wassertank.jpg|400px|thumb|left|Abb. 2: Wassertank <ref> Eigenes Dokument </ref>]]
[[Datei:CAD-Wassertank.jpg|500px|thumb|left|text-bottom|Abb. 2: Wassertank <ref> Eigenes Dokument </ref>]]
[[Datei:CAD-Wassertankdeckel2.jpg|300px|thumb|center|Abb. 3: Wassertankdeckel (Ansicht von unten) <ref> Eigenes Dokument </ref>]] <br>
[[Datei:CAD-Ausgleichsplatte.jpg|300px|thumb|left|Abb. 4: Ausgleichskeil <ref> Eigenes Dokument </ref>]]  


<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
Um den Wassertankdeckel in seiner Position zu fixieren, wurde ein rechteckiger Steg an der Unterseite des Deckels angebracht. Außerdem besitzt der Deckel zwei mittig liegende Löcher, in die der Sender und der Empfänger des Ultraschallsensors eingesetzt werden (siehe Abb. 3).
[[Datei:CAD-Wassertankdeckel2.jpg|500px|thumb|left|text-bottom|Abb. 3: Wassertankdeckel (Ansicht von unten) <ref> Eigenes Dokument </ref>]]
<br>
<br>
<br>
<br>
<br>
<br>
<br>
Zeile 151: Zeile 182:
<br>
<br>


Der Wassertank wird seitlich an den Blumentopf geklebt. Wie in Abb. 2 zu sehen ist, besitzt der Tank ein kleines Loch, wo der Wasserschlauch durchgeführt wird. Mittels Heißkleber wurde der Tank an dieser Stelle abgedichtet, sodass kein Wasser austreten kann.
Um den Wassertankdeckel in seiner Position zu fixieren wurde ein rechteckiger Steg an der Unterseite des Deckels angebracht. Außerdem besitzt der Deckel zwei mittig liegende Löcher, in die der Sender und der Empfänger des Ultraschallsensors eingesetzt werden (siehe Abb. 3).
In Abb. 4 ist ein Ausgleichskeil zu sehen. Dieser sorgt dafür, dass eine Seite des Blumentopfs rechtwinklig zum Boden steht und der Lichtarm dadurch sorgfältig angebracht werden kann.
In Abb. 4 ist ein Ausgleichskeil zu sehen. Dieser sorgt dafür, dass eine Seite des Blumentopfs rechtwinklig zum Boden steht und der Lichtarm dadurch sorgfältig angebracht werden kann.
[[Datei:CAD-Ausgleichsplatte.jpg|500px|thumb|left|text-bottom|Abb. 4: Ausgleichskeil <ref> Eigenes Dokument </ref>]]
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
Es wurden mit der Tauchpumpe kompatible Schläuche der Firma Festo mit einem Innendurchmesser von 4mm und einem Außendurchmesser von 6mm verwendet. Zur eigentlichen Bewässerung wurden am Schlauch Löcher mit einer heißen Nadel angebracht (siehe Abb. 5). Die Schlauchenden sind mit Heißkleber abgedichtet worden.
[[Datei:Kraeutergarten Schlauch.jpg|500px|thumb|left|Abb. 5: Bewässerungslöcher im Schlauch]]
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
Es wurden mit der Tauchpumpe kompatible Schläuche der Firma Festo mit einem Innendurchmesser von x mm und einem Außendurchmesser von y mm verwendet. Zur eigentlichen Bewässerung wurden am Schlauch Löcher mit einer heißen Nadel angebracht (siehe Abb. 5). Die Schlauchenden sind ebenfalls mit Heißkleber abgedichtet worden.


'''Umsetzung der Elektronik-Hardware'''
'''Umsetzung der Elektronik-Hardware'''


In Abbildung 6 ist der Verkabelungsplan der Sensoren und Aktoren mit dem Arduino zu sehen. Abbildung 7 zeigt die Umsetzung der Verkabelung am smarten Kräutergarten.
In Abbildung 6 ist der Verkabelungsplan der Sensoren und Aktoren mit dem Arduino zu sehen. Die LED steht stellvertretend für den LED-Streifen und der Gleichstrommotor für die Tauchpumpe, da beide Komponenten in Fritzing nicht enthalten sind. Abbildung 7 zeigt die Umsetzung der Verkabelung am smarten Kräutergarten.
[[Datei:Kraeutergarten_Schaltplan.PNG|350px|mini|Abb. 6: Verkabelungsplan]]
[[Datei:Kraeutergarten Schaltplan.PNG|420px|thumb|left|Abb. 6: Verkabelungsplan]]
[[Datei:Eletronik.jpg|425px|thumb|center|Abb. 7: Verkabelung am Kräutergarten]]
<br>
 
'''Umsetzung der Software'''
 
Die Software ist folgendermaßen strukturiert:
*Bibliotheken einbinden
*Pinbelegung der Sensoren und Aktoren festlegen
*Konstanten definieren
*Funktionen deklarieren
*Globale Variablen definieren
*Setup-Funktion
**Serielle Schnittstelle initialisieren
**Digitale I/O setzen
**LC-Display initialisieren
*Loop-Funktion
**Sensordaten auslesen
**Wasserstand auf LC-Display ausgeben
**Beleuchtungsstunden der Pflanzen zählen
**LED-Streifen ein-/ausschalten
**Pumpe ein-/ausschalten
*Funktionsdefinitionen


Die LED-Streifen werden immer dann eingeschaltet, wenn ein in den Tests ermittelter Grenzwert für das Umgebungslicht unterschritten wird und die Beleuchtungszeit der Pflanzen pro Tag noch bei unter 16 Stunden liegt. Dies ist ein üblicher Wert bei Pflanzenzüchtern.<ref>https://www.pflanzenlampen.org/belichtungsdauer/, abgerufen am 07.01.2021</ref>
Das Ausschalten der LED-Streifen erfolgt bei Überschreiten einer zweiten Schwelle. Es wurden bewusst zwei Schwellwerte gewählt (Hysterese), um ein schnelles Ein- und Ausschalten der LED-Streifen am Schwellwert zu verhindern.


Die Pumpe wird bei zu trockenem Boden für kurze Zeit eingeschaltet. Die Einschaltdauer für ausreichende Bewässerung wurde ebenfalls durch Tests ermittelt/bewertet und liegt bei 2,5 Sekunden. Danach wird 15 Sekunden gewartet, sodass das Wasser nachsickern kann.


'''Umsetzung der Software'''
Der Wasserstand im Wassertank wird auf dem LCD als Balken dargestellt.


== Komponententest ==
== Komponententest ==
'''Ultraschallsensor'''
Mit dem Ultraschallsensor soll der Wasserstand gemessen werden. Dazu wurde der Wassertank aufgefüllt, die Messung gestartet und dann für kurze Zeit die Pumpe eingeschaltet. Der Wasserstandsverlauf ist in Abb. 8 dargestellt.
[[Datei:Tank_abgezapt.PNG|500px|thumb|left|Abb. 8: Ultraschallsensordaten bei kurzem Pumpenlauf.<ref> Eigenes Dokument </ref> <br> x-Achse: Distanz in mm; y-Achse: Zeit in ms]]
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
'''Fotowiderstand'''
Um den Lichteinfall zu messen, wurde ein Fotowiderstand verbaut. Der ADC-Rohwert des Fotowiderstands im Testraum bei Tageslicht lag bei ca. 600. Bei Verdecken des Fotowiderstands fällt der Wert und bei Beleuchtung mit einer Taschenlampe steigt der Wert (siehe Abb. 9). Hier kann also mit einem Schwellwert gearbeitet werden. Sobald der ADC-Rohwert diesen Wert unterschreitet, wird der LED-Streifen eingeschaltet. Um am Schwellwert keine schnellen Ein-/Ausschaltvorgänge zu bekommen, wird mit einer Ausschalthysterese gearbeitet.
[[Datei:Test_LDR.PNG|500px|thumb|left|Abb. 9: Fotowiderstandsdaten bei unterschiedlichen Lichteinstrahlungen.<ref> Eigenes Dokument </ref> <br> x-Achse: ADC-Rohwert; y-Achse: Zeit in ms]]
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
'''Kapazitiver Feuchtigkeitssensor'''
Es soll außerdem die Bodenfeuchtigkeit gemessen werden. Dazu wurde ein Kapazitiver Feuchtigkeitssensor verwendet. In Abb. 10 sind die Messwerte bei trockener Erde zu sehen, diese liegen bei ca. 400. Bei feuchter Erde sinken die Werte ab (siehe Abb. 11). Nach dem Bewässern erschien ein Wert von 250 optimal. Softwareseitig wird die Pumpe 2,5 Sekunden eingeschaltet, um diesen Wert bei zuvor trockenem Boden ungefähr zu erreichen.
[[Datei:Feuchte_Trockene_Erde.PNG|500px|thumb|left|Abb. 10: Bodenfeuchtigkeitssensordaten bei trockener Erde.<ref> Eigenes Dokument </ref> <br> x-Achse: ADC-Rohwert; y-Achse: Zeit in ms]]
[[Datei:Feuchte_Erde.PNG|575px|thumb|center|Abb. 11: Bodenfeuchtigkeitssensordaten bei feuchter Erde.<ref> Eigenes Dokument </ref> <br> x-Achse: ADC-Rohwert; y-Achse: Zeit in ms]]
<br>
'''Tauchpumpe, LED-Streifen und Relais'''
Zuletzt wurden die Aktoren getestet. Um die Pumpe zu testen, wurde der Tank mit Wasser aufgefüllt und leergepumpt. In Abb. 12 wird deutlich, dass die Pumpe seinen Zweck erfüllt. Außerdem ist hier das violette Licht erkennbar, die LED-Streifen funktionieren also auch einwandfrei. Da zur Ansteuerung die Relais verwendet wurden, ist gleichzeitig auch dessen Funktion sichergestellt.
[[Datei:Test_Pumpe.jpg|300px|thumb|left|Abb. 12: Tauchpumpe und LED-Streifen im Einsatz <ref> Eigenes Dokument </ref>]]
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>


== Ergebnis ==
== Ergebnis ==
Der fertige Kräutergarten ist in der folgenden Abbildung zu sehen. Die zuvor definierten Anforderungen konnten allesamt erfüllt werden.
Die Anforderungs-ID6 (Vollspektrum LED-Beleuchtung muss bei zu wenig Umgebungslicht eingeschaltet werden.) wurde außerdem um eine
maximale Belichtungsdauer der Pflanzen von 16 Stunden pro Tag ergänzt.
[[Datei:Smarter_Kraeutergarten.jpg|500px|thumb|left|Abb. 13: Endergebnis des smarten Kräutergartens]]
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>


== Zusammenfassung ==
== Zusammenfassung ==
=== Lessons Learned ===
=== Lessons Learned ===
Das Projekt hat uns gelehrt, ein System von der Projektplanung über die Konstruktion und Programmierung bis hin zu den Komponententests und dem Gesamttest zu entwickeln. Die bereits im Grundstudium gelernten Studieninhalte waren dabei eine große Hilfe. Als Lessons Learned sind folgende Punkte besonders hervorzuheben:
* Notwendigkeit einer guten Projektplanung
* Anforderungsorientiertes Arbeiten
* Verlöten von Kabeln und Bauelementen
* Umgang mit Microcontroller, Sensoren und Aktoren sowie dessen Auswahl
* Schaltplanerstellung mit Fritzing
* Workflow beim 3D-Druck


== Projektunterlagen ==
== Projektunterlagen ==
=== Projektplan ===
=== Projektplan ===
[[Datei:Projektplan Kraeutergarten.PNG|1600px|thumb|left|Abb. 14: Projektplan "Smarter Kräutergarten"]]
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
=== Projektdurchführung ===
=== Projektdurchführung ===
Nach Erstellung eines Projektplans erfolgte die Auswahl und Beschaffung der Sensoren und Aktoren sowie aller weiteren Bauelemente/Bauteile und des Blumentopfs. Die Einzelkomponenten konnten daraufhin auf ihre Funktion überprüft werden. Anschließend begann die Konstruktion nötiger Teile in SolidWorks, um diese mit einem 3D-Drucker herzustellen. Nach Zusammenbau des Setups konnte das Bewässerungssystem angebracht werden. Die Tauchpumpe wurde in dem Wassertank eingesetzt und das Wasser wird über einen Schlauch in den Blumentopf geführt. Hier erfolgt mittels T-Stück eine Abzweigung auf zwei durchlöcherte Schläuche, sodass die Pflanzen von beiden Seiten bewässert werden. Final wurde die Elektronik angebracht.


== YouTube Video ==
== YouTube Video ==


== Weblinks ==
Ein Video des fertigen Projektes kann [https://youtu.be/BMmLNtK-cis hier] angeschaut werden.
https://store.arduino.cc/products/arduino-uno-rev3/
 
== Literatur ==
== Literatur ==



Aktuelle Version vom 10. Januar 2022, 22:43 Uhr

Bild für die Projektmesse.

Autoren: Frederik Markman, Henning Lütkemeier & Daniel Gosedopp
Betreuer: Prof. Schneider


→ zurück zur Übersicht: WS 21/22: Angewandte Elektrotechnik (BSE)


Einleitung

In diesem Projekt wird ein smarter Kräutergarten entwickelt, der die Pflanzen automatisch mit Wasser und Licht versorgt. Dieses Projekt ist Teil des GET-Fachpraktikums im Studiengang Mechatronik.

Abb. 1: Skizze des smarten Kräutergartens

Anforderungen

ID Anforderung Ersteller Datum Geprüft von Datum
Tabelle 1: Anforderungen an den smarten Kräutergarten
1 Die Anlage muss abgedichtet sein, sodass kein Wasser austreten kann. D. Gosedopp 27.10.2021 H. Lütkemeier 27.10.2021
2 Es muss das Umgebungslicht erkannt werden. D. Gosedopp 27.10.2021 H. Lütkemeier 27.10.2021
3 Die Bodenfeuchtigkeit muss gemessen werden. F. Markman 27.10.2021 H. Lütkemeier 27.10.2021
4 Der Füllstand des Wassertanks muss erfasst werden. F. Markman 27.10.2021 H. Lütkemeier 27.10.2021
5 Wasser muss mit Hilfe einer Pumpe aus dem Tank in den Topf gefördert werden. D. Gosedopp 27.10.2021 H. Lütkemeier 27.10.2021
6 Vollspektrum LED-Beleuchtung muss bei zu wenig Umgebungslicht eingeschaltet werden. F. Markman 27.10.2021 H. Lütkemeier 27.10.2021
7 Auf einem Display muss der Füllstand des Wassertanks angezeigt werden. F. Markman 27.10.2021 H. Lütkemeier 27.10.2021

Funktionaler Systementwurf/Technischer Systementwurf

Zur Ermittlung der Bodenfeuchtigkeit wird ein Feuchtigkeitssensor eingesetzt. Welche gemessene Feuchtigkeit die richtige ist, soll vorab durch Tests ermittelt werden. Außerdem wird der Wasserstand des Tanks mit einem Wasserstandssensor und der Umgebungslichteinfall mit einem Fotowiderstand gemessen. Der Microcontroller filtert die Sensorsignale ggf. und wertet diese aus. Bei zu geringer Bodenfeuchtigkeit wird die Pumpe angesteuert, welche die Pflanzen bewässert. Dabei soll die Pumpe eine Zeit lang Wasser fördern (hier sollen auch Erfahrungswerte aus Tests herangezogen werden) und dann wieder abschalten. Außerdem wird sichergestellt, dass die Pflanzen bei geringem Lichteinfall beleuchtet werden. Dies könnte z.B. in Wintermonaten von Bedeutung sein, wenn die Tage kürzer sind. Als Licht soll ein Vollspektrumlicht (450nm-650nm Wellenlänge) in Form von LED-Streifen zum Einsatz kommen. Der Füllstand des Wassertanks wird auf einem LC-Display angezeigt. Der funktionale Systementwurf ist in Abbildung 2 dargestellt.

Abb. 2: Funktionaler Systementwurf







Komponentenspezifikation

Komponente Beschreibung Abbildung
Arduino UNO R3 Bei dem in diesem Projekt verwendeten Microcontroller handelt es sich um den Arduino Uno Rev3. Dieser besitzt neben 14 digitalen I/O Pins, von denen 6 als PWM Outputs genutzt werden können, auch 6 analoge Eingänge.[1] Für dieses Projekt werden 4 digitale I/Os sowie 2 Analogeingänge benötigt.
Arduino Uno Board
Relais Die Pumpe und die LED-Streifen werden durch eine externe Spannungsquelle versorgt. Zum Ein- und Ausschalten dieser Aktoren wird ein 2-Relais Modul verwendet.
2-Relais Modul
Feuchtigkeitssensor Die Messung der Bodenfeuchte erfolgt mit Hilfe eines kapazitiven Bodenfeuchtigkeitssensors. Dieser misst die Änderung der Kapazität in Folge der Änderung des dielektrischen Kontrasts zwischen Wasser und Blumenerde. Das hat den Vorteil, dass die Metallelektroden keinen direkten Kontakt mit der Blumenerde haben und so vor Korrosion geschützt sind.
Feuchtigkeitssensor
Ultraschallsensor Zum Erfassen des Wasserstandes im Tank wird der HC-SR04 Ultraschallsensor verwendet. Dieser sendet nach Anregung des Trigger-Pins mit einer steigenden Flanke acht kurze Rechteckwellen aus. Danach wird der Echo Pin auf High gesetzt. Wird ein reflektiertes Signal empfangen, wechselt der Echo-Pin auf Low. Die Zeit, in der der Echo-Pin ein High-Signal liefert (also die Laufzeit), kann mit dem Arduino gemessen werden. Daraus lässt sich die Entfernung zum Objekt berechnen.
Ultraschallsensor
Fotowiderstand (LDR) Zur Ermittlung der ambienten Lichtstärke wird ein einfacher Fotowiderstand verwendet. Dieser basiert auf dem fotoelektrischen Effekt: Dabei geben Photonen vom einfallenden Licht ihre Energie vollständig an die Elektronen der Atomhüllen ab und regen diese energetisch an. Im Energiebändermodell entspricht dies einem Wechsel vom Valenz- ins Leitungsband, wodurch die elektrische Leitfähigkeit steigt und die abfallende Spannung am LDR sinkt.
Fotowiderstand
5V USB Mini Tauchpumpe Um das Wasser aus dem Tank in den Blumentopf zu befördern, wird eine Tauchpumpe verwendet. Diese kann über USB betrieben werden. Zur Ansteuerung über das Relais wird das USB-Kabel durchtrennt und nur die Versorgungs- und Ground-Leitung verwendet.
Tauchpumpe
LED-Streifen Die Photosynthese von Pflanzen ist besonders aktiv, wenn das Licht eine Wellenlänge um die 450nm (blau) oder um die 650nm (rot) besitzt.[2] Daher kommt ein LED-Streifen zum Einsatz, der violettes Licht, also eine Mischung aus blau und rot, emittiert.
LED-Streifen
LC-Display Der aktuelle Füllstand des Wassertanks wird auf einem LC-Display als Balken dargestellt. Genauer gesagt, handelt es sich um ein QAPASS 1602A[3], welches über ein I²C-Modul (PCF8574 Port-Expander Chip[4]) per I²C-Bus angesteuert werden kann.
LC-Display mit I²C-Modul
USB Ladegerät Zur Spannungsversorgung der LED-Streifen, der Tauchpumpe und des Arduino kommt ein 30W USB-Ladegerät zum Einsatz.
Netzteil

Umsetzung (HW/SW)

Umsetzung der Hardware des Aufbaus

Damit die Umsetzung des Projektes realisierbar ist, haben wir uns dazu entschieden einen 3D Drucker zu nutzen. Dieser wurde verwendet, um den Wassertank und den Deckel des Tanks zu drucken. Außerdem wurde der Arm an einem gedruckten Ausgleichskeil befestigt, damit er senkrecht nach oben steht. Der Wassertank wird seitlich an den Blumentopf geklebt. Wie in Abb. 2 zu sehen ist, besitzt der Tank ein kleines Loch, wo der Wasserschlauch durchgeführt wird. Mittels 2-Komponenten-Kleber wurde der Tank an dieser Stelle abgedichtet, sodass kein Wasser austreten kann.

Abb. 2: Wassertank [5]
















Um den Wassertankdeckel in seiner Position zu fixieren, wurde ein rechteckiger Steg an der Unterseite des Deckels angebracht. Außerdem besitzt der Deckel zwei mittig liegende Löcher, in die der Sender und der Empfänger des Ultraschallsensors eingesetzt werden (siehe Abb. 3).

Abb. 3: Wassertankdeckel (Ansicht von unten) [6]
















In Abb. 4 ist ein Ausgleichskeil zu sehen. Dieser sorgt dafür, dass eine Seite des Blumentopfs rechtwinklig zum Boden steht und der Lichtarm dadurch sorgfältig angebracht werden kann.

Abb. 4: Ausgleichskeil [7]
















Es wurden mit der Tauchpumpe kompatible Schläuche der Firma Festo mit einem Innendurchmesser von 4mm und einem Außendurchmesser von 6mm verwendet. Zur eigentlichen Bewässerung wurden am Schlauch Löcher mit einer heißen Nadel angebracht (siehe Abb. 5). Die Schlauchenden sind mit Heißkleber abgedichtet worden.

Abb. 5: Bewässerungslöcher im Schlauch














Umsetzung der Elektronik-Hardware

In Abbildung 6 ist der Verkabelungsplan der Sensoren und Aktoren mit dem Arduino zu sehen. Die LED steht stellvertretend für den LED-Streifen und der Gleichstrommotor für die Tauchpumpe, da beide Komponenten in Fritzing nicht enthalten sind. Abbildung 7 zeigt die Umsetzung der Verkabelung am smarten Kräutergarten.

Abb. 6: Verkabelungsplan
Abb. 7: Verkabelung am Kräutergarten


Umsetzung der Software

Die Software ist folgendermaßen strukturiert:

  • Bibliotheken einbinden
  • Pinbelegung der Sensoren und Aktoren festlegen
  • Konstanten definieren
  • Funktionen deklarieren
  • Globale Variablen definieren
  • Setup-Funktion
    • Serielle Schnittstelle initialisieren
    • Digitale I/O setzen
    • LC-Display initialisieren
  • Loop-Funktion
    • Sensordaten auslesen
    • Wasserstand auf LC-Display ausgeben
    • Beleuchtungsstunden der Pflanzen zählen
    • LED-Streifen ein-/ausschalten
    • Pumpe ein-/ausschalten
  • Funktionsdefinitionen

Die LED-Streifen werden immer dann eingeschaltet, wenn ein in den Tests ermittelter Grenzwert für das Umgebungslicht unterschritten wird und die Beleuchtungszeit der Pflanzen pro Tag noch bei unter 16 Stunden liegt. Dies ist ein üblicher Wert bei Pflanzenzüchtern.[8] Das Ausschalten der LED-Streifen erfolgt bei Überschreiten einer zweiten Schwelle. Es wurden bewusst zwei Schwellwerte gewählt (Hysterese), um ein schnelles Ein- und Ausschalten der LED-Streifen am Schwellwert zu verhindern.

Die Pumpe wird bei zu trockenem Boden für kurze Zeit eingeschaltet. Die Einschaltdauer für ausreichende Bewässerung wurde ebenfalls durch Tests ermittelt/bewertet und liegt bei 2,5 Sekunden. Danach wird 15 Sekunden gewartet, sodass das Wasser nachsickern kann.

Der Wasserstand im Wassertank wird auf dem LCD als Balken dargestellt.

Komponententest

Ultraschallsensor

Mit dem Ultraschallsensor soll der Wasserstand gemessen werden. Dazu wurde der Wassertank aufgefüllt, die Messung gestartet und dann für kurze Zeit die Pumpe eingeschaltet. Der Wasserstandsverlauf ist in Abb. 8 dargestellt.

Abb. 8: Ultraschallsensordaten bei kurzem Pumpenlauf.[9]
x-Achse: Distanz in mm; y-Achse: Zeit in ms



















Fotowiderstand

Um den Lichteinfall zu messen, wurde ein Fotowiderstand verbaut. Der ADC-Rohwert des Fotowiderstands im Testraum bei Tageslicht lag bei ca. 600. Bei Verdecken des Fotowiderstands fällt der Wert und bei Beleuchtung mit einer Taschenlampe steigt der Wert (siehe Abb. 9). Hier kann also mit einem Schwellwert gearbeitet werden. Sobald der ADC-Rohwert diesen Wert unterschreitet, wird der LED-Streifen eingeschaltet. Um am Schwellwert keine schnellen Ein-/Ausschaltvorgänge zu bekommen, wird mit einer Ausschalthysterese gearbeitet.

Abb. 9: Fotowiderstandsdaten bei unterschiedlichen Lichteinstrahlungen.[10]
x-Achse: ADC-Rohwert; y-Achse: Zeit in ms




















Kapazitiver Feuchtigkeitssensor

Es soll außerdem die Bodenfeuchtigkeit gemessen werden. Dazu wurde ein Kapazitiver Feuchtigkeitssensor verwendet. In Abb. 10 sind die Messwerte bei trockener Erde zu sehen, diese liegen bei ca. 400. Bei feuchter Erde sinken die Werte ab (siehe Abb. 11). Nach dem Bewässern erschien ein Wert von 250 optimal. Softwareseitig wird die Pumpe 2,5 Sekunden eingeschaltet, um diesen Wert bei zuvor trockenem Boden ungefähr zu erreichen.

Abb. 10: Bodenfeuchtigkeitssensordaten bei trockener Erde.[11]
x-Achse: ADC-Rohwert; y-Achse: Zeit in ms
Abb. 11: Bodenfeuchtigkeitssensordaten bei feuchter Erde.[12]
x-Achse: ADC-Rohwert; y-Achse: Zeit in ms


Tauchpumpe, LED-Streifen und Relais

Zuletzt wurden die Aktoren getestet. Um die Pumpe zu testen, wurde der Tank mit Wasser aufgefüllt und leergepumpt. In Abb. 12 wird deutlich, dass die Pumpe seinen Zweck erfüllt. Außerdem ist hier das violette Licht erkennbar, die LED-Streifen funktionieren also auch einwandfrei. Da zur Ansteuerung die Relais verwendet wurden, ist gleichzeitig auch dessen Funktion sichergestellt.

Abb. 12: Tauchpumpe und LED-Streifen im Einsatz [13]
































Ergebnis

Der fertige Kräutergarten ist in der folgenden Abbildung zu sehen. Die zuvor definierten Anforderungen konnten allesamt erfüllt werden. Die Anforderungs-ID6 (Vollspektrum LED-Beleuchtung muss bei zu wenig Umgebungslicht eingeschaltet werden.) wurde außerdem um eine maximale Belichtungsdauer der Pflanzen von 16 Stunden pro Tag ergänzt.

Abb. 13: Endergebnis des smarten Kräutergartens




















Zusammenfassung

Lessons Learned

Das Projekt hat uns gelehrt, ein System von der Projektplanung über die Konstruktion und Programmierung bis hin zu den Komponententests und dem Gesamttest zu entwickeln. Die bereits im Grundstudium gelernten Studieninhalte waren dabei eine große Hilfe. Als Lessons Learned sind folgende Punkte besonders hervorzuheben:

  • Notwendigkeit einer guten Projektplanung
  • Anforderungsorientiertes Arbeiten
  • Verlöten von Kabeln und Bauelementen
  • Umgang mit Microcontroller, Sensoren und Aktoren sowie dessen Auswahl
  • Schaltplanerstellung mit Fritzing
  • Workflow beim 3D-Druck

Projektunterlagen

Projektplan

Abb. 14: Projektplan "Smarter Kräutergarten"


















Projektdurchführung

Nach Erstellung eines Projektplans erfolgte die Auswahl und Beschaffung der Sensoren und Aktoren sowie aller weiteren Bauelemente/Bauteile und des Blumentopfs. Die Einzelkomponenten konnten daraufhin auf ihre Funktion überprüft werden. Anschließend begann die Konstruktion nötiger Teile in SolidWorks, um diese mit einem 3D-Drucker herzustellen. Nach Zusammenbau des Setups konnte das Bewässerungssystem angebracht werden. Die Tauchpumpe wurde in dem Wassertank eingesetzt und das Wasser wird über einen Schlauch in den Blumentopf geführt. Hier erfolgt mittels T-Stück eine Abzweigung auf zwei durchlöcherte Schläuche, sodass die Pflanzen von beiden Seiten bewässert werden. Final wurde die Elektronik angebracht.

YouTube Video

Ein Video des fertigen Projektes kann hier angeschaut werden.

Literatur


→ zurück zur Übersicht: WS 21/22: Angewandte Elektrotechnik (BSE)

  1. https://store.arduino.cc/products/arduino-uno-rev3/, abgerufen am 11.12.2021
  2. https://www.pro-emit.de/ratgeber/vollspektrum-led/, abgerufen am 11.12.2021
  3. Datenblatt LCD: https://datasheet4u.com/datasheet-pdf/CA/LCD-1602A/pdf.php?id=519148, abgerufen am 11.12.2021
  4. https://www.mikrocontroller.net/articles/Port-Expander_PCF8574, abgerufen am 11.12.2021
  5. Eigenes Dokument
  6. Eigenes Dokument
  7. Eigenes Dokument
  8. https://www.pflanzenlampen.org/belichtungsdauer/, abgerufen am 07.01.2021
  9. Eigenes Dokument
  10. Eigenes Dokument
  11. Eigenes Dokument
  12. Eigenes Dokument
  13. Eigenes Dokument