Smarter Kräutergarten: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
(166 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
[[Kategorie:Projekte]] | [[Kategorie:Projekte]] | ||
[[Kategorie:ProjekteET MTR BSE WS2020]] | [[Kategorie:ProjekteET MTR BSE WS2020]] | ||
[[Datei: | [[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/> | ||
'''Betreuer: | '''Betreuer: Prof. Schneider''' <br/> | ||
→ zurück zur Übersicht: [[:Kategorie: | → zurück zur Übersicht: [[:Kategorie:ProjekteET_MTR_BSE_WS2021|WS 21/22: Angewandte Elektrotechnik (BSE)]] | ||
== Einleitung == | == Einleitung == | ||
In diesem Projekt wird ein smarter Kräutergarten entwickelt, der die Pflanzen automatisch mit | 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 59: | Zeile 61: | ||
|- | |- | ||
| 6 | | 6 | ||
| LED-Beleuchtung muss bei zu wenig Umgebungslicht eingeschaltet werden. | | Vollspektrum LED-Beleuchtung muss bei zu wenig Umgebungslicht eingeschaltet werden. | ||
| F. Markman | | F. Markman | ||
| 27.10.2021 | | 27.10.2021 | ||
Zeile 66: | Zeile 68: | ||
|- | |- | ||
| 7 | | 7 | ||
| Auf einem Display | | Auf einem Display muss der Füllstand des Wassertanks angezeigt werden. | ||
| F. Markman | | F. Markman | ||
| 27.10.2021 | | 27.10.2021 | ||
Zeile 74: | Zeile 76: | ||
== Funktionaler Systementwurf/Technischer Systementwurf == | == Funktionaler Systementwurf/Technischer Systementwurf == | ||
Zur Ermittlung der Bodenfeuchtigkeit wird ein Feuchtigkeitssensor eingesetzt. Außerdem wird der Wasserstand des Tanks mit einem Wasserstandssensor und der Umgebungslichteinfall mit einem Fotowiderstand gemessen. | Zur Ermittlung der Bodenfeuchtigkeit wird ein Feuchtigkeitssensor eingesetzt. Welche gemessene Feuchtigkeit die richtige ist, soll vorab durch Tests ermittelt werden. | ||
Der Microcontroller wertet | Außerdem wird der Wasserstand des Tanks mit einem Wasserstandssensor und der Umgebungslichteinfall mit einem Fotowiderstand gemessen. | ||
Der Füllstand des Wassertanks wird auf einem | 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. | |||
[[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 == | ||
{| class="mw-datatable" | |||
! style="font-weight: bold;" | Komponente | |||
! style="font-weight: bold;" | Beschreibung | |||
! style="font-weight: bold;" | 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.<ref>https://store.arduino.cc/products/arduino-uno-rev3/, abgerufen am 11.12.2021</ref> Für dieses Projekt werden 4 digitale I/Os sowie 2 Analogeingänge benötigt. | |||
|[[Datei:Arduino UNO R3.jpg|126px|mini|zentriert|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. | |||
|[[Datei:Kraeutergarten Relais.jpg|126px|mini|zentriert|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. | |||
|[[Datei:Kraeutergarten Feuchtigkeitssensor.PNG|126px|mini|zentriert|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. | |||
|[[Datei:Ultraschallsensor_.jpg|126px|mini|zentriert|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. | |||
|[[Datei:Kraeutergarten LDR.jpg|126px|mini|zentriert|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. | |||
|[[Datei:Kraeutergarten Tauchpumpe.PNG|126px|mini|zentriert|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.<ref>https://www.pro-emit.de/ratgeber/vollspektrum-led/, abgerufen am 11.12.2021</ref> Daher kommt ein LED-Streifen zum Einsatz, der violettes Licht, also eine Mischung aus blau und rot, emittiert. | |||
||[[Datei:Kraeutergarten LED Streifen.PNG|126px|mini|zentriert|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<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]] | |||
|- | |||
|USB Ladegerät | |||
|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]] | |||
|} | |||
== Umsetzung (HW/SW) == | == 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. | |||
[[Datei:CAD-Wassertank.jpg|500px|thumb|left|text-bottom|Abb. 2: Wassertank <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> | |||
<br> | |||
<br> | |||
<br> | |||
<br> | |||
<br> | |||
<br> | |||
<br> | |||
<br> | |||
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> | |||
'''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. | |||
[[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. | |||
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 == | ||
Ein Video des fertigen Projektes kann [https://youtu.be/BMmLNtK-cis hier] angeschaut werden. | |||
== Literatur == | == Literatur == |
Aktuelle Version vom 10. Januar 2022, 22:43 Uhr
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.
Anforderungen
ID | Anforderung | Ersteller | Datum | Geprüft von | Datum |
---|---|---|---|---|---|
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.
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
USB Ladegerät | Zur Spannungsversorgung der LED-Streifen, der Tauchpumpe und des Arduino kommt ein 30W USB-Ladegerät zum Einsatz. |
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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)
- ↑ https://store.arduino.cc/products/arduino-uno-rev3/, abgerufen am 11.12.2021
- ↑ https://www.pro-emit.de/ratgeber/vollspektrum-led/, abgerufen am 11.12.2021
- ↑ Datenblatt LCD: https://datasheet4u.com/datasheet-pdf/CA/LCD-1602A/pdf.php?id=519148, abgerufen am 11.12.2021
- ↑ https://www.mikrocontroller.net/articles/Port-Expander_PCF8574, abgerufen am 11.12.2021
- ↑ Eigenes Dokument
- ↑ Eigenes Dokument
- ↑ Eigenes Dokument
- ↑ https://www.pflanzenlampen.org/belichtungsdauer/, abgerufen am 07.01.2021
- ↑ Eigenes Dokument
- ↑ Eigenes Dokument
- ↑ Eigenes Dokument
- ↑ Eigenes Dokument
- ↑ Eigenes Dokument