Internet der Dinge WS2015/SmartPlant

Aus Verteilte Systeme - Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

SmartPlant

Automatisiertes Auslesen des Feuchtigkeitswertes einer Pflanze.

Einleitung

Motivation

In der heutigen, hektischen Zeit, in der ein Termin dem Anderen folgt, ist das manuelle Überprüfen des Wasserstandes und das händische Gießen von Pflanzen nicht immer möglich oder gerät des Öfteren in Vergessenheit. Weiterhin gibt es viele Leute, die nicht mit einem grünen Daumen geboren wurden und Schwierigkeiten beim rechtzeitigen Gießen von Pflanzen haben. Daraus folgende Trockenperioden können den Ertrag einer Nutzpflanze beeinträchtigen, oder gar einen frühen Tod der Pflanze zur Folge haben. Zudem besteht die Problematik, dass unterschiedliche Arten von Pflanzen einen unterschiedlichen Wasserbedarf haben. Im Wahlfach ”Internet der Dinge” soll nun diese Problematik mithilfe von technischen Hilfsmitteln in Form von Sensoren und Aktoren gelöst werden. Dabei soll mit Feuchtigkeitssensoren der Wasserbedarf einer Pflanze ermittelt werden und die daraus ermittelten Daten ins Internet gebracht werden. Hierbei sind denkbare Ansätze, dass die Pflanze ihren Zustand twittert oder ihr eigenes Tagebuch schreibt. Zusätzlich kann aus der normalen Pflanze eine SmartPlant werden, indem automatisch bei Bedarf gegossen wird.

Erwartete Ergebnisse

E1 Recherche zu Messmöglichkeiten für Feuchtigkeitswerte der Erde.

E2 Recherche zu möglichen Hardwarekomponenten (Mikrocontroller, Feuchtigkeitssen-soren, etc.).

E3 Recherche zur Kalibrierung von Sensoren.

E4 Recherche zu möglichen Bewässerungsmethoden. (optional)

E5 Analyse der infrage kommenden Mikrocontroller.

E6 Analyse der infrage kommenden Messmethoden und dazu passender Sensoren.

E7 Analyse einer geeigneten Testumgebung (Größe des Blumentopfes, Art der Erde, etc.).

E8 Analyse der Feuchtigkeitswerte nach Schwellwerten (z.B. sehr trocken, trocken, ...)

E9 Analyse von geeigneten Benachrichtigungsmöglichkeiten des aktuellen Zustandes, z.B. als Blog, über Twitter, etc.

E10 Analyse von geeigneten Bewässerungssystemen. (optional)

E11 Erarbeitung eines Designs zur Umsetzung: Sensorik -> Microcontroller -> Internet.

E12 Erarbeitung eines Designs Sensorkalibrierung.

E13 Implementierung des Designs.

E14 Implementierung der Sensorkalibrierung.

E15 Test und Evaluation des Designs in der Testumgebung.

E16 Dokumentation der analysierten Hardwarekomponenten, Programmierschnittstellen und Werkzeuge, sowie der Designentwürfe im Wiki.

E17 Projektvortrag und Demo.

Geplante Arbeitsschritte

A0 [E1, E2, E3, E4] Recherche
In einer Recherche sollen Möglichkeiten zur Erfassung der Feuchtigkeitswerte, möglicher Hardwarekomponenten wie Mikrocontroller und Sensoren, sowie deren Kalibrierung gefunden werden. Als optionale Tätigkeit soll sich über mögliche Bewässerungssysteme informiert werden.
A1 [E5, E6, E6, E7, E8, E9, E10] Analyse

Die erarbeiteten Informationen sollen in einer Analyse aufbereitet werden, sodass aus diesen ein Design erarbeitet werden kann.

A2 [E11, E12] Design

Aus der Analyse in Arbeitsschritt A1 soll ein Design erarbeitet werden.

A3 [E13, E14] Implementierung
Das in Arbeitsschritt A2 erarbeitete Design soll umgesetzt werden.
A4 [E15] Test & Evaluation
Das Design soll getestet und evaluiert werden.
A5 [E16, E15] Demo & Dokumentation
Die erarbeiteten Informationen und Ergebnisse sollen fortlaufen im Wiki dokumentiert werden. Des Weiteren soll am Ende des Projektes ein Vortrag inklusive einer Demonstration erarbeitet werden.

Analyse

In diesem Abschnitt werden zunächst die möglichen Lösungsansätze gesammelt und näher betrachtet. Auf Grundlage dieser Analyse werden nachfolgend die Designentscheidungen getroffen, aus welcher die Implementierung folgt.

Messmethoden & Sensoren für Bodenfeuchte

Aus den Recherchearbeiten haben sich die folgenden Ansätze für Messmethoden der Feuchtigkeit der Blumenerde herauskristallisiert:

  • Resistiv (Direkte Leitfähigkeit der Erde)
  • Kapazitiv (Erde als Dielektrikum)
  • Saugspannung der Wurzeln
  • Wasserpotential

Wobei je nach Verfügbarkeit mit manchen Sensortypen bereits erste Probemessungen erfolgen konnten.

Messmethode 1: Resistiv

Grundidee

Die Idee hinter dieser Messmethode ist, dass feuchte Erde durch ihren höheren Wassergehalt (mehr gelöste Ionen) besser Elektrizität leitet, als trockene. Diese Veränderungen im Widerstand der Blumenerde können messbar gemacht werden, indem eine angelegte Spannung an eine Messsonde (z.B. ein Nagel) über einen höheren Widerstandswert (Erde ist trocken) stärker abfällt als bei einem niedrigeren Widerstandswert, was zu einer niedrigeren Ausgangsspannung an der zweiten Messsonde führt.

Sensoren

Auf dieser Basis gibt es viele Sensoren aus dem Hobby- und Bastelbereich, beispielsweise von der Firma Sparkfun oder diversen chinesischen Herstellern, z.B. hier. Es ist aber auch möglich sich diese Sensoren selbst mit einfachen Mitteln nachzubauen. Bei der Umsetzung werden zwei elektrisch leitende Messsonden, meist in Form von Stäben oder auch Nägeln verwendet, welche direkten Kontakt zur zu messenden Feuchtigkeit haben müssen. In manchen Variationen dieses Ansatzes wird auch Gips oder Schaumstoff aus Verpackungen genommen, um die Messsonden im gleichen Abstand halten zu können. Bei der Gips-variante besteht allerdings eher die Gefahr, dass er durch seine fehlende Flexibilität bröckelt. Außerdem wirkt der Gips wie ein Schwamm, welcher die umliegende Feuchtigkeit aufsaugt und somit dem Boden Wasser entzieht, wodurch Veränderungen nur sehr träge erfasst werden können und der Wasserhaushalt der Erde selbst negativ beeinflusst wird.

Vorteile
  • Einfacher Aufbau, dadurch auch leicht selbst herstellbar
  • Sehr günstig
Nachteile
  • Durch angelegte Gleichspannung entsteht Elektrolyse: Minerale und Wasser werden umgewandelt (z.B. Spaltung des Wassers in Sauer- und Wasserstoff) ==> Korrosion des Sensors), welche auf Dauer die Genauigkeit der Messungen beeinflusst.
  • Leitfähigkeit stets abhängig von Anzahl Ionen im Wasser und dem Boden ==> Jedes Umfeld ist anders und kann sich ändern, Kalibrierung schwierig
  • Gleichbleibende Kontaktfläche mit Boden nicht immer gewährleistet (Pflanze wächst, etc.)
  • Genereller Kontakt von leitenden Materialien (z.B. Metall) mit feuchtem Boden nötig, Vergiftungsgefahr des Bodens
  • Beeinflussung des Wasserhaushalts bei Verwendung von Gips/Schaumstoff
Erste Tests

Eine erste Testreihe mit den resistiven Sensoren ist in Abbildung 1 zu sehen. Dort sind jeweils zwei Sensoren in zwei Versuchsblumentöpfen untergebracht, wobei ein Versuchsblumentopf mit trockener und einer mit nasser Erde befüllt wurde. Je niedriger der gemessene Wert, desto nasser die Erde. Bei den beiden Sensoren in der nassen Erde ist zu erkennen, dass diese zeitweise gravierend unterschiedliche Werte anzeigen und dass eine Normalisierung der Werte erst nach ca. 24 Stunden vorliegt. Die Sensoren in der trockenen Erde benötigen für die Normalisierung lediglich 3-5 Stunden und zeigen dann den gleichen Verlauf an. Bei verschiedenen Tests ist zudem aufgefallen, dass der gemessene Wert stark von der Einstecktiefe der Sensoren abhängt. Weiterhin sind die Sensoren extrem empfindlich gegen Berührung, sodass die Werte bei Berührung extrem springen und sich erst nach Stunden wieder Normalisieren.

Sensor SiliconCarne Abb. 1: 24h Messreihe Resistive Sensoren

Nach 2 Wochen in der Erde wurde festgestellt, dass das leitende Material der Sensoren bereits anfing sich durch Korrosion aufzulösen.

Abb. 2: Resistive Sensoren nach 2 Wochen

Messmethode 2: Kapazitiv

Grundidee

Die Grundidee bei dieser Messmethode ist die Arbeitsweise eines Kondensators: "Kondensatoren bestehen im Prinzip aus zwei elektrisch leitfähigen Flächen, den Elektroden, die von einem isolierenden Material, dem Dielektrikum, voneinander getrennt sind. Die Größe der Kapazität wird durch die Fläche der Elektroden, das Material des Dielektrikums und den Kehrwert des Abstandes der Elektroden zueinander bestimmt" [Quelle: Wikipedia]. Als Dielektrikum kann dabei die Blumenerde dienen, welche je nach Feuchtigkeit besser oder schlechter isoliert, indem die Feuchtigkeit das Elektrische Feld des Kondensators beeinflusst. Gemessen wird dabei die Zeit, welche benötigt wird bis sich der Kondensator aufgeladen hat. Ist ein gewisser Spannungswert erreicht, wird dieser an einem auf INPUT geschalteten GPIO-Pin als anliegender HIGH-Wert erkannt. Dies kann durch zusätzliche elektronische Bausteine, wie Schmitt-Trigger welche ab einer Spannungsgrenze ein HIGH-Signal erzeugen, auch sauberer erzeugt werden.

Die Zeit der Flankengenerierung ist dabei im Wesentlichen von den drei Faktoren

  • Kapazität des Kondensators
  • Spannungsquelle zum Aufladen des Kondensators und Beeinflussung durch z.B. Widerstände
  • Veränderung des elektrischen Feldes (Feuchtigkeit der Blumenerde)

abhängig und kann auf die Feuchte des Bodens umgerechnet werden.

Sensoren

Bei dem VH-400 von der Firma vegetronix handelt es sich um einen kommerziellen Sensor auf Basis dieser Messmethode, was sich die Firma mit ca. 50€ gut bezahlen lässt. Es ist auch möglich eigene Sensoren auf Basis dieser Messmethode zu bauen. Beispielsweise indem die leitenden Platten anstatt parallel - nebeneinander angebracht werden (co-planar plate capacitor). In dieser Ausführung lässt sich der Kondensator gut in einem länglichen, gut vergrabbaren Sensor verbauen, ohne dass sich zwischen den beiden leitenden Platten nasse Erde befinden muss. Ein Projekt dieser Art ist beispielsweise hier zu finden und würde ca. 10€ für 3 Platinen in der Fertigung kosten.

Vorteile
  • Kein direkter Kontakt vom Metall zum Boden nötig (kann beschichtet werden, etc.)
  • Kein Eingriff in die chemische Beschaffenheit des Erdbodens
  • Kann leicht selbst gebaut werden
  • Quasi wartungsfrei
Nachteile
  • Die Genauigkeit der Messung ist direkt von der Kapazität und somit der Größe des Kondensators abhängig
Erste Tests

Für die ersten Tests wurden zwei kapazitive Sensortypen verwendet: zum Einen eine sehr günstige Variante, welche lediglich aus einem Kondensator ohne eigene Logik besteht (nachfolgend als Typ SiliconCarne bezeichnet) und eine etwas teurere Variante mit eigener enthaltener Logik (nachfolgend als Typ Giesomat bezeichnet).

Bei einem 24-Stunden Test von drei Sensoren des Typs SiliconCarne ist aufgefallen, dass die Werte zwar leicht schwanken, aber dennoch nie allzu große Abweichungen von ihrem Mittelwert aufweisen. Des Weiteren fällt im Vergleich zu den ersten Tests mit resistiven Sensoren auf, dass dieser Typ der Sensoren anscheinend keine Zeit zum Einpendeln der Werte benötigt, sondern die Werte zu Beginn der Messung im selben Wertebereich wie am Ende der Messung liegen. Im Vergleich zu den Messungen mit den resistiven Sensoren wurde bei diesem ersten Test allerdings jeweils gleichtrockene Erde verwendet. Der Graph der 24-Stunden Messung ist in nachfolgender Abbildung zu sehen.

Sensor SiliconCarne Abb. 1: 24h Messreihe Giesomat Sensoren

Beim 24-Stunden Test von drei Sensoren des Typs Giesomat ist aufgefallen, dass die Werte im direkten Vergleich zu der günstigeren Variante SiliconCarne viel weniger schwanken. Dies kann zum Einen auf die weitaus größere Kapazität des Kondensators, gegeben durch seine größere Fläche und zum Anderen auf die zusätzlichen Elektronikbauteile auf dem Sensor selbst zurückgeführt werden, welche ein saubereres Signal bei einem ausreichend geladenen Kondensator senden. Genau wie bei den ersten Tests mit den Sensoren des Typs SiliconCarne benötigen auch Sensoren des Typs Giesomat anscheinend keine Zeit zum Einpendeln der Werte, was die Annahme nochmals unterstützt und weiteren Messungen sehr zugute kommt, da nun das Zeitfenster der Messungen stark heruntergesetzt werden kann. Genau wie bei den Testmessungen mit Sensoren des Typs SiliconCarne wurde wieder in gleichtrockener Erde getestet. Der Graph der 24-Stunden Messung ist in der folgenden Abbildung zu sehen.

Sensor SiliconCarne Abb. 1: 24h Messreihe Giesomat Sensoren

Messmethode 3: Saugspannung

Grundidee

Wenn die Pflanze Wasser benötigt, muss sie dieses aus der Erde entnehmen. Das geschieht durch den Aufbau von Unterdruck, erzeugt vom Kapillareffekt in Kombination mit Osmose und dem Transpirationssog, was zusammen auch als Wurzeldruck bezeichnet wird. Dieses Phänomen wird schon seit langer Zeit beobachtet (siehe beispielsweise hier) und ist deshalb gut erforscht. Auf genau dem gleichen Prinzip können auch Sensoren gebaut werden, welche mithilfe von diesen Eigenschaften und Gesetzmäßigkeiten messen, wie groß der Potentialunterschied zwischen dem Wassergehalt des Bodens und einer Referenz (meist ein kleiner Wasserbehälter) im Sensor ist. Diese Art der Sensoren nennt man auch Tensiometer.

Sensoren

Die Sensoren sind von Ihrer Beschaffenheit her eher kompliziert, was ein Nachbauen sehr schwierig macht (Tank für Referenz-flüssigkeit, Membran, etc.). Aus diesem Grund kommen ausschließlich kommerziell erwerbbare Sensoren wie der Watermark 200SS für ca. 40$ infrage.

Vorteile
  • Sehr gute, realitätsnahe Messungen möglich (selbe Mechanik wie die Pflanze selbst)
Nachteile
  • Sensoren auf Basis von Referenz-Flüssigkeit müssen gewartet (aufgefüllt) werden
  • Sensoren auf Basis von Referenz-Flüssigkeit sind nicht frostsicher, daher nicht für den Außeneinsatz geeignet
  • Veränderungen in der Bodenfeuchte nur sehr langsam messbar, da der Kapillareffekt träge ist

Messmethode 4: Wasserpotential

Grundidee

Der Begriff des Wasserpotentials stammt aus der Pflanzenphysiologe und beschreibt die Wassersättigung in (Boden, Luft, Zelle, Pflanze oder Flüssigkeiten) einem System. Das Wasserpotential ist die Arbeit, die geleistet werden muss, um eine Volumeneinheit Wasser aus dem betrachteten System auf das Potentialniveau (Potential) des Bezugssystems (reines Wasser bei Atmosphären-Druck [Atmosphäre] und gleicher Höhe über dem Meeresspiegel) zu überführen. Die Saugspannung ist das Gegenteil des Wasserpotentials, d.h. je geringer das Wasserpotential desto höher die Saugspannung. Aus physikalischer Sicht wird das Wasserpotential als Druck gemessen.

Sensoren

Die Messung des Wasserpotential kann direkt an der Pflanze oder im Boden erfolgen. Die Messung direkt an der Pflanze ist relativ schwierig, da die Pflanze oder Teile der Pflanze in einer Druckkammer gehalten werden müssen. Die Messung im Boden ist hierbei deutlich einfacher und kann durch einen Gipsblock mit Elektroden erfolgen, die die Leitfähigkeit dessen messen.

Methoden zur autonom gesteuerten Bewässerung [optional]

Bewässerungsmethode 1: Wasserturm mit Ventil

Bei dieser Bewässerungsmethode kann das durch den Höhenunterschied bestehende Druckpotential ausgenutzt werden, sodass lediglich ein Ventil geöffnet werden muss um Wasser an die Pflanzen zu befördern. Das Ventil kann entweder direkt über einen GPIO Pin eines Mikrocontrollers, oder über ein per Mikrocontroller geschaltetes Relais geöffnet werden. Der vom Wassernetz autarke Behälter des Wasserturms kann dabei beliebig groß sein, was auch eine gewisse Sicherheit gewährleistet, weil im Fehlerfalle lediglich der Inhalt des Behälters auslaufen kann. Ein Wasserturm kann dabei zur Bewässerung mehrerer Pflanzen verwendet werden. So können beispielsweise an ein Ventil mehrere Schläuche durch entsprechende Adapter angeschlossen werden, was allerdings keine selektive Regulierung des Wassers pro Pflanze ermöglichen würde. Eine Alternative wäre mehrere gesteuerte Ventile an einen Wasserturm anzubringen, sodass jede Pflanze ihre eigene steuerbare Bewässerung besitzt. Dieser Ansatz benötigt mehr Komponenten und ist dadurch teurer, weil pro Anschluss ein Ventil und gegebenenfalls ein Relais benötigt wird.

Vorteile
  • Behälter ist autark vom Wassernetz
  • Größe des Behälters variabel
  • Möglicher Wasserschaden hält sich in Grenzen
  • Wartungsarm
  • Energiesparend
  • Günstig
Nachteile
  • Behälter muss nachgefüllt werden
  • Behälter muss höher als die Pflanze stehen

Bewässerungsmethode 2: Steuerung über Pumpen

Diese Art der Bewässerung ist ähnlich zur Methode 1, jedoch ist kein erhöhter Wasserbehälter notwendig, sodass dieser neben, oder sogar unterhalb der Pflanze stehen kann. Für die Beförderung des Wassers ist allerdings eine Pumpe nötig, welche wieder direkt über einen Mikrocontroller, oder über ein an diesen angeschlossenes Relais geschaltet werden kann. Es können mehrere Pflanzen selektiv durch mehrere Pumpen bewässert werden.

Vorteile
  • Behälter ist autark vom Wassernetz
  • Größe des Behälters variabel
  • Möglicher Wasserschaden hält sich in Grenzen
  • Behälter kann frei positioniert werden


Nachteile
  • Mehr Mechanik nötig, dadurch wartungsintensiver
  • Mehr Energieverbrauch durch zusätzliche Pumpen
  • Eher teuer

Bewässerungsmethode 3: Wasseranschluss mit Ventil

An einen Wasseranschluss, wie beispielsweise ein Wasserhahn, kann über Adapter ein steuerbares Ventil(siehe dazu Bewässerungsmethode 1 und 2) angebracht werden, welches eine dauerhafte Steuerung der Bewässerung einer Pflanze ohne ein Nachfüllen eines Behälters zulässt. Es können mehrere Pflanzen bewässert werden, indem entweder mehrere Anschlüssen verwendet werden, oder eine Kaskadierung von Ventilen vorgenommen wird, was allerdings zusätzlichen Regelungsaufwand bedeuten würde. Als Abwandlung dieser Methode wäre auch eine Steuerung von Wassersprinkler-Anlagen denkbar, welche allerdings nur für den Außeneinsatz sinnvoll wäre.

Vorteile
  • Kein Nachfüllen von Behältern notwendig
  • Günstig
Nachteile
  • Potential für große Wasserschäden
  • Wasserleitungen müssen vom Wasseranschluss zur Pflanze gelegt werden (oder Wassersprinkler)

Geeignete Mikrocontroller

Bei der Auswahl geeigneter Mikrocontroller wurde anhand von den Kriterien

  • Verfügbarkeit
  • Preis
  • Größe
  • Energiebedarf
  • Konnektivität
  • Schnittstellen für Peripherie

entschieden.

Folgende Mikrocontroller sind bei der Analyse in die nähere Auswahl gekommen:

  • Raspberry Pi
  • ESP8266
  • Particle Photon

Mikrocontroller 1: Raspberry Pi

Allgemein

Hierbei handelt es sich um einen gerade im Experimentier- und Hobbybereich sehr beliebten Bastelrechner, welcher sich durch seine gute Verfügbarkeit, einfache Bedienung und eine sehr aktive Community auszeichnet. Er verfügt über viele Anschlussmöglichkeiten in Form von GPIO Pins, an welchen Sensoriken jeglicher Art betrieben werden können. Des weiteren verfügt der Raspberry Pi über mehrere USB Ports, über welche weitere Peripherie angeschlossen werden können. Durch seine vergleichsweise sehr starke Hardwareausstattung sind typischerweise speziell angepasste, aber dennoch vollwertige Linuxdistributionen wie etwa Raspian als Betriebssystem üblich.

Schnittstellen

Auf dem Raspberry Pi befinden sich 48 GPIO Pins, welche frei für den Anschluss von Peripherie und Sensorik zur Verfügung stehen. Manche dieser Pins haben alternative Betriebsmodi über welche beispielsweise SPI realisiert werden kann. Ein Analog/Digital-Wandler oder ein Timer, welcher für das zuverlässige Auslesen eines PWM Signals genutzt werden kann fehlt jedoch. Als Kommunikationsschnittstellen bringt der Raspberry Pi von Haus aus eine UART Schnittstelle mit, sowie einen Netzwerkanschluss in Form einer RJ-45 Buchse. Über USB sind weitere Kommunikationsschnittstellen problemlos nachrüstbar.

SmartPlant raspberry pinout.jpg

Anschluss möglicher Sensorik über:

  • 48 GPIOs
  • SPI
  • USB

Kommunikation:

  • LAN
  • UART
  • Über USB nachrüstbar:
    • WLAN
    • Bluetooth
    • Bussysteme
    • etc.
Zusammenfassung

Der Raspberry Pi verfügt über sehr viele Anschlussmöglichkeiten und eine hohe Flexibilität sowohl für die Wahl der Sensorik, als auch für die Kommunikation. Durch das vollwertige Betriebssystem und die aktive Community gibt es sehr viele unterstützende Software und Dokumentation. Durch die sehr starke Hardware des Raspberry Pis müssen sich sehr wenige Gedanken über Limitierungen in diesem Bereich gemacht werden. Die Verfügbarkeit ist durchweg sehr gut, die Hochschule ist selbst im Besitz von mehreren Raspberry Pis, welche man sich ausleihen kann. Geschulded durch die hohe Leistungsfähigkeit ist der Preis mit ~35€, sowie der Energiebedarf und die Größe verglichen mit den anderen Kandidaten hoch. Durch das vollwertige Linux dauert ein Systemstart und somit auch der Start der ersten Messung vergleichsweise sehr lange.

Vorteile
  • Starke Hardware
  • Erweiterbarkeit für Peripherie
  • Erweiterbarkeit für Kommunikation
  • Softwareunterstützung & Community
  • Verfügbarkeit
Nachteile
  • Vergleichsweise hoher Energieverbrauch
  • Vergleichsweise hoher Preis
  • Große Zeit zur ersten Messung (Start vom OS)
  • Größe

Mikrocontroller 2: ESP8266

Allgemein

Die Plattform ESP8266 von der Firma espressif ist eine Kombination aus einem Mikrocontroller und einem WLAN Funkchip, welcher über eine UART Schnittstelle AT Kommandos entgegen nimmt. Ursprünglich als günstige Erweiterung für Arduino und andere Bastelrechner gedacht, gibt es auch eine Möglichkeit den Mikrocontroller selbst zu programmieren (z.B. hier) und die je nach Ausführung vorhandenen Pins für Peripherie zu nutzen. Die ESP8266s gibt es in verschiedenen Ausführungen, wobei die Version ESP7 und ESP12 für dieses Projekt am interessantesten sind. Von der Version ESP7 sind auch einige im Dopsy vorhanden.

SmartPlant ESP8266 ESP7.jpg

Schnittstellen

Der ESP8266 besitzt in der Ausführung esp7 und esp12 16 Pins, wobei 9 davon als GPIOs benutzt werden können. Über diese können beispielsweise über SPI oder i2c Sensoren angeschlossen werden. Des weiteren kann einer dieser Pins auch als Analog/Digital Konverter verwendet werden.

SmartPlant ESP8266 pinout.jpg


Anschluss möglicher Sensorik über:

  • 9 GPIO Pins
  • 1 ADC

Kommunikation:

  • UART
  • WLAN
Zusammenfassung

Der ESP866 besticht durch seinen Preis von gerade einmal ~3€ pro Einheit und seiner kleinen Größe. Durch Projekte wie das esp-open-rtos-Projekt hat man die Möglichkeit in einer FreeRTOS Umgebung zu entwickeln und durch die verschiedenen Versionen der Plattform kann sich jeweils die passende für das Projekt herausgesucht werden. Es stehen je nach Variante ein ADC Eingang und mehrere GPIO Pins zur Verfügung.

Als Nachteil muss angemerkt werden, dass es nicht sehr viel Dokumentation über diese Plattform gibt. Die meisten Datenblätter, welche während der Recherche gefunden wurden waren auf chinesisch, sodass sich auf das reverse-engeneering aus der Community verlassen werden müsste. Zusätzlich besitzt die Plattform lediglich einen 10-bit Analog/Digital Konverter mit einer Referenzspannung von 1V, alternativ müssten weitere über per GPIO Pins angeschlossene Bausteine hinzugefügt werden.

Vorteile
  • Sehr geringer Preis
  • Sehr geringe Größe
  • Eigene Firmware auf Basis von FreeRTOS möglich
  • Auswahl passender Variante für das Projekt möglich
  • Weitere Peripherie über GPIO Pins anschließbar
Nachteile
  • Sehr wenig (lesbare) Dokumentation
  • Lediglich 1 ADC mit 10 bit Auflösung und geringer Referenzspannung

Mikrocontroller 3: Particle Photon

Allgemein

Der Photon von der Firma Particle (ehemals Spark), ist ein Mikrocontroller für ca. 19€ pro Einheit, welcher speziell für IoT Anwendungszwecke entwickelt wurde. Er besitzt eine sehr benutzerfreundliche API zur Programmierung, welche mit der API von Arduino größtenteils kompatibel ist. Durch den verbauten WLAN Funkchip ist eine Verbindung zum Internet/Intranet, oder auch zu dem Cloud-Dienst von Particle möglich. Programmiert werden kann der Photon wahlweise über USB oder durch die particle-Cloud, wofür der Photon allerdings eine Verbindung zum Internet über das WLAN benötigt. Im Dopsy sind einige Photons vorhanden, sodass die Verfügbarkeit gewährleistet ist.

SmartPlant photon boxed.jpg

Schnittstellen

Für die Kommunikation zur Außenwelt besitzt der Photon mehrere UART Kanäle und WLAN. Es ist außerdem möglich einen CAN-Transceiver an die dafür vorgesehenen Pins anzuschließen, allerdings ist die Software-unterstützung auf API Ebene seitens Particle zur Zeit noch nicht fertig implementiert. Als Anschlussmöglichkeiten für weitere Sensorik und Peripherie gibt es mehrere GPIO Pins, von denen einige Spezialfunktionen, wie beispielsweise Analog/Digital Konvertierung, i2c und SPI beherrschen. Hervorzuheben ist, dass der Photon 8 ADC Eingänge mit jeweils einer 12 bit Auflösung besitzt.

SmartPlant photon pinout.jpg

Anschluss möglicher Sensorik über:

  • 16 GPIO Pins
  • SPI
  • i2c
  • 8 ADC-Eingänge

Kommunikation:

  • UART
  • CAN (nur Controller)
  • WLAN
Zusammenfassung

Der Photon liegt preislich im Mittelfeld, allerdings bietet er auch das rundeste Gesamtpaket mit einer guten API-Unterstützung, der Möglichkeit neue Programme über die Cloud zu flashen (keine weitere Toolchain und Kabel nötig) und den guten Möglichkeiten weitere Sensoren anzuschließen. Besonders die bereits vorhandenen 8 hochauflösenden ADCs sind sehr gut für viele Sensoren geeignet.

Negativ kann man dem Photon ankreiden, dass in der Hersteller-API noch nicht alle Funktionalitäten fertig implementiert wurden. Des Weiteren ist eine konstante Verbindung zur Particle-Cloud und damit zum Internet notwendig, da auf dem Photon ein Bootloader vorinstalliert ist, welcher das eigene Programm als Applikation ausführt. Die eigene Applikation wird erst dann vom Bootloader gestartet, wenn der Bootloader eine stehende Verbindung zur Particle-Cloud besitzt. Eine Möglichkeit eine eigene Cloud im Intranet aufzubauen ist momentan für den Photon noch nicht verfügbar. Da es keine Möglichkeit gibt, den Photon in das CampusWLAN zu integrieren, müsste beispielsweise mit dem Handy ein Hotspot aufgemacht werden.

Vorteile
  • Sehr gutes Preis/Leistungsverhältnis
  • Einfache Toolchain
  • Viele Anschlussmöglichkeiten für Sensoren und Peripherie
  • Viele ADCs
  • Durch mächtige Hersteller-API sehr schnelles Prototyping möglich
Nachteile
  • Gebunden an Bootloader des Herstellers
  • Verbindung zum Internet (Particle-Cloud) zwingend notwendig

Geeignete Testumgebung

Um die Bedingungen für Messungen der Bodenfeuchte reproduzierbar zu gestalten, müssen die Pflanzen, die verwendete Erde, die Blumentöpfe, sowie die Umgebung der Messung über alle Messungen hinweg möglichst gleich bleiben.

Wahl der Pflanze

Die Wahl der Pflanze hat sehr viel Auswirkungen auf die optimale Bodenfeuchte, den Wasserverbrauch der Pflanze und somit ihren Bedarf und das Testgefäß. Da es sich in diesem Projekt vor allem um eine prototypische Umsetzung handelt, soll zunächst die Messbarkeit der Bodenfeuchte betrachtet werden, sodass die Wahl einer geeigneten Pflanze auf eine spätere Iteration fallen kann.

Wahl der Erde

Bei der Wahl der Erde muss darauf geachtet werden, dass das selbe Produkt für alle Messungen verwendet wird, da der Nährstoffgehalt der Erde stark variieren kann. So sind in Aufzuchterde mehr Nährstoffe enthalten, welche es gerade Setzlingen ermöglicht schnell wachsen zu können. Diese Erde ist aber in der Regel teurer und wird deshalb nur bis zum ersten Umtopfen verwendet um anschließend günstigere Erde zu verwenden. Je nach gewählter Messmethode kann eine andere Zusammensetzung der Erde zu Verfälschungen der Messergebnisse führen, beispielsweise durch eine erhöhte elektrische Leitfähigkeit bei einem höheren Salzgehalt.

Wahl der Blumengefäße

Die Gefäße sollten über alle Messungen hinweg möglichst die gleiche Größe und die gleiche Form besitzen. Sie müssen ausreichend Platz für sowohl die Pflanze, als auch für die Sensoren bieten, wobei die Sensoren in geeignetem Abstand zum Wurzelwerk platziert werden müssen. Ein kleiner Abstand zum Wurzelwerk ist wichtig, da zwar dort der optimale Messpunkt wäre, weil dort das Wasser aufgenommen wird, allerdings würde das auch die Pflanze beim Wachsen behindern.

Wahl der Umgebung

Da unterschiedliche Temperaturen und Lichtverhältnisse die Messwerte beeinflussen würden, sollte die Testumgebung vor einem großen Fenster im Haus umgesetzt werden. Dort kann die Temperatur weitaus konstanter gehalten werden als im Freien. Die Töpfe müssen so vor dem Fenster platziert werden, dass möglichst alle Pflanzen gleichviel Licht bekommen können.

Messgrößen und Kalibrierung der Sensorik

Volumentric Water Content

Bei VWC wird der Volumenanteil des Wassers vom Messbereich absolut trocken bis absolut gesättigt in Relation des Volumens der Erde in % gemessen.

Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://en.wikipedia.org/api/rest_v1/“:): {\displaystyle Feuchtigkeit\ in\ \% = \frac{Wasservolumen\ in\ cm³}{Erdvolumen\ in\ cm³} * 100}

Die Idee der Kalibrierung auf diese Messeinheit ist, 11 gleiche Topfgefäße zunächst mit der gleichen Menge absolut trockener Erde auszustatten, sodass diese exakt gleichviel wiegen. Die Gefäße können hierfür über mehrere Stunden bei mittlerer Temperatur in den Backofen geschoben werden, sodass jede Feuchtigkeit restlos verdampft und die Gefäße am Ende alle genau gleichviel Gewicht haben.

Nun kann einer der Töpfe solange mit Wasser nachgegossen werden, bis die Erde komplett mit Wasser gesättigt ist. Dies kann einige Zeit dauern, da sich die Erde nur sehr langsam vollsaugt. Nun hat man die beiden Extremwerte für trocken und nass und kann die Zwischenschritte in 10%-Schritten anhand der Gewichtsdifferenz zwischen den beiden Gefäßen mit den Extremwerten anhand der übrigen 9 Gefäße nachbilden.

Zum Kalibrieren der Messsonden können die Werte der Testgefäße nun gemessen und protokolliert werden. Aus den Werten können nun Graphen für jeden Sensor erstellt werden, anhand derer die Bodenfeuchte durch lineare Interpolation zwischen den Messergebnissen approximiert werden kann, was für die Messungen der Bodenfeuchte vollkommen ausreichend ist.

Datenaufbereitung

Bei der Aufbereitung der Messwerte gibt es zum Einen den Ansatz, die Verarbeitung direkt auf den Sensorknoten selbst zu bewältigen oder die Verarbeitung an eine dedizierte Komponente auszulagern und somit die Sensorknoten mit möglichst wenig eigener Logik zu belasten. Beide Möglichkeiten bieten ihre jeweiligen Vor- und Nachteile, vor allem unter Verwendung von Cloud-Diensten, welche den Sensorknoten einen Teil ihrer Verarbeitung abnehmen können.

Die Frage nach einer geeigneten Zeit zum Erfassen der Sensorwerte betrifft indes beide Varianten. Der Vorteil von einer hohen Abtastrate ist die höhere Auflösung der Messungen, wobei diese bei einem so trägen Medium wie Blumenerde keinen besonderen Mehrwert an Wissen bringt. Als Nachteil einer hohen Abtastrate steht unterdessen der höhere Energiebedarf des Sensorknotens entgegen, da sich dieser in dieser Phase nicht zum Einsparen von Energie schlafen legen kann. Eine niedrige Abtastrate wirkt bei einem trägen Medium wie der Blumenerde zunächst passender und es kann mehr Energie eingespart werden. Eine zu niedrige Abtastrate beschränkt allerdings gegebenenfalls die Kontrolle der verwendeten Wassermenge bei einem automatischen Gießvorgang der Pflanzen.

Verarbeitungsmethode 1: Datenverarbeitung direkt auf dem Sensorknoten

Der Vorteil dieses Ansatzes besteht darin, dass es keinen Single Point of Failure im eigenen System in Form einer zentralen Verarbeitungsinstanz gibt. Jeder Sensorknoten kann für sich alleine arbeiten und seine Daten über Dienste in der Cloud berechnen lassen, wo diese auch über ein Webinterface betrachtet werden können.

Ein Nachteil liegt allerdings in der notwendigen Komplexität der Sensorknoten selbst, da diese selbstständig mit dem Dienst in der Cloud interagieren können müssen. Ein Sensorknoten muss selbst mit der API des Dienstleisters zum Informationsaustuasch interagieren können und gegebenenfalls die gemessenen Sensorwerte selbständig aufbereiten. Dies bedeutet, dass nur verhältnismäßig rechenstarke Sensorknoten infrage kommen, welche meist eine geringere Energieeffizienz und einen höheren Stückpreis pro Knoten aufweisen als vergleichsweise schwächere Sensorknoten. Ein weiterer Nachteil ist, dass sich von den Diensten in der Cloud abhängig gemacht wird und diese stets verfügbar sein müssen.

Als Cloud-Dienste kommen Dienste wie IFTTT zur Auswertung und Benachrichtigung bei Trockenheit und Keen IO zur grafischen Aufbereitung infrage. Nachfolgend ist ein Komponentendiagramm einer möglichen Architektur dieses Ansatzes zu sehen.

Komponentendiagramm des Cloud-Ansatzes

Verarbeitungsmethode 2: Datenverarbeitung in dedizierter Komponente

Der Vorteil dieser Variante besteht darin, dass die Sensorknoten lediglich die Messwerte an die Datenverarbeitende Instanz weiterleiten und somit bis auf kleinere Anpassungen, wie beispielsweise eine Änderung in der Abtastrate, keine neue Firmware benötigen. Ein neuer Sensorknoten kann einfach in eine bestehende Infrastruktur integriert werden, da Änderungen bei der Integration des neuen Knotens hauptsächlich die zentrale Datenverarbeitungskomponente betreffen. Des Weiteren sind dadurch möglichst einfach gehaltene und damit günstige Sensorknoten möglich, wie beispielsweise die ESP8266-Familie.

Als zentrale Verarbeitungskomponente bietet sich ein Raspberry Pi an, da dieser über ein vollwertiges Betriebssystem verfügt, auf welchem sehr einfach Softwarekomponenten, wie beispielsweise Datenbankanwendungen zum Verwalten der Messdaten oder auch ein Webserver zum Anzeigen der Werte über ein Webinterface, eingerichtet werden können. Da die Datenverarbeitende Instanz eine konstante Stromverbindung besitzen muss um zum Einen fortlaufend Daten der Sensorknoten entgegennehmen zu können und zum Anderen Bei Trockenheit Benachrichtigungen senden muss, fällt der negative Punkt des langsamen OS-Starts des Raspberry Pis weg.

Um eine Verbindung mit den Sensorknoten aufzubauen, kann eine Serverkomponente verwendet werden, welche über beispielsweise TCP-Sockets Datagramme der Sensorknoten entgegen nimmt. Die Datagramme sollten pro Sensorknoten als eine zusammenhängende Einheit aller Messwerte der Sensoren versendet werden, um dem Problem der verteilten Zeit aus dem Weg zu gehen. Jedes Datum der Sensoren wird in der Datenaufbereitenden Instanz mit einem Zeitstempel für jede ankommende Einheit eines Sensorknotens versehen. In einer Datenbank können die Kalibrierungswerte der einzelnen Sensoren hinterlegt werden, welche von der Serverkomponente verwendet werden, um den empfangenen Messwert in die gewünschte Einheit umzuwandeln. Der umgewandelte Wert kann nun in der Datenbankanwendung hinterlegt werden um von einem auf einem Webserver laufenden Webinterface grafisch aufbereitet zu werden.

Bei der Wahl der Softwarekomponenten ist darauf zu achten, dass sie für die Leistungsfähigkeit des Raspberry Pi geeignet sind. Eine mögliche Architektur der Datenverarbeitenden Instanz ist in der nächsten Abbildung zu sehen.

Komponentendiagramm möglicher Softwarekomponenten der Datenverarbeitenden Instanz

Geeignete Benachrichtigungsmechaniken bei Trockenheit

Als Benachrichtigung bei einer Über-, oder auch Unterschreitung eines gewünschten Feuchtigkeitsbereiches bietet sich der Internetdienst Twitter an. Bei diesem Dienst können Textnachrichten kleiner Länge (bis zu 140 Zeichen) über einen Internetdienst versendet werden. Nachrichten können von einem Account versendet werden, interessante Accounts können auch abboniert werden um somit die Informationen beispielsweise auf einer Android-App oder im Internetbrowser anzuzeigen. Zum automatisierten Versenden von Nachrichten über Programme bietet Twitter dabei die Möglichkeit an, einen Twitter Account mit einer Applikation zu koppeln, für welche es für nahezu jede gängige Programmiersprache Bibliotheken gibt.

Neben der direkten Benachrichtigung bietet sich noch ein Verlaufsdiagramm an, welches den Wasserstand einer Pflanze über mehrere Tage hinweg anzeigt. Dieses könnte über Javascript im Internetbrowser des Clients gerendert werden, sodass der Server dafür keine zusätzliche Rechenleistung aufwenden muss.

Designentscheidungen

In diesem Abschnitt werden die passendsten Ansätze aus der Analyse-Phase zu den jeweiligen Teilproblemen aufgeführt, aus welchen im nächsten Abschnitt die Umsetzung erfolgt.

Sensoren zur Messung der Bodenfeuchte

Durch das Ergebnis der ersten Tests während der Analysephase sind die resistiven Sensoren ausgeschieden, da sich diese über einen schon sehr kurzen Zeitraum sehr stark abnutzen, was die Messungen stark beeinflusst und die Sensoren in absehbarer Zeit komplett unbrauchbar macht. Auch wenn sich dies durch höherwertige Sensoren sicherlich reduzieren ließe, bleibt das Problem durch den zwangsweise direkten Kontakt der Metallfläche und der feuchten Erde bestehen.

Die auf Basis von Saugspannung arbeitenden Sensoren sind zwar sehr genau, sind allerdings durch die benötigte Referenzflüssigkeit weder wartungsfrei noch frostsicher. Des Weiteren sind diese Sensoren durch ihre vergleichsweise komplexe Bauweise sehr teuer, sodass auch diese Kategorie im direkten Vergleich ausscheidet.

Sensoren auf Basis des Wasserpotentials sind unrealistisch und scheiden deshalb aus.

Die Wahl ist auf die Kapazitiven Sensoren gefallen, welche sich auch im ersten Test als sehr zuverlässig erwiesen haben. Da bereits zwei Typen von Sensoren auf Basis dieses Messverfahrens vorhanden sind, werden alle weiteren Tests zur Kalibrierung auch mit beiden Typen durchgeführt. Jedoch ist ersichtlich, dass die Sensoren vom Typ Giesomat durch die Verwendung von weiteren Bauteilen wie Schmitt-Triggern sauberere und damit verlässlichere Signale liefern können, weshalb sie die erste Wahl sind.

Methode zur autonom gesteuerten Bewässerung [optional]

Dieses Ziel wurde aufgrund mangelnder Zeit nicht für die Umsetzung vorgesehen.

Mikrocontroller

Als Mikrocontroller wird der Particle Photon verwendet, da sich dieser sich sehr gut eignet um prototypische Implementierungen mit verschiedenen Sensortypen umzusetzen. Seine Schnittstellen ermöglichen den Anschluss von 8 resistiven bzw. 16 kapazitiven Sensoren. Da es vor allem im privaten Bereich nicht üblich ist 16 Pflanzen an einem Ort aufzustellen, ist für zukünftige Projekte die Umsetzung mit dem kostengünstigeren ESP8266 Mikrocontroller durchaus ökonomisch sinnvoll.

Testumgebung

Wahl der Planze

Für den prototypischen Ansatz der ersten Iteration des Projektes wird auf die Verwendung von Pflanzen verzichtet, da der Fokus auf der Messbarkeit der Bodenfeuchte liegt.

Blumenerde

Bei allen Tests wird Blumenerde der Firma Floragard aus dem Hobbybereich verwendet. Dabei handelt es sich um ein handelsübliches Produkt, welches in vielen Baumärkten verfügbar ist.

Testgefäße

Als Testgefäße werden Einmachgläser mit einem Leergewicht von 171g und identischer Form und Größe verwendet. Jedes dieser Gläser muss vor der Auswahl separat gewogen werden und darf eine Abweichung von maximal 1g aufweisen. Dies ist nötig, da festgestellt wurde, dass es durch Fertigungsunterschiede teilweise zu starken Abweichungen im Gewicht kommen kann und das Gewicht für die Kalibrierung der Bodenfeuchte von hoher Bedeutung ist.

Testumgebung

Als Testumgebung wird ein normaler Raum verwendet, welcher durch das Wegfallen der Testpflanzen auch keine besonderen Lichtverhältnisse aufweisen muss. Es wird lediglich sichergestellt, dass der Raum möglichst auf der gleichen Temperatur gehalten wird.

Messgrößen & Kalibrierung

Als Messgröße wird VWC verwendet, da diese Einheit sehr gut für die Problemstellung geeignet ist. Zur Kalibrierung der Sensoren wird entsprechend das in der Analyse erwähnte Verfahren benutzt, bei welchem in 10% Schritten die Feuchtigkeit gemessen und auf diesen Wert hin kalibriert wird. Das Abwiegen der Gefäße erfolgt über eine digitale Küchenwaage mit einer Toleranz von 1g bei der Messgenauigkeit.

Datenaufbereitung

Zur Aufbereitung wird Verarbeitungsmethode 2 eingesetzt werden, dabei dient ein Raspberry Pi als lokale Cloud, welcher mit den Sensorknoten kommuniziert. Ein empfangener Sensorwert wird mit einer Kalibrierungstabelle in einer Datenbank abgeglichen und daraus der VWC Wert errechnet. Dieser VWC Wert wird anschließend zur Archivierung in der Datenbank abgelegt. Um der Problematik der verteilten Zeit entgegenzuwirken, werden von einem Sensorknoten alle Messwerte zusammen versendet. Hiermit kann der Raspberry Pi alle Messwerte eines Sensorknotens seinem Empfangszeitpunkt zuordnen und diese ohne Inkonsistenzen in seiner Datenbank ablegen.

Benachrichtigung bei Trockenheit

Bei der Benachrichtigung wird eine Kombination von Twitter und Webinterface verwendet. Während eine Twitternachricht eine drohende Trockenheit, bzw. eine Überwässerung signalisiert, soll das Webinterface eher einen informativen Charakter besitzen und einen Verlauf über mehrere Tage aufzeigen, sowie den aktuellen Stand der Bodenfeuchtigkeit eines Gefäßes darstellen.

Umsetzung

Grobdesign

Das Grobdesign besteht aus 6 Komponenten, welche miteinander interagieren. Zunächst gibt es die Sensorkonten, welche gemessene Werte über eine TCP-Socketverbindung über WiFi an den SmartPlantHub auf dem Raspberry Pi übertragen. Der SmartPlantHub dient als lokale Cloud für alle Sensorknoten und nimmt deren Werte entgegen. Die empfangen Werte werden vom SmartPlantHub, anhand ihrer Kalibrierungswerte, in VWC umgewandelt. Diese Werte sind in der Datenbank hinterlegt und wurden für jeden Sensor ermittelt. Der aus den Kalibrierungwerten ermittelte VWC wird anschließend, ebenfalls in der Datenbank archiviert. Unter- bzw. Überschreitet ein Sensor einen definierten VWC Wert, wird durch den SmartPlantHub eine Warnung inklusive des kritischen Wertes in Form einer Twitternachricht, über das Python-API Twython, publiziert. Damit der Zustand der Pflanzen von den Besitzern bzw. Pflegern überwacht werden kann, gibt es ein Web-Dashboard, das über den Browser aufgerufen werden kann. Dazu gibt es serverseitig einen Dashboard-Server, welcher die Daten aus der RethinkDB ausliest und diese zur graphischen Darstellung aufbereitet.

Grobdesign SmartPlant


Implementierung

Der Quellcode liegt im hochschuleigenen Git-Repository: GitLab SourceCode.

Kalibrierung der Sensoren

Um die Blumenerde möglichst trocken zu bekommen, wird sie bei ca. 125 Grad Celcius im Ofen mit ständigem Vermengen der Erde über einen langen Zeitraum erhitzt, bis die Feuchtigkeit verflogen ist. Anschließend wurde sie auf das Gramm genau gleich auf elf Einmachgläser verteilt.

Eines der Einmachgläser wurde durch mehrfaches Nachgießen bis zur kompletten Sättigung der Erde gebracht und anschließend gewogen. Durch lineare Interpolation der Werte zwischen 0% und 100% Feuchtigkeit ist nachfolgende Gewichts-Tabelle für die Einheit VWC entstanden.

Gefäß Leergewicht 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Einmachglas 171g 280g 297g 314g 331g 348g 365g 382g 399g 416g 433g 450g


Messung von VWC Messung von VWC Messung von VWC


Um eine Vergleichbarkeit zumindest pro Sensortyp gewährleisten zu können, wurde jeder Sensor bis zu einer festgelegten Markierung jeweils am Rand der Einmachgläser in die Erde gesteckt. Jeder Sensor hat selbst noch eine eindeutige Nummer erhalten um diese genauer kalibrieren zu können und für zukünftige Projekte die Auswirkungen der Fertigungstoleranz besser abschätzen zu können. Die Messungen der VWC %-stufen wurden jeweils pro Sensor über einen Zeitraum von 5 Minuten mit einer Messung alle 5 Sekunden erfasst und gemittelt. Das Ergebnis dieser Messungen ist nachfolgender Abbildung zu sehen.


VWC der SiliconCarne Sensoren VWC der Giesomat Sensoren


In der nachfolgenden Tabelle sind die Werte der Feuchtigkeit der Erde nochmals für jeden Sensor in Tabellenform zusammengefasst

Sensortyp 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Siliconcarne 1 123 150 154 160 180 245 337 399 429 486 541
Siliconcarne 2 112 154 164 169 235 313 391 452 469 470 559
Siliconcarne 3 99 145 203 208 262 430 545 612 660 667 687
Giesomat 1 5 9 14 20 32 46 61 72 76 82 86
Giesomat 2 5 10 14 17 31 47 57 70 77 84 87
Giesomat 3 3 8 14 16 30 38 50 64 67 76 77

Anhand dieses Ergebnisses kann nun der Feuchtigkeitsgehalt der Blumenerde um eine Pflanze herum bestimmt werden.

Tests

Neben den fortlaufenden Funktionstests während der Entwicklung gab es auch zu mehrere Zeitpunkten Komponententests, bei welchen die betroffenen Komponenten über mindestens einen Tag hinweg miteinander agierten. Bei solchen Tests wurden beispielsweise das Verhalten der Serverkomponente mit mehreren Sensorknoten, oder auch der Sensoren beobachtet.

Zum Ende des Projektes wurde ein abschließender Systemtest mit allen beteiligten Komponenten durchgeführt. Die Ergebnisse der Tests sehen allesamt vielversprechend aus, sodass nun das System auch über längere Zeiträume, wie etwa Wochen oder auch Monate hinweg eingesetzt und getestet werden kann.

Nachfolgend jeweils ein Bild des Dashboards und des Benachrichtigungsdienstes Twitter während des Systemtests.

Dashboard Benachrichtigungsdienst

Evaluation

Bei den genutzten kapazitiven Sensoren ist deren gute Genauigkeit hervorzuheben. Allerdings muss jeder Sensor individuell auf die genutzte Erde kalibriert werden, was als schnelle Plug&Play Lösung für Endanwender durchaus eine größere Hürde sein kann.

Die Übertragung der Daten über die TCP-Verbindung zum Raspberry-Pi lief ohne Schwierigkeiten auch über längere Zeiträume und mit variabler Sensorenanzahl.

Die zur Archivierung genutzte Datenbank RethinkDB ist für das Web-Dashboard sehr nützlich, da diese Daten direkt im JSON Format liefert, welches über JavaScript einfach weiterverarbeitet werden kann. Allerdings ist die Datenbank vom Ressourcenverbrauch nicht für den Raspberry Pi ausgelegt, was bei vielen Sensoren und Sensorknoten zu großen Latenzen bei der Anzeige der Daten auf dem Dashboard führt. Bereits mit 3 Sensoren und ca. 2500 Datensätzen dauert das initiale Laden ca. 30 Sekunden.

Präsentation

Die Präsentation kann sich hier heruntergeladen werden: Datei:SmartPlant Praesentation.pdf

Fazit & Ausblick

Die gesteckten Ziele des Projektes wurden erreicht und somit eine vielversprechende Basis für weitere Iterationen geschaffen. Die Messwerte lassen eine mehr als ausreichende Genauigkeit zur Abschätzung der Bodenfeuchte von Blumengefäßen zu. Das System ist darauf ausgelegt mit mehreren Sensorknoten zu arbeiten, an welchen wiederum viele Sensoren angeschlossen sein können.

In nächsten Iterationen könnte beispielsweise die Portierung von den Particle Photons auf die günstigeren ESP8266 geschehen, um ökonomischer zu werden, da die Sensorknoten momentan den größten Kostenpunkt ausmachen. Eine Anbindung an ein automatisiertes Gießsystem war in dieser Iteration durch mangelnde Zeit leider nicht mehr möglich, könnte aber ebenfalls in einer nächsten Itertaion ins Auge gefasst werden.