Projekt 83: Automatische Pflanzenbewässerung: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(45 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 13: Zeile 13:
Bei der automatischen Pflanzenbewässerung wird mittels Feuchtigkeitssensor die aktuelle Feuchtigkeit in der Pflanze gemessen. Der aktuelle Wert wird auf die vorher eingestellte Regelgröße gehalten, indem eine Pumpe angesteuert wird und diese die Pflanze je nach Bedarf bewässert. <br/>
Bei der automatischen Pflanzenbewässerung wird mittels Feuchtigkeitssensor die aktuelle Feuchtigkeit in der Pflanze gemessen. Der aktuelle Wert wird auf die vorher eingestellte Regelgröße gehalten, indem eine Pumpe angesteuert wird und diese die Pflanze je nach Bedarf bewässert. <br/>
Zusätzlich werden ein Lichtsensor sowie Temperatursensor installiert. Die Daten werden über ein Zeitintervall in einem Diagramm/Graphen ausgegeben. Dadurch können Wetterbedingungen über einen bestimmten Zeitraum erkannt werden. <br/>
Zusätzlich werden ein Lichtsensor sowie Temperatursensor installiert. Die Daten werden über ein Zeitintervall in einem Diagramm/Graphen ausgegeben. Dadurch können Wetterbedingungen über einen bestimmten Zeitraum erkannt werden. <br/>
Die Steuerung und Programmierung erfolgt über den Mikrocontroller Arduino.  
Die Steuerung und Programmierung erfolgt über den Mikrocontroller Raspberry Pi 3.
 


== Erwartungen an die Projektlösung ==
== Erwartungen an die Projektlösung ==
Zeile 29: Zeile 28:


Kür: Das Projekt ist skalierbar auf mehrere Pflanzen anwendbar. Alle Pflanzen senden Ihren Bewässerungszustand an einen Server. Über ein Web-Interface läßt sich die Bewässerung für jede Pflanze spezifisch regeln. Bei leerem Wasserbehälter bekommt der Anwender eine Hinweis-E-Mail.
Kür: Das Projekt ist skalierbar auf mehrere Pflanzen anwendbar. Alle Pflanzen senden Ihren Bewässerungszustand an einen Server. Über ein Web-Interface läßt sich die Bewässerung für jede Pflanze spezifisch regeln. Bei leerem Wasserbehälter bekommt der Anwender eine Hinweis-E-Mail.
== Einleitung ==
In dem GET-Fachpraktikum sollen elektrotechnische und mechatronische Fähigkeiten ausgebaut werden. Im Anschluss an vier Praktikumstermine sollen durch diverse Projekte ([http://193.175.248.52/wiki/index.php/Kategorie:ProjekteET_MTR_BSE_WS2018 Organisationsrahmen der Projekte]), welche in Kleingruppen behandelt werden, außerdem die Management-Fähigkeiten innerhalb eines Projekts vertieft werden.
In diesem Artikel wird die Erarbeitung einer automatischen Pflanzenbewässerung gezeigt. Das Projekt wird von Valentin Joshua Schniederkötter und David Reger bearbeitet. Durch das Projekt wird ein guter Einblick in die zukünftige Arbeit eines Ingenieurs gewährleistet. Die Studierenden werden mit neuen Problemstellungen konfrontiert.


== Aufgabe ==
== Aufgabe ==
Zeile 34: Zeile 37:


'''Mechanik:''' <br/>
'''Mechanik:''' <br/>
• Entwurf eines Gehäuses für den Arduino (Schutz) <br/>
• Bau einer elektrischen Wasserpumpe (optional, evtl. Kauf einer günstigen Aquariumpumpe) <br/>
• Bau einer elektrischen Wasserpumpe (optional, evtl. Kauf einer günstigen Aquariumpumpe) <br/>
• Prototypenbau <br/>
• Prototypenbau <br/>
Zeile 42: Zeile 44:
• Verlötung der elektrischen Wasserpumpe (optional, s.o.) <br/>
• Verlötung der elektrischen Wasserpumpe (optional, s.o.) <br/>
• Verdrahtung der elektrischen Komponenten <br/>
• Verdrahtung der elektrischen Komponenten <br/>
• Anschluss zum Arduino herstellen <br/>
• Anschluss zum Raspberry Pi herstellen <br/>
• Funktionstest (korrekte Verdrahtung, Zusammenspiel der Komponenten) <br/><br/>
• Funktionstest (korrekte Verdrahtung, Zusammenspiel der Komponenten) <br/><br/>


Zeile 48: Zeile 50:
• Auswertung der erfassten Sensordaten <br/>
• Auswertung der erfassten Sensordaten <br/>
• Ausgabe in einem Diagramm <br/>
• Ausgabe in einem Diagramm <br/>
• Sensordaten in Datenbank speichern <br/>
• Programmierung der Pumpensteuerung <br/><br/>
• Programmierung der Pumpensteuerung <br/><br/>
== Einleitung ==


== Projekt ==
== Projekt ==


=== <font size="4"> Prozessmodell <br> </font> ===
=== <font size="4"> Projektplanung <br> </font> ===


Das Projekt wurde nach dem [https://de.wikipedia.org/wiki/V-Modell| V-Modell] durchgeführt. <br>
Das Projekt wurde nach dem [https://de.wikipedia.org/wiki/V-Modell| V-Modell] durchgeführt. <br>
Zeile 67: Zeile 66:
<br>
<br>


<font size="3">'''Entwickelnde Phasen''' <br> <br> </font>
==== Entwickelnde Phasen ====
'''1. Anforderung<br>'''
'''1. Anforderung<br>'''
In der ersten Phase des Projektes werden die Anforderungen definiert. Hierzu werden Überlegungen angestellt, welche Funktionen die automatische Pflanzenbewässerung haben soll. In Absprache mit dem Auftraggeber (Prof. Dr. Ulrich Schneider, Daniel Klein) werden die vom Auftragnehmer (David Reger, Valentin Schniederkötter) festgelegten Anforderungen geklärt und zusätzliche Anforderungen vom Auftraggeber ergänzt. Die Anforderungen werden im Lastenheft dokumentiert (s. Projektordner).<br>
In der ersten Phase des Projektes werden die Anforderungen definiert. Hierzu werden Überlegungen angestellt, welche Funktionen die automatische Pflanzenbewässerung haben soll. In Absprache mit dem Auftraggeber (Prof. Dr. Ulrich Schneider, Daniel Klein) werden die vom Auftragnehmer (David Reger, Valentin Schniederkötter) festgelegten Anforderungen geklärt und zusätzliche Anforderungen vom Auftraggeber ergänzt. Die Anforderungen werden im Lastenheft dokumentiert (s. Projektordner).<br>
Zeile 77: Zeile 76:
Bei dem Systementwurf wird der Hardwareaufbau des Systems entwickelt. Zunächst werden Überlegungen angestellt wie die Bauteile angeordnet werden sollen, um eine Pflanzenbewässerung zu gewährleisten. Weiterhin wird mit Hilfe des Programmes Fritzing eine Schaltung entworfen. <br><br>
Bei dem Systementwurf wird der Hardwareaufbau des Systems entwickelt. Zunächst werden Überlegungen angestellt wie die Bauteile angeordnet werden sollen, um eine Pflanzenbewässerung zu gewährleisten. Weiterhin wird mit Hilfe des Programmes Fritzing eine Schaltung entworfen. <br><br>


<font size="3"> '''Prüfende Phasen''' <br> <br> </font>
==== Prüfende Phasen ====
 
'''4. Systemintegration'''<br>
'''4. Systemintegration'''<br>
Bei der Systemintegration wird das System anhand des Systementwurfes aufgebaut. Die Sensoren werden nach dem Schaltplan angeschlossen und angesteuert. Außerdem wird das Programm geschrieben und der Quellcode erstellt, um die Sensordaten auszuwerten und die Regelung zu erstellen.<br>
Bei der Systemintegration wird das System anhand des Systementwurfes aufgebaut. Die Sensoren werden nach dem Schaltplan angeschlossen und angesteuert. Außerdem wird das Programm geschrieben und der Quellcode erstellt, um die Sensordaten auszuwerten und die Regelung zu erstellen.<br>
Zeile 86: Zeile 86:
'''6. Validierung'''<br>
'''6. Validierung'''<br>
Die Validierung schließt das Projekt ab. In dieser Phase wird ein Feldversuch in der natürlichen Umgebung des Produktes durchgeführt. D.h. die Sensoren kommen in die Arbeitsumgebung, in der sie später eingesetzt werden. Außerdem wird das Zusammenspiel der einzelnen Komponenten getestet.
Die Validierung schließt das Projekt ab. In dieser Phase wird ein Feldversuch in der natürlichen Umgebung des Produktes durchgeführt. D.h. die Sensoren kommen in die Arbeitsumgebung, in der sie später eingesetzt werden. Außerdem wird das Zusammenspiel der einzelnen Komponenten getestet.
==== Materialplanung ====
Die notwendigen Materialien wurden in einer BOM (Bill Of Material) zusammengestellt.
{| class="mw-datatable"
! style="font-weight: bold;" | Pos.
! style="font-weight: bold;" | Anzahl
! style="font-weight: bold;" | Bezeichnung
! style="font-weight: bold;" | Preis
|-
| 1.
| 1
| Temperatursensor DS18B20
|  3,65 €
|-
| 2.
| 1
| Feuchtigkeitssensor/Füllstandsensor VMA303
|  4,95 €
|-
| 3.
| 1
| Lichtsensor ST1107
|  5,10 €
|-
| 4.
| 3
| Schlauch 6mm
|  3,49 €
|-
| 5.
| 3
| Schaltdraht
| 1,26 €
|-
| 6.
| 1
| Raspberry Pi 3 B+
| 37,60 €
|-
| 7.
| 1
| Relais 5V
| 2,49 €
|-
|-
| 8.
| 1
| MCP3008
| 2,49 €
|-
|}


=== Projektdurchführung ===
=== Projektdurchführung ===


== Ergebnis ==
==== Schaltplanentwurf ====
 
Für die Erstellung des Schaltplans wird das Programm [http://fritzing.org/home/ Fritzing] verwendet. Um den Schaltplan zu entwerfen wird recherchiert, wie die einzelnen Sensoren an den Raspberry Pi angeschlossen werden. <br>


== Zusammenfassung ==
Der Füllstand-, Feuchtigkeit- und Lichtsensor liefern ein analoges Signal, hierfür musste ein zusätzlicher A/D-Wandler genutzt werden, damit die Werte vom Raspberry Pi eingelesen werden können, da dieser keinen A/D-Wandler integriert hat. Als AD-Wandler wird der MCP3008 verwendet. Mit diesem können die analogen Daten, die die Sensoren liefern in ein digitales Signal umgewandelt und vom Raspberry Pi verarbeitet werden. Der Temperatursensor liefert ein digitales Signal und wird an einen digitalen Port des Raspberry Pi angeschlossen. <br>
 
Die nachfolgenden Bilder zeigen den Aufbau des Systems, wie es zusammengefügt wird (s. Abbildung 2). Außerdem zeigt der Schaltplan die elektrische Verdrahtung des Systems(s.Abbildung 3). <br>
 
[[Datei:Pflanzenbewässerung Steckplatine.png| 500px]]
[[Datei:Pflanzenbewässerung Schaltplan.png| 700px]]
 
==== Softwareentwurf ====
Im Laufe der Überlegungen ergibt sich folgender Programmablaufplan, welcher die Grundstruktur des Programms abbildet:<br> <br>
[[Datei:Programmablauf.PNG | 600px]] <br> <br>
Zuerst muss der Raspberry Pi eingerichtet werden. Als Programmiergrundlage wird [https://de.wikipedia.org/wiki/Node-RED Node-Red] verwendet, welches ein flussbasiertes und sehr übersichtliches Programmieren gewährleistet.
 
Daraufhin müssen alle notwendigen Erweiterungen, wie beispielsweise für den [https://flows.nodered.org/node/node-red-node-pi-mcp3008 MCP3008] in Node-Red implementiert werden.
 
Das Programm ist in folgende Aufgaben gegliedert:
{| class="mw-datatable"
|• Auslesen der Messwerte <br>
• Speichern der Messwerte in eine [https://de.wikipedia.org/wiki/SQLite SQLite]-Datenbank
 
|• Regelung für die Bewässerung
|-
|[[Datei:Programm Bild 1.PNG | 500px]]
|[[Datei:Programm Bild 2.PNG | 500px]]
|-
|• Ansteuerung der Pumpe
|• Erstellung des Dashboards <br>
• Erstellung einer Einstellmöglichkeit für die Soll-Feuchtigkeit
|-
||[[Datei:Programm Bild 4.PNG | 500px]]
||[[Datei:Programm Bild 3.PNG | 500px]]
|-
|}
 
Die Regelung wird als PD-Regler realisiert. Die Bewässerung einer Pflanze ist äußerst träge. Jedoch soll trotzdem ein leichter D-Anteil mit eingebracht werden, der dem P-Anteil entgegensteuert, wenn sich die Feuchtigkeit dem Sollwert nähert.
 
==== Konstruktion und Montage ====
Nach Fertigstellung des Programms werden alle elektrotechnische Komponenten nach dem Schaltplan miteinander verbunden. Hierzu wird ein GPIO Adapter an den Raspberry Pi gesteckt und die Anschlüsse auf ein Breadboard adaptiert. Dies dient zum einfacheren Anschluss der Sensoren an den Raspberry Pi. Zusätzlich wird der MCP3008 auf das Breadboard gesteckt. Die Verbindungen zwischen den elektronischen Komponenten werden über Jumper-Leitungen hergestellt.  <br>
Anschließend wird die mechanische Montage durchgeführt. Bei der mechanischen Montage wird der Raspberry Pi in ein Gehäuse gesteckt. Das Gehäuse dient zum einen zum Schutz des Mikrocontrollers und zum anderen als Kühlung, da in dem Gehäuse ein Lüfter integriert ist. Weiterhin wird für den Wasserbehälter ein Standfuß erstellt, damit der Wasserbehälter nicht umfallen und leer laufen kann. Der Standfuß besteht aus Holz und wird mit Schrauben zusammengefügt. Für den Wasserstandsensor wird eine Aussparung in den Standfuß gesägt. Um den Wasserstandsensor in den Wasserbehälter zu integrieren, wird im Wasserbehälter eine Einkerbung geschnitten. Zusätzlich wird der Wasserstandsensor mit Dichtkleber befestigt, damit kein Wasser austreten kann und der Sensor fest verbaut ist (s.Abbildung 1). Die Wasserschläuche werden auf Länge abgeschnitten und an die Wasserpumpe befestigt. Um eine gleichmäßige Wasserverteilung in der Pflanzenerde zu gewährleisten wird der Wasserschlauch in einem Kreis verlegt und mit kleinen Bohrungen versehen (s.Abbildung 2). Das Endstück des Schlauchs wird abgedichtet, da sonst kein Wasser aus den Bohrungen austreten würde. <br>
 
 
{| class="mw-datatable"
|[[Datei:Bohrungen im Schlauch.jpg|500px|thumb|Abbildung 1]]
|[[Datei:Füllstandsensor im Wasserbehälter.jpg|525px|thumb|Abbildung 2]]
|}
 
==== Testphase ====
In der Inbetriebnahme wird der ein geeigneter Sollwert für die Feuchtigkeit der Erde ermittelt und im Programm geändert. Da diese Regelung sehr träge ist, wird nur selten bewässert. Es wird überprüft, ob alle Sensordaten im Dashboard ausgegeben werden. Die Messwerte können historisch in einem Graphen abgelesen werden. Außerdem sind die letzten Messwerte in einer Tabelle aufgezeigt.<br>
[[Datei:Programm Bild 5.PNG | 800px]]
 
 
In den Einstellungen kann man den Sollwert der Feuchtigkeit ändern, indem man die Pflanzenart auswählt.<br>
[[Datei:Programm Bild 6.PNG | 800px]]
 
Zusätzlich wird die Warnung für einen kritischen Füllstand getestet. Dazu wird der Wasserbehälter geleert und überprüft, ob der Anwender auf einen niedrigen Füllstand hingewiesen wird. Zum Schluss wird die Wasserbeförderung getestet. Die Wasserpumpe hat das Wasser einwandfrei zur Pflanze befördert.
 
== Ergebnis und Zusammenfassung ==
=== Lessons Learned ===
=== Lessons Learned ===
Das Projekt dient als guter Einblick in die spätere Arbeit eines Ingenieuers. Vor allem ist klar geworden wie wichtig die Projektplanung innerhalb eines Projektes ist. Dies wurde besonders bei der Bestellung festgestellt. Da während der Softwareentwicklung Probleme aufgetaucht sind, wie z.B. das Ansteuern der Wasserpumpe. Diese konnte nicht direkt über den Ausgang des Raspberry Pi angesteuert werden, weshalb ein Relais nachträglich bestellt werden musste. Dadurch entstehen Wartezeiten innerhalb des Projektes, welche zu kritschen Folgen führen können. Da der Fehler früh genug erkannt wurde konnte der Abgabetermin trotzdem eingehalten werden. Eine weitere Schwierigkeit stellte der Wasserbehälter dar, da dieser durch den Wasserschlauch umgefallen ist. Aus diesem Grund wurde zusätzlich eine Halterung gebaut, um einen stabilen Stand zu gewährleisten. Außerdem wurden flexiblere Schläuche bestellt, um die Spannung auf den Wasserbehälter zu verringern. <br>
Durch das Auftreten der beschriebenen Probleme konnte die Erkenntnis gezogen werden, dass bei der Planung alle technischen Daten und Konstruktionen des Systems überprüft werden müssen. Somit entsteht ein reibungsloser Projektverlauf und die Projektbeteiligten haben keine Schwierigkeiten Zeiten und Fertigstellung von Ergebnissen einzuhalten. <br>
Weiterhin wurde durch das Projekt eine ideale Verknüpfung der Fächer aus der Mechatronik geschaffen. Das Projekt beinhaltet alle drei Hauptdisziplinen, bestehend aus Informatik, Mechanik und Elektrotechnik. Vor allem konnte theoretisch erlerntes Wissen in die Praxis umgesetzt werden. <br>
=== Verbesserungen ===
In der Ausarbeitung des Projekts haben sich folgende Verbesserungsvorschläge herauskristallisiert: <br>
• Sobald die Wasserpumpe eingeschaltet wird, ist der Raspberry Pi ausgelastet. <br>
Grund hierfür sind Spannungsschwankungen, die durch Einschalten der Wasserpumpe entstehen. Durch eine externe Spannungsversorgung der Wasserpumpe könnte dieses Problem behoben werden <br>
•Im Schlauch fließt das Wasser zurück und gleicht sich mit dem Wasserstand im Wassertank aus. Dadurch muss länger gepumpt werden und ein Dosieren ist nur schwer möglich. <br>
Das Einsetzten von Ventilen kann hier Abhilfe schaffen. Da die Ventile angesteuert werden, können diese geschlossen werden und das zurückfließen von Wasser wird verhindert. Die Dosierung der Wassermenge kann mit Ventilen auch besser eingestellt werden. Zudem ist es möglich mehrere Pflanzen gleichzeitig zu bewässern, wenn mehrere Ventile eingesetzt werden. <br>


== Projektunterlagen ==
== Projektunterlagen ==
Zeile 105: Zeile 227:


Datenblätter:<br>
Datenblätter:<br>
[https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf|Temperatursensor DS18B20]<br>
[https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf Temperatursensor DS18B20]<br>
[http://www.produktinfo.conrad.com/datenblaetter/1600000-1699999/001612748-an-01-en-MF_ARDUINOR_COMPATIBLE_SOIL_MOISTURE_SEN.PDF| Füllstands- und Feuchtigkeitssensor VMA303]<br>
[http://www.produktinfo.conrad.com/datenblaetter/1600000-1699999/001612748-an-01-en-MF_ARDUINOR_COMPATIBLE_SOIL_MOISTURE_SEN.PDF Füllstands- und Feuchtigkeitssensor VMA303]<br>
[http://www.produktinfo.conrad.com/datenblaetter/1400000-1499999/001485334-da-01-en-IDUINO_ST1107_LICHTWIDERSTAND_MODUL.pdf| Lichtsensor ST1007]<br>
[http://www.produktinfo.conrad.com/datenblaetter/1400000-1499999/001485334-da-01-en-IDUINO_ST1107_LICHTWIDERSTAND_MODUL.pdf Lichtsensor ST1007]<br>
[https://static.raspberrypi.org/files/product-briefs/Raspberry-Pi-Model-Bplus-Product-Brief.pdf| Raspberry Pi 3 B+]<br>
[https://static.raspberrypi.org/files/product-briefs/Raspberry-Pi-Model-Bplus-Product-Brief.pdf Raspberry Pi 3 B+]<br>
[https://www.generationrobots.com/media/JQC-3FF-v1.pdf| 5V Relais JQC-3FF]
[https://www.generationrobots.com/media/JQC-3FF-v1.pdf 5V Relais JQC-3FF] <br>
[https://cdn-shop.adafruit.com/datasheets/MCP3008.pdf MCP3008]


== Literatur ==
== Literatur ==

Aktuelle Version vom 17. Januar 2019, 22:05 Uhr


Autoren: David Reger und Valentin Schniederkötter
Betreuer: Prof. Schneider


→ zurück zur Übersicht: WS 18/19: Fachpraktikum Elektrotechnik (MTR)

Thema

Entwicklung einer automatischen Pflanzenbewässerung inklusive Auswertung der Daten von äußeren Einflüssen.
Bei der automatischen Pflanzenbewässerung wird mittels Feuchtigkeitssensor die aktuelle Feuchtigkeit in der Pflanze gemessen. Der aktuelle Wert wird auf die vorher eingestellte Regelgröße gehalten, indem eine Pumpe angesteuert wird und diese die Pflanze je nach Bedarf bewässert.
Zusätzlich werden ein Lichtsensor sowie Temperatursensor installiert. Die Daten werden über ein Zeitintervall in einem Diagramm/Graphen ausgegeben. Dadurch können Wetterbedingungen über einen bestimmten Zeitraum erkannt werden.
Die Steuerung und Programmierung erfolgt über den Mikrocontroller Raspberry Pi 3.

Erwartungen an die Projektlösung

  • Planung des Bewässerungssystems
  • Darstellung der regelungstechnischen Theorie
  • Beschaffung der Bauteile
  • Systemidentifikation (Übertragungsfunktion der Regelstrecke bestimmen)
  • Realisierung des Aufbaus
  • Vergleichen und bewerten Sie verschiedene Regleransätze (P, PI, PID und andere).
  • Modellbasierte Programmierung der Hardware via Simulink
  • Machen Sie ein tolles Videos, welches die Funktion visualisiert.
  • Test und wiss. Dokumentation
  • Live Vorführung während der Abschlusspräsentation

Kür: Das Projekt ist skalierbar auf mehrere Pflanzen anwendbar. Alle Pflanzen senden Ihren Bewässerungszustand an einen Server. Über ein Web-Interface läßt sich die Bewässerung für jede Pflanze spezifisch regeln. Bei leerem Wasserbehälter bekommt der Anwender eine Hinweis-E-Mail.

Einleitung

In dem GET-Fachpraktikum sollen elektrotechnische und mechatronische Fähigkeiten ausgebaut werden. Im Anschluss an vier Praktikumstermine sollen durch diverse Projekte (Organisationsrahmen der Projekte), welche in Kleingruppen behandelt werden, außerdem die Management-Fähigkeiten innerhalb eines Projekts vertieft werden. In diesem Artikel wird die Erarbeitung einer automatischen Pflanzenbewässerung gezeigt. Das Projekt wird von Valentin Joshua Schniederkötter und David Reger bearbeitet. Durch das Projekt wird ein guter Einblick in die zukünftige Arbeit eines Ingenieurs gewährleistet. Die Studierenden werden mit neuen Problemstellungen konfrontiert.

Aufgabe

Die Aufgaben werden in die drei Fachbereiche der Mecahtronik eingeteilt:

Mechanik:
• Bau einer elektrischen Wasserpumpe (optional, evtl. Kauf einer günstigen Aquariumpumpe)
• Prototypenbau
• Zusammenbau der einzelnen Komponenten sowie anschließen der Schläuche

Elektrotechnik:
• Verlötung der elektrischen Wasserpumpe (optional, s.o.)
• Verdrahtung der elektrischen Komponenten
• Anschluss zum Raspberry Pi herstellen
• Funktionstest (korrekte Verdrahtung, Zusammenspiel der Komponenten)

Informatik:
• Auswertung der erfassten Sensordaten
• Ausgabe in einem Diagramm
• Sensordaten in Datenbank speichern
• Programmierung der Pumpensteuerung

Projekt

Projektplanung

Das Projekt wurde nach dem V-Modell durchgeführt.

Phasen nach dem V-Modell


Entwickelnde Phasen

1. Anforderung
In der ersten Phase des Projektes werden die Anforderungen definiert. Hierzu werden Überlegungen angestellt, welche Funktionen die automatische Pflanzenbewässerung haben soll. In Absprache mit dem Auftraggeber (Prof. Dr. Ulrich Schneider, Daniel Klein) werden die vom Auftragnehmer (David Reger, Valentin Schniederkötter) festgelegten Anforderungen geklärt und zusätzliche Anforderungen vom Auftraggeber ergänzt. Die Anforderungen werden im Lastenheft dokumentiert (s. Projektordner).

2. Spezifikation
Nach Festlegung der Anforderungen werden mögliche Umsetzungen spezifiziert. Durch eine Diskussion im Projektteam werden die Spezifikationen im Pflichtenheft festgehalten. Zusätzlich wird eine Bestellliste (BOM) erstellt, um die notwendigen Materialien zu bestellen und die Kosten des Projektes einzusehen.

3. Systementwurf
Bei dem Systementwurf wird der Hardwareaufbau des Systems entwickelt. Zunächst werden Überlegungen angestellt wie die Bauteile angeordnet werden sollen, um eine Pflanzenbewässerung zu gewährleisten. Weiterhin wird mit Hilfe des Programmes Fritzing eine Schaltung entworfen.

Prüfende Phasen

4. Systemintegration
Bei der Systemintegration wird das System anhand des Systementwurfes aufgebaut. Die Sensoren werden nach dem Schaltplan angeschlossen und angesteuert. Außerdem wird das Programm geschrieben und der Quellcode erstellt, um die Sensordaten auszuwerten und die Regelung zu erstellen.

5. Verifikation
Die Verifikation beinhaltet die Überprüfung der Bauteile, ob sie technisch funktionsfähig sind. Außerdem werden die Bauteile und Leitungen auf äußere Beschädigungen überprüft. Um die technische Funktionsfähigkeit zu gewährleisten werden die Sensordaten ausgelesen und nachgemessen, ob diese korrekt sind.

6. Validierung
Die Validierung schließt das Projekt ab. In dieser Phase wird ein Feldversuch in der natürlichen Umgebung des Produktes durchgeführt. D.h. die Sensoren kommen in die Arbeitsumgebung, in der sie später eingesetzt werden. Außerdem wird das Zusammenspiel der einzelnen Komponenten getestet.

Materialplanung

Die notwendigen Materialien wurden in einer BOM (Bill Of Material) zusammengestellt.

Pos. Anzahl Bezeichnung Preis
1. 1 Temperatursensor DS18B20 3,65 €
2. 1 Feuchtigkeitssensor/Füllstandsensor VMA303 4,95 €
3. 1 Lichtsensor ST1107 5,10 €
4. 3 Schlauch 6mm 3,49 €
5. 3 Schaltdraht 1,26 €
6. 1 Raspberry Pi 3 B+ 37,60 €
7. 1 Relais 5V 2,49 €
8. 1 MCP3008 2,49 €

Projektdurchführung

Schaltplanentwurf

Für die Erstellung des Schaltplans wird das Programm Fritzing verwendet. Um den Schaltplan zu entwerfen wird recherchiert, wie die einzelnen Sensoren an den Raspberry Pi angeschlossen werden.

Der Füllstand-, Feuchtigkeit- und Lichtsensor liefern ein analoges Signal, hierfür musste ein zusätzlicher A/D-Wandler genutzt werden, damit die Werte vom Raspberry Pi eingelesen werden können, da dieser keinen A/D-Wandler integriert hat. Als AD-Wandler wird der MCP3008 verwendet. Mit diesem können die analogen Daten, die die Sensoren liefern in ein digitales Signal umgewandelt und vom Raspberry Pi verarbeitet werden. Der Temperatursensor liefert ein digitales Signal und wird an einen digitalen Port des Raspberry Pi angeschlossen.

Die nachfolgenden Bilder zeigen den Aufbau des Systems, wie es zusammengefügt wird (s. Abbildung 2). Außerdem zeigt der Schaltplan die elektrische Verdrahtung des Systems(s.Abbildung 3).

Softwareentwurf

Im Laufe der Überlegungen ergibt sich folgender Programmablaufplan, welcher die Grundstruktur des Programms abbildet:



Zuerst muss der Raspberry Pi eingerichtet werden. Als Programmiergrundlage wird Node-Red verwendet, welches ein flussbasiertes und sehr übersichtliches Programmieren gewährleistet.

Daraufhin müssen alle notwendigen Erweiterungen, wie beispielsweise für den MCP3008 in Node-Red implementiert werden.

Das Programm ist in folgende Aufgaben gegliedert:

• Auslesen der Messwerte

• Speichern der Messwerte in eine SQLite-Datenbank

• Regelung für die Bewässerung
• Ansteuerung der Pumpe • Erstellung des Dashboards

• Erstellung einer Einstellmöglichkeit für die Soll-Feuchtigkeit

Die Regelung wird als PD-Regler realisiert. Die Bewässerung einer Pflanze ist äußerst träge. Jedoch soll trotzdem ein leichter D-Anteil mit eingebracht werden, der dem P-Anteil entgegensteuert, wenn sich die Feuchtigkeit dem Sollwert nähert.

Konstruktion und Montage

Nach Fertigstellung des Programms werden alle elektrotechnische Komponenten nach dem Schaltplan miteinander verbunden. Hierzu wird ein GPIO Adapter an den Raspberry Pi gesteckt und die Anschlüsse auf ein Breadboard adaptiert. Dies dient zum einfacheren Anschluss der Sensoren an den Raspberry Pi. Zusätzlich wird der MCP3008 auf das Breadboard gesteckt. Die Verbindungen zwischen den elektronischen Komponenten werden über Jumper-Leitungen hergestellt.
Anschließend wird die mechanische Montage durchgeführt. Bei der mechanischen Montage wird der Raspberry Pi in ein Gehäuse gesteckt. Das Gehäuse dient zum einen zum Schutz des Mikrocontrollers und zum anderen als Kühlung, da in dem Gehäuse ein Lüfter integriert ist. Weiterhin wird für den Wasserbehälter ein Standfuß erstellt, damit der Wasserbehälter nicht umfallen und leer laufen kann. Der Standfuß besteht aus Holz und wird mit Schrauben zusammengefügt. Für den Wasserstandsensor wird eine Aussparung in den Standfuß gesägt. Um den Wasserstandsensor in den Wasserbehälter zu integrieren, wird im Wasserbehälter eine Einkerbung geschnitten. Zusätzlich wird der Wasserstandsensor mit Dichtkleber befestigt, damit kein Wasser austreten kann und der Sensor fest verbaut ist (s.Abbildung 1). Die Wasserschläuche werden auf Länge abgeschnitten und an die Wasserpumpe befestigt. Um eine gleichmäßige Wasserverteilung in der Pflanzenerde zu gewährleisten wird der Wasserschlauch in einem Kreis verlegt und mit kleinen Bohrungen versehen (s.Abbildung 2). Das Endstück des Schlauchs wird abgedichtet, da sonst kein Wasser aus den Bohrungen austreten würde.


Abbildung 1
Abbildung 2

Testphase

In der Inbetriebnahme wird der ein geeigneter Sollwert für die Feuchtigkeit der Erde ermittelt und im Programm geändert. Da diese Regelung sehr träge ist, wird nur selten bewässert. Es wird überprüft, ob alle Sensordaten im Dashboard ausgegeben werden. Die Messwerte können historisch in einem Graphen abgelesen werden. Außerdem sind die letzten Messwerte in einer Tabelle aufgezeigt.


In den Einstellungen kann man den Sollwert der Feuchtigkeit ändern, indem man die Pflanzenart auswählt.

Zusätzlich wird die Warnung für einen kritischen Füllstand getestet. Dazu wird der Wasserbehälter geleert und überprüft, ob der Anwender auf einen niedrigen Füllstand hingewiesen wird. Zum Schluss wird die Wasserbeförderung getestet. Die Wasserpumpe hat das Wasser einwandfrei zur Pflanze befördert.

Ergebnis und Zusammenfassung

Lessons Learned

Das Projekt dient als guter Einblick in die spätere Arbeit eines Ingenieuers. Vor allem ist klar geworden wie wichtig die Projektplanung innerhalb eines Projektes ist. Dies wurde besonders bei der Bestellung festgestellt. Da während der Softwareentwicklung Probleme aufgetaucht sind, wie z.B. das Ansteuern der Wasserpumpe. Diese konnte nicht direkt über den Ausgang des Raspberry Pi angesteuert werden, weshalb ein Relais nachträglich bestellt werden musste. Dadurch entstehen Wartezeiten innerhalb des Projektes, welche zu kritschen Folgen führen können. Da der Fehler früh genug erkannt wurde konnte der Abgabetermin trotzdem eingehalten werden. Eine weitere Schwierigkeit stellte der Wasserbehälter dar, da dieser durch den Wasserschlauch umgefallen ist. Aus diesem Grund wurde zusätzlich eine Halterung gebaut, um einen stabilen Stand zu gewährleisten. Außerdem wurden flexiblere Schläuche bestellt, um die Spannung auf den Wasserbehälter zu verringern.
Durch das Auftreten der beschriebenen Probleme konnte die Erkenntnis gezogen werden, dass bei der Planung alle technischen Daten und Konstruktionen des Systems überprüft werden müssen. Somit entsteht ein reibungsloser Projektverlauf und die Projektbeteiligten haben keine Schwierigkeiten Zeiten und Fertigstellung von Ergebnissen einzuhalten.
Weiterhin wurde durch das Projekt eine ideale Verknüpfung der Fächer aus der Mechatronik geschaffen. Das Projekt beinhaltet alle drei Hauptdisziplinen, bestehend aus Informatik, Mechanik und Elektrotechnik. Vor allem konnte theoretisch erlerntes Wissen in die Praxis umgesetzt werden.

Verbesserungen

In der Ausarbeitung des Projekts haben sich folgende Verbesserungsvorschläge herauskristallisiert:

• Sobald die Wasserpumpe eingeschaltet wird, ist der Raspberry Pi ausgelastet.
Grund hierfür sind Spannungsschwankungen, die durch Einschalten der Wasserpumpe entstehen. Durch eine externe Spannungsversorgung der Wasserpumpe könnte dieses Problem behoben werden

•Im Schlauch fließt das Wasser zurück und gleicht sich mit dem Wasserstand im Wassertank aus. Dadurch muss länger gepumpt werden und ein Dosieren ist nur schwer möglich.
Das Einsetzten von Ventilen kann hier Abhilfe schaffen. Da die Ventile angesteuert werden, können diese geschlossen werden und das zurückfließen von Wasser wird verhindert. Die Dosierung der Wassermenge kann mit Ventilen auch besser eingestellt werden. Zudem ist es möglich mehrere Pflanzen gleichzeitig zu bewässern, wenn mehrere Ventile eingesetzt werden.

Projektunterlagen

Projektunterlagen befinden sich im SVN unter: Projekt 83 - Unterlagen

YouTube Video

Automatische Pflanzenbewässerung Youtube-Video

Weblinks

Datenblätter:
Temperatursensor DS18B20
Füllstands- und Feuchtigkeitssensor VMA303
Lichtsensor ST1007
Raspberry Pi 3 B+
5V Relais JQC-3FF
MCP3008

Literatur

--- → zurück zur Übersicht: WS 18/19: Fachpraktikum Elektrotechnik (MTR)