Blog Computing-Plattform Arduino als Gärtner

  • 18.04.2018
  • Pascal Sommer
  • Tech-Talk
  • Ausbildung, Automatisierung, Tech, Tutorial
Computing-Plattform Arduino als Gärtner http://asinfotrack.ch/blog/view/2018-04-18_computing-plattform_arduino_als_gaertner#anchor-comments 0 UserComments http://asinfotrack.ch/images/blog/0051_header.jpg
Wer kennt es nicht, man erfreut sich ab Pflanzen, wie sie kräftig grün leuchten und was passiert? Neben dem Alltag geht das Giessen vergessen und bald verkümmert das Grün und hängt bräunlich über den Topfrand. Lässt sich ein Gewächshaus denn mit innovativer Hardware überwachen und gar automatisch begiessen? In diesem Blog-Beitrag erfahren Sie, wie bei einer Projektarbeit an der TEKO Olten vorgegangen wurde. Sie erhalten einen Einblick in die 4-Phasen Projektmethode der TEKO und wie ein Arduino als «Gärtner» eingesetzt werden kann.

Ich bin Pascal Sommer und seit fünf Semestern bilde ich mich an der TEKO Olten im Bereich Informatik weiter. Im November 2017 habe ich dann den Auftrag erhalten eine Semesterarbeit im Fach Mikrocomputertechnik zu erarbeiten. Für die Umsetzung wurde ein Mikrocontroller zur Verfügung gestellt, welcher individuell eingesetzt werden kann.

In welche Richtung die Lösungsvariante gehen soll, wurde nicht vorgegeben. Es galten jedoch die folgenden Rahmenbedingungen: Aus dem Projekt soll eine innovative Lösung resultieren. Des Weiteren ist das Projekt gemäss der 4-Phasen Projektmethode der TEKO umzusetzen, um die Methodik in einem praktischen Fall anzuwenden. Ausserdem muss die Hardware mindestens vier Komponenten (Aktoren oder Sensoren) beinhalten.



1. Die 4-Phasen Projektmethode

Der Projektprozess besteht nach TEKO-Vorgaben aus den folgenden vier Phasen:

Phase 1: Definition des Projektes

  • Ausgangssituation
  • Zu erarbeitende Ergebnisse
  • Entwurf der Aufgabenstellung
  • Prüfung der Durchführbarkeit
  • Prüfung der Wirtschaftlichkeit

Phase 2: Projektplanung

Geplant wird möglichst einfach und überschaubar. Dies kann in einem sogenannten Meilensteinplan dargestellt werden. Die zeitlich festgelegten Meilensteine dienen der Überprüfung, ob wichtige Ziele auf dem Weg zum Erfolg rechtzeitig erreicht wurden.

Phase 3: Projektrealisierung

In der Realisierungsphase werden die Aufträge Punkt für Punkt abgearbeitet. Fortlaufend werden folgende Punkte geprüft:

  • Stimmt die grundsätzliche Richtung?
  • Liegt das Projekt im Zeitplan?
  • Werden die geplanten Erträge und Kosten eingehalten?
  • Entsprechen die bisher erzielten Ergebnisse den Vorstellungen?
  • Wie hoch ist angesichts des bisher erzielten Fortschritts die Wahrscheinlichkeit, das Projektziel nach Plan zu erreichen?

Werden nachteilige Abweichungen vom Plan festgestellt, können unter anderem folgende Anpassungs- und Koordinierungsmassnahmen ergriffen werden:

  • Leistungsreduzierung:
    Kann das gesteckte Ziel nicht erreicht werden, ist eine Überprüfung erforderlich.
  • Einschränkung der geforderten Qualität:
    Es muss überprüft werden, ob die angestrebte Qualität nicht reduziert werden kann.
  • Anpassung des Projektplans:
    Hierbei werden nicht das Ziel oder die Aufgaben geändert, sondern nur der Weg.
  • Zukauf externer Kapazitäten:
    Reichen die eigenen Ressourcen nicht aus, müssen externe Kapazitäten zugekauft werden.
  • Ablehnung von Änderungswünschen:
    In der Realisationsphase werden oft zusätzliche Änderungen gewünscht. Nehmen diese zu viele Ressourcen in Anspruch, kann eine Zielerreichung insgesamt durch Ablehnung dieser Änderungswünsche erreicht werden.

Phase 4: Projektabschluss

Nach Abschluss des Projektes werden offene Aufgaben und Restarbeiten geklärt. Nicht zu vernachlässigen ist die Würdigung des Erreichten. In einem Projektabschlussbericht sollten die gemachten Erfahrungen systematisch aufgearbeitet und allen zugänglich gemacht werden.

Den Abschluss bildet eine „Projektabschlusssitzung“. In dieser werden folgende Fragen geklärt:

  • Wurden die gesteckten Ziele erreicht?
  • Wenn nein, was waren die Gründe?
  • Wie zufrieden ist der Kunde mit dem Ergebnis?
  • Wie war die Zusammenarbeit mit Fachabteilungen und Externen?
  • Welche Konsequenzen werden aus den Erfahrungen für künftige Projekte gezogen?

Die Elemente der vierten Phase, dem Projektabschluss, sehen auf den ersten Blick eher formal aus und mögen überflüssig erscheinen. Für die Motivation der beteiligten Mitarbeitenden ist es jedoch erforderlich einen „guten Abschluss“ zu haben. Auch sollten die Erfahrungen dokumentiert und damit für künftige Projekte nutzbar gemacht werden.


2. Definition des Projekts

Berechtigterweise stellt sich vielleicht der eine oder die andere Leser/in die Frage, wie ein Informatiker darauf kommt ein automatisiertes Gewächshaus zu entwickeln. Da ich wusste, dass sich meine Freundin frische Kräuter zum Kochen wünscht und diese bei uns zu Hause immer verdorrten, war es naheliegend dazu eine Lösung zu suchen. Das Endprodukt sollte Platz haben für drei Kräuter, nämlich Petersilie, Schnittlauch und Bärlauch.

Im Gewächshaus sollte zudem die Erdnässe gemessen werden, um sicherzustellen, dass die Pflanzen immer genügend gewässert werden. Sollte der Feuchtigkeitssensor bemerken, dass die Erdnässe unter eine bestimmte Schwelle fällt, muss der «Gärtner» Arduino aktiv werden und die Bewässerungspumpe ansteuern, um die Pflanzen zu giessen. Weiter sollten mittels LED-Licht die Pflanzen während einer vorbestimmten Zeit beleuchtet werden damit sie schnell und gut gedeihen.

Mittels Nutzwert- und SWOT-Analysen habe ich mich entschieden, ein «Treibhaus» mit automatischem Bewässerungssystem umzusetzen. Dabei erarbeitete ich das komplette Projekt vom Mini-Gewächshaus bis zum automatisierten Bewässerungssystem.


3. Projektplanung «Garduino»

Für die Umsetzung des Projekts «Garduino» habe ich die folgenden Meilensteine gesetzt. Da das Projekt einen eher kleineren Umfang hatte und ich als alleinige Person daran arbeitete, habe ich auf eine detaillierte Planung verzichtet.

Schritt-Nr. Bezeichnung Meilenstein Soll–Termin Ist-Termin
1.1.1 Projektstart erfolgt - 16.11.2017
1.3.1 Ist-Analyse abgeschlossen 23.11.2017 22.11.2017
1.4.4 Soll-Analyse abgeschlossen 23.11.2017 22.11.2017
1.5.1 Planung der einzelnen Komponenten und Bauteile abgeschlossen 30.11.2017 30.11.2017
1.5.8 Montage von Komponenten auf Gewächshaus erfolgt 07.12.2017 14.12.2017
1.6.8 Schreiben von Code abgeschlossen 14.12.2017 16.12.2017
1.7.8 Testphase abgeschlossen 18.12.2017 18.12.2017
1.8.4 Projektende 20.12.2017 20.12.2017

4. Projektrealisierung

Beschaffung des Materials

Das fertige Mini-Treibhaus wollte ich später in der eigenen Küche aufstellen. Daher sollte es neben den Funktionen auch ein ansprechendes Design aufweisen. Also informierte ich mich im Internet über ein kleines Gehäuse, welches Platz hat für drei Pflanzen. Als ich beim Googeln auf das Möbelgeschäft IKEA stiess, sah ich das perfekte Case für mein Projekt, das Gewächshaus «SOCKER». Es sieht sehr vielversprechend aus und auch die Kosten lagen für mein Experiment mit knapp CHF 20.00 im Rahmen. Also fuhr ich los nach Spreitenbach und kaufte es, womit der erste Schritt getan war.

Weiter musste ich das Folgende beschaffen:

  • Lötkolben
  • Lötzinn, bleifrei
  • PVC Schlauch-T-Verbinder 10 mm 2er Set GARDENA
  • LED-Pflanzenlicht mit Käfigzugfeder 10.6 V 180 mm Weiss-Rot
  • 3 Stk. Seeed Studio Feuchtigkeitssensor SEN92355P
  • Temperatursensor-Modul Iduino SE029 -55 bis +125 °C
  • Isolierschlauch transparent 10 mm PVC
  • Knopfzellen-Akku LIR 2032 Lithium 45 mAh 3.6 V
  • Seeed Studio Kabel ACC90453O
  • 2 Stk. Seeed Studio Relais Modul
  • LED-Treiber 4 bis 8 W 700 mA 6 - 11 V 230 V/AC
  • PVC Schlauch-Y-Verbinder 10 mm, 13 mm (1/2") Ø Barwig 533462
  • Abzweigkasten grau IP54
  • RTC Real Time Clock Speichermodul DS3231
  • Verbindungsklemme flexibel WAGO Transparent, orange

Die Montage

Ich brachte direkt auf das Gehäuse eine Zeichnung der Komponenten-Anordnung an, wie ich vor hatte die Stromzufuhr, das selbstklebenden PIN-Board, den Arduino und das Display zu montieren.

Gleichzeitig zeichnete ich die Bohrlöcher ein und machte mich mit dem Akkubohrer ans Werk. Die Teile konnte ich nun mithilfe von M-Schrauben und Muttern montieren. Danach musste ich die einzelnen Komponenten verkabeln, bevor das Programmieren losgehen konnte.

Der Code

Hier zeige ich Ihnen den Code, den ich für mein Mini-Treibhaus verwende. Sie können Ihn nach Belieben anpassen. Die Feuchtigkeitssensoren können beispielsweise so eingestellt werden, dass die Erde – abhängig von der Pflanzenart – die richtige Nässe aufweist.

Die Uhrzeit, an der sich die Beleuchtung orientiert, muss nur einmal eingestellt werden, weshalb ich dies auskommentiert habe. Die Einschaltzeiten des LED-Lichts können Sie ebenfalls direkt im Code verlängern oder kürzen. Im Moment ist das LED zwischen 6:00 und 23:00 Uhr eingeschaltet.

Das am Gehäuse angebrachte Display zeigt ständig in der oberen Zeile die Uhrzeit an und in der unteren Zeile wird gewechselt zwischen der aktuellen Temperatur im Gehäuse und dem aktuellen Datum.

////////////Include
#include <LiquidCrystal.h>
#include <DS3231.h>

//////////Initialize

// initialize LCD
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

// initalize water sensor 1
int WWert1 = 0;

// initalize water sensor 2
int WWert2 = 0;

// initalize water sensor 3
int WWert3 = 0;

// initialize LED light
int LEDLight = 5;

// initialize pump
int Pump = 13;

// initialisize clock DS3231
DS3231 rtc(SDA, SCL);

// initialize temperature sensor
int tempC;


//////////setup
void setup() {
	// Set up the LCD's number of rows and columns
	lcd.begin(16, 2);
	lcd.setCursor(0, 0);

	// Set up water sensors
	pinMode(WWert1, OUTPUT);
	pinMode(WWert2, OUTPUT);
	pinMode(WWert3, OUTPUT);

	// Set up LED light
	pinMode(LEDLight, OUTPUT);

	// Set up pump
	pinMode(13, OUTPUT);

	// Set up clock
	rtc.begin();

	//Nur ändern bei Zeitänderung!!
	//rtc.setDOW(THURSDAY);
	//rtc.setTime(5, 59, 50);
	//rtc.setDate(14, 12, 2017);
}

void loop() {
	// LED light time control

	Time t;
	Serial.print(rtc.getTimeStr());
	t = rtc.getTime();
	Serial.print(t.hour, DEC);
	if ((t.hour == 6)  || (t.hour == 7)  || (t.hour == 8)  || (t.hour == 9)  || (t.hour == 10) ||
		(t.hour == 11) || (t.hour == 12) || (t.hour == 13) || (t.hour == 14) || (t.hour == 15) ||
		(t.hour == 16) || (t.hour == 17) || (t.hour == 18) || (t.hour == 19) || (t.hour == 20) ||
		(t.hour == 21) || (t.hour == 22))
	{
		digitalWrite(LEDLight, HIGH);
	} else {
		digitalWrite(LEDLight, LOW);
	}

	// Humidity-meter
	/////////////////////

	// Humidity 1 (ca.>200)
	WWert1 = analogRead(A0);
	if(WWert1 > 1) {
		digitalWrite(Pump, HIGH);
		delay(1000);
	} else {
		digitalWrite(Pump, LOW);
		delay(1000);
	}

	///////////////////
	// Humidity 2 (ca.>200)
	WWert2 = analogRead(A2);
	if(WWert2 > 1) {
		digitalWrite(Pump, HIGH);
		delay(1000);
	} else {
		digitalWrite(Pump, LOW);
		delay(1000);
	}

	/////////////////
	// Humidity 3 (ca.>200)
	WWert3 = analogRead(A4);
	if(WWert3 > 1) {
		digitalWrite(Pump, HIGH);
		delay(1000);
	} else {
		digitalWrite(Pump, LOW);
		delay(1000);
	}

	// Temperature
	Serial.print(rtc.getTemp());

	// Print time to the LCD
	lcd.setCursor(0, 0);
	lcd.print("Time: ");
	lcd.print(rtc.getTimeStr(FORMAT_SHORT));
	lcd.setCursor(0 1);
	lcd.print("Date: ");
	lcd.print(rtc.getDateStr());
	delay(3000);
	lcd.clear();

	// Print temperature to the LCD
	lcd.setCursor(0, 0);
	lcd.print("Time: ");
	lcd.print(rtc.getTimeStr(FORMAT_SHORT));
	lcd.setCursor(0, 1);
	lcd.print("Temp: ");
	lcd.print(rtc.getTemp());
	lcd.print(" C");

}

5. Projektabschluss

Ich habe mich schon vor dem Beginn des Semesters auf das Fach Mikrocomputertechnik gefreut. Der Zeitaufwand, den ich für die Umsetzung des Projektes hatte, war in keiner Weise mühsam oder anstrengend. Für die ganze Planung, Beschaffung, Umsetzung und Programmierung benötigte ich ca. 30 Stunden. Das Anbringen der Bohrungen am Gehäuse, das verdrahten des Arduinos als auch das Erlernen des Codes hat mir sehr viel Spass bereitet. Ich kann mir gut vorstellen in Zukunft wieder einmal so ein Projekt umzusetzen und dieses auch zu Hause oder sonst wo zu nutzen.

Am meisten gefällt mir, dass das Projekt einen praktischen Nutzen für mich hat und effektiv im Alltag verwendet werden kann. Meine Freundin war zuerst nicht überzeugt, musste dann aber auch zugeben, dass es nützlich ist und «schon noch cool» aussieht. Nun hoffen wir, dass wir bald die ersten Kräuter ernten können.

Die Projektvorgaben konnte ich vollumfänglich einhalten. Was aber noch geändert werden könnte, ist die Leistung der Wasserpumpe. Sie könnte vermindert oder durch eine schwächere Pumpe ersetzt werden. Momentan fliesst das Wasser noch zu schnell in einer zu hohen Menge in die Blumentöpfe.




Kommentar schreiben


Kommentare

Noch keine Kommentare. Schreiben Sie den ersten Kommentar zu diesem Artikel!