Hardware
Für unser Projekt haben wir drei Hochbeete mit unterschiedlichen Samenmischungen und Bodenarten angelegt:
Die Fettwiese und Grünland mit jeweils weniger Arten, sowie die Magerwiese mit einer großen Artenvielfalt.
Die Hochbeete wurden mithilfe von Micro-Computern und deren Sensorik gemessen und die Daten wurden an eine Datenbank übermittelt. Von dort aus entstanden vier einzigartige Projekte, die die Sensoren der Wiesen kommunikativ aufarbeiten.
Um die von Haus aus NICHT wetterfeste Ausrüstung im Outdoorbetrieb zu schützen, waren extra Schritte nötig, die unseren Aufbau und die Durchführung erst möglich gemacht haben.
Der M5 Stack ist ein Micro Computer auf dem ESP32 Standard, der eine Möglichkeit bietet, kleine Projekte im Bereich Elektronik bzw. Sensorik zu ermöglichen. Außerdem hilft er dabei, analoge Projekte zu vernetzen.
Er kann cloudbasiert programmiert werden und hat für unsere Anwendung nicht nur ausgereicht, sondern diese auch überstanden. So konnten wir Pflanzen in Form von unterschiedlichen Wiesen mit dem Internet vernetzen und eine Art IoT-Anbindung (IoT=Internet of Things) für Pflanzen möglich machen. Die erhobenen Messdaten der Wiesen wurden cloudbasiert in einer Datenbank erfasst und konnten von dort aus weiter verarbeitet werden.
Vorteile des M5-Stacks:
Der ENV(3)-Sensor misst Temperatur, Luftdruck und Luftfeuchtigkeit. Dieser kann die Umweltbedingungen, sowie Veränderungen im Wetter erfassen und die unmittelbaren Bedingungen, in denen die Pflanzen stehen.
Bei einer Platzierung an verschiedenen Stellen können außerdem Veränderungen der Werte im Beet, die durch die Pflanzenvielfalt im Zusammenspiel mit Umwelteinflüssen ausgelöst werden, gemessen und verdeutlicht werden.
Der Color-Sensor misst Farbwerte getrennt in Rot-, Grün- und Blau-Werten. Damit können die Farben des Beets oder auch die Farbe des Lichts gemessen werden, sowie Veränderungen der Pflanzen an verschiedenen Stellen im Beet, wie auch das Erblühen der Blüte und anderer gefärbten Teile der Pflanzen. Die Messung durch den Sensor ist jedoch nur aus nächster Nähe möglich. 1-3 cm Abstand sind dabei optimal.
Der Lichtsensor misst das Vorhandensein von Licht und dessen Intensität. Das kann bei der Erfassung von Lichteinstrahlung über den Verlauf eines Tages helfen. Da Pflanzen durch Fotosynthese Licht zur Gewinnung ihrer Nahrung nutzen, ist dies ein wichtiger Umwelteinfluss, der erfasst werden kann.
Der CO2-Sensor misst die Konzentration von CO2 in der Luft in ppm. (Parts per Million)
Der Sensor selbst ist jedoch fehleranfällig und kompliziert in der Programmierung und Handhabung. Die Werte sind in Hinsicht auf die Wiesen relevant, da die Wiesen durch Fotosynthese bei Sonnenschein CO2 aus der Luft aufnehmen und bei Nacht CO2 in die Luft abgeben. Dies lässt sich mit dem CO2-Sensor erfassen und speichern. Fotosynthese wird dadurch messbar.
Neben der Sensorik und des Micro Computer sind noch Stromversorgung und eine aktive Netzwerkverbindung zu berücksichtigen.
Stromversorgung:
Bei unserem Versuch haben wir aufgrund der permanent im Freien angebrachten Technik Powerbanks verwendet. Diese Powerbanks hatten eine Kapazität von 20.000 mAh und versorgten jeweils zwei M5-Stacks für 4-5 Tage ständig mit Strom.
Um mit den Powerbanks Messausfälle aufgrund von Stromverlust zu vermeiden, empfiehlt es sich, die Powerbanks in doppelter Stückzahl zu erwerben, sodass die Leeren stets gegen volle Powerbanks getauscht werden können. Bei Powerbanks sollte darauf geachtet werden, dass diese nicht den ganzen Tag in direkter Sonneneinstrahlung liegen. Daher haben wir unsere Technik an der Nordseite der Beete angebracht.
Eine Lösung, die Powerbanks mit Fotovoltaik zu laden, ist definitiv möglich, jedoch fehlte uns dazu die Zeit.
Netzwerk:
Die M5-Stacks nutzen entweder WiFi zum programmiert werden und Daten schicken. Sie können aber auch über USB programmiert werden und sich dann selbstständig mit dem Netzwerk verbinden.
Letzteres spart Akkukapazität, da das Programm nicht noch über ein weiteres Webinterface läuft. Es ist jedoch etwas anspruchsvoller und weniger Remote-fähig.
Generell braucht der M5-Stack eine Verbindung mit dem Internet, da die erhobenen Daten regelmäßig an eine Online-Datenbank geschickt werden.
Hotspots, Wifi-Router o.ä. ermöglichen den Zugriff und die „Wartung“ aus der Ferne, sie müssen dazu jedoch im M5-Stack hinterlegt werden. Dies wird jedoch einfach und anschaulich vom Gerät erklärt.
In der Realität hatten wir durch die Möglichkeit des Fernzugriffs einige M5-Stacks remote debuggen und neu starten können. Nach einiger Zeit und möglicher Überhitzung in der Sonne, kann der M5-Stack jedoch ab und zu streiken und lässt sich nur noch vor Ort resetten.
Kunststoff-Container aus dem Supermarkt/Baumarkt oder das Recyceln von vorhandenen Aufbewahrungskisten reicht vollkommen: es ist Kreativität gefragt!
Von Brotdose bis Outdoor Kabelverteilerdosen geht alles, solange:
Sog. Unterverteiler Dosen aus dem Baumarkt beinhalten normalerweise Kabelkontakte. Eine IP-Zertifizierung mind. IP65 für den Schutz vor Regen und Gießen ist nötig.
Kabelverteilerdosen aus dem Baumarkt als Gehäuse für die M5-Stacks, zwei Bretter und zwei Metallwinkel als Ablage für die Kunststoffkiste.
Bei diesem Aufbau sind die Powerbanks und die M5-Stacks getrennt von einander untergebracht. Das erhöht die Ausfallquote durch Umwelteinflüsse deutlich.
Die farbigen Kabel gehen aus den Verteilerdosen weiter zur im Beet angebrachten Sensorik. Die Ausgänge der Kabel sollten am besten nach unten oder zur Seite heraus geführt werden.
Durch starke Laser können Sperrholzplatten maßangefertigt werden. Vektordateien können bei Dienstleistern hochgeladen werden, die aus der Datei die Werkstücke aus einem ausgewählten Material anfertigen. Die Werkstücke erhält man schließlich per Post und man kann die weitern Schritte der Anfertigung angehen.
Es sei dazu gesagt, dass die Kosten für diese Kiste deutlich höher sind, als die für die bisher gezeigten Varianten. Außerdem braucht dieser Prozess einiges mehr an Zeit als gekaufte Kisten.
Der Körper der Kiste ist aus 3 mm Sperrholz aus Birke.
Die Frontscheibe ist aus 3 mm Acrylglas transparent (8C01).
Die Werkstücke müsst ihr schleifen und mit Holzleim verleimen. Magnete solltet ihr einkleben, um die Halterung für die M5-Stacks innerhalb der Box zu gewährleisten. Danach kann Holzlasur aufgebracht werden. Diese macht die Kiste wetterbeständig, da sich ohne diese Behandlung die Schichten der Sperrholzplatten voneinander lösen würden.
Zuletzt die Acrylscheibe einsetzen und Klebescharniere für den Deckel an der Rückseite und dem Deckel anbringen.
Die Dateien dazu gibt es hier: LINK
Der Konstruktionsplan der Kiste: Ausreichend Platz für 2 Powerbanks und maximal vier M5-Stacks. Der Ausschnitt auf Fläche 2 ist mit den Schlitzen rechts und links (Fläche 3,4) zur Belüftung vorgesehen. Fläche 3 mit dem zusätzlichen Schlitz bietet im Zusammenspiel mit dem Deckel die Möglichkeit, ein Briefkastenschloss anzubringen.
Die Einzelteile müssen zunächst flächig abgeschliffen werden. Außerdem überstehende Ränder, Grate und Kanten abschleifen und so lange bearbeiten, bis die Teile einwandfrei ineinander passen.
Aufgeklebte Magnete (Fläche 1) (ggfs. Fläche 6) halten die M5-Stacks an der jeweiligen Rückwand. Dazu eignen sich vor allem selbstklebende Magnete. Man kann sie jedoch wie im Beispiel auch mit Kleber einkleben.
Holzleim auf den sich berührenden Kanten auftragen und danach unter Druck mind. 3-4 Stunden bei Raumtemperatur aushärten lassen. Zeiten variieren je nach Holzleim.
Holzlasur in mind. 3 Schichten auftragen. Nach jeder Schicht mind. 12 Stunden trocknen lassen. Das macht die Pressspanplatten der Box erst wetterbeständig. Anschließend Acrylglas Front einsetzen und ggfs. einkleben, dabei Vorsicht: Acryl zerkratzt sehr leicht!
Die Umwelteinflüsse wie: Niederschlag, Temperaturen, Wind, Tiere und bei öffentlich zugänglichen Orten auch neugierige Mitmenschen machen den Outdoorbetrieb deutlich aufwändiger.
Soll der Versuchsaufbau von der Außenwelt geschützt durchgeführt werden, müssen diese Faktoren natürlich nur vereinfacht berücksichtigt werden. Dennoch sollten darauf geachtet werden, dass die Elektronik vor Wasser und Faktoren wie Mitbewohnern, Haustieren, aber auch direkter Sonneneinstrahlung geschützt aufbewahrt wird, denn die Faktoren können die Messdaten verfälschen.
Die Aufbewahrung kann in jeder Unterbringung erfolgen, es sollte dennoch bedacht werden, dass die Mini-Computer auch nicht zu heiß werden.
Deshalb:
Den Aufbau vor: direkter Sonneneinstrahlung und Wasser durch Gießen schützen. Die Stromversorgung kann mit Powerbank erfolgen, dann ist jedoch regelmäßiger Wechsel nötig! Besser ist dabei ein Ladegerät mit dauerhafter Stromversorgung.
Im Allgemeinen ist die Vielfalt der Möglichkeiten, die Sensorik und Kisten wieder nahezu unendlich. Viel Kreativität und etwas Geschick sind gefragt.
Gehäuse mit Technik:
Grundvoraussetzungen zur Anbringung, die berücksichtigt werden sollten, sind:
Bei unserem Aufbau haben wir sowohl die Kunststoffkisten als auch die Holzkiste mit Schrauben am Hochbeet befestigt.
(Beim Schrauben durch Kunststoff die zu durchbohrende Stelle mit Klebeband bekleben und danach durch das Klebeband bohren. Je vorsichtiger und langsamer, desto geringer ist die Wahrscheinlichkeit auf Risse. Dazu beispielsweise mit einem kleinen Bohrer starten und immer größer aufbohren, bis die Schrauben durch passen.)
Bei dem Gehäuse aus Holz sind die drei Löcher im oberen Drittel der Rückseite (Fläche 1). Durch diese kann die Kiste mit Schrauben angebracht werden.
Sensorik:
Die Sensoren, die oben auf dem Bild von den Sensoren zu sehen sind, haben jeweils zwei Löcher, die kompatibel mit Klemmbausteinen wie Lego/-Technik kompatibel sind. Wir haben diese jedoch an Holzspateln befestigt und in die Erde gesteckt.
Dazu können z. B. Eisstiele oder Holzspatel aus dem Baumarkt/ Gärtnereibedarf verwendet werden. Diese können dann mit einem kleinen Bohrer mit Löchern versehen werden. Die Sensoren selbst halten mit Schnur/Kabelbindern am Holz. Bei der Frontseite der Custom-Lösung sind außerdem einige Stecker dieser Art im Verschnitt der Acrylglasfront integriert, diese werden zusammengesteckt und sind etwas scharfkantig, jedoch sehr stabil.
Neben diesen Anregungen sind jedoch sicherlich vielfältige weitere Möglichkeiten zur Befestigung der Gehäuse und der Sensoren möglich. Viel Erfolg beim Tüfteln!
Neben der Hardware muss der M5-Stack auch richtig Programmiert werden:
Zuerst solltet ihr diese beiden Webseiten öffnen:
Wir nutzen eine Software, die vom Hersteller der M5 Stacks angeboten wird. Damit lässt sich einfach Code erstellen. (Es ist auch möglich eigenen Code über MicroPython zu schreiben).
Mac-Nutzer bitte diesen Link beachten, sodass ihr euren Stack mit eurem Mac-Gerät verbinden könnt. Auf Windows funktioniert es problemlos.
Wählt zuerst das UI Flow aus, das zu eurem M5 Stack passt.
WICHTIG!
Damit ihr euren Fortschritt im Code fehlerfrei öffnen könnt, müsst ihr zuerst den Tactilenews-Block öffnen
Die Dateien findet ihr hier
Wichtig!
Achtet bitte darauf, wo ihr die Datei abspeichert, sodass ihr sie später wieder findet.
Fügt ihr diese nicht hinzu, wird Code stellenweise fehlen und nicht korrekt funktionieren.
Die Tactilenews-Blöcke bauen eine Verbindung zu Airtable auf und lassen euch die Daten dorthin senden.
Achtet darauf, die korrekten Sensoren auszuwählen, die ihr an eurem Stack angeschlossen habt. Je nach hinzugefügten Sensoren gibt es neue Auswahlmöglichkeiten im UI Flow.
Airtable ist der Ort, an dem all eure gesammelten Daten landen. Von dort aus könnt ihr sie für eure Projekte weiter verwenden.
Warnung!
Airtable bietet eine kostenlose Option an. Dort könnt ihr lediglich 1.000 Einträge speichern. Dies sollte zum ersten Testen reichen, beachtet diese Restriktion jedoch, solltet ihr euer Projekt skalieren wollen.
Erstellt euch einen Airtable Account und eure erste „Base“.
Ihr könnt bereits erste Spalten erstellen. Solltet ihr mehrere Sensoren betreiben, dann erschafft eine Spalte, um sie dort differenzieren zu können. Diese Sensoren müssen dann ihren spezifischen Namen mitsenden. So können die Einträge im Nachhinein zugeordnet werden.
Wichtig ist der Sensortyp. In unserem Set-up gab es Feuchtigkeit, Temperatur, Luftdruck und Farbe. Bei der Farbe eignet es sich, die Werte einzeln zu schicken. Diese labelt ihr im Code einzeln.
Ebenso wichtig ist es, eine Spalte für das Datum und die Tageszeit zu haben, damit man Schlüsse über beispielsweise Temperatur und Uhrzeit ziehen kann.
Schritt 5: API und BaseID von Airtable
Den API-Schlüssel zu bekommen, ist einfach. Man navigiert über das Profilbild zum Developer hub.
Den API-Schlüssel zu bekommen, ist einfach. Man navigiert über das Profilbild zum Developer hub.
Dort könnt ihr euch auch direkt den Schlüssel anzeigen lassen. Die BaseID ist genauso leicht herauszufinden, jedoch etwas versteckt. Dazu müsst ihr in der richtigen Base sein. Anschließend erkennt man die BaseID in der URL. Sie beginnt mit „app“ und befindet sich innerhalb zwei Schrägstrichen.
Schreibt euch den API Key und die BaseID auf, wir brauchen sie später.
So ähnlich könnt ihr euer Display auch gestalten. Per Knopfdruck lassen sich alle wichtigen Informationen anzeigen: Temperatur, Luftfeuchte, Farbwert, die Sensor ID mit API Key, aber auch Uhrzeit und Batteriestand.
Mithilfe der Labels (siehe linke Spalte) kann man die Texte hinzufügen.
Coden, das erledigt man hier indirekt. Über die hilfreichen Bausteine kann man sich kinderleicht individuelle Programme zurechtbauen.
Wir beginnen mit dem Set-up. Hier setzen wir die LED des Stacks auf aus und schalten auch das Display aus. Dadurch wird die Batterielaufzeit verlängert.
Wir holen uns über den NTP Host die Uhrzeit und setzen unsere Zeitzone. Die Uhrzeit könnt ihr euch auf dem Display anzeigen lassen.
Sofort darauf folgen zwei Events, die nacheinander ablaufen. Diese Events finden jede halbe Stunde statt. Das Event „send_data“ hat eine Verzögerung von 10 ms, damit der Stack Zeit hat, die Daten zu sammeln.
Jetzt ist es wichtig, die Timer zu erstellen.
Hinweis: Wir nutzen Timer, damit der Stack nicht ständig die Sensordaten abfragt, sondern nur jede halbe Stunde. Damit soll die Batterie weitestgehend geschont werden.
Im Timer „get_data“ erstellen wir Variablen, diese sind die Werte, die wir anschließend an Airtable senden.
Wichitg!
Denkt daran, alle Werte bzw. Variablen in Strings zu konvertieren, sodass alles korrekt gesendet und empfangen wird.
Die Variable „Temperatur“ definieren wir folgendermaßen. Wir nehmen die Temperatur aus dem ENV 3 Sensor und reduzieren sie auf eine Dezimalstelle.
Die Bausteine der Sensoren könnt ihr unter Units finden.
Die anderen Variablen folgen derselben Logik. Es wird die Variable benannt, dann konvertieren wir die Daten zu Strings und fügen die Sensorwerte hinzu.
Bei dem Luftdruck kommt es auf den Sensor an. Beim ENV 3 Sensor muss man noch Mathe-Bausteine hinzufügen und durch Hundert teilen, damit man den korrigierten Luftdruck sendet. Beim ENV 1 muss man dies nicht erledigen.
Der Timer „send_data“ folgt dem Timer „get_data“.
Hier nutzt ihr nun die custom Blöcke, die ihr zu Beginn hinzugefügt habt.
Zuerst muss der Stack wissen, wohin er die Daten sendet. Tragt nun euren API-Key und eure BaseID ein. Anschließend könnt ihr über den Team Namen einen von euch gewählten Namen für den spezifischen Stack nehmen.
Dies ermöglicht es euch, mehrere Stacks auseinanderzuhalten.
Als nächstes sendet ihr eure Daten. Nennt bei den Einträgen die korrekte TableID, den Sensortypen und hängt die korrekte Variable an, die zuvor erstellt und definiert habt.
Macht dies mit allen Sensortypen und dann seid ihr mit dem Coden fast fertig.
Wollt ihr in Echtzeit euren M5 Stack arbeiten sehen, so solltet ihr Nutzen vom Display machen.
Um das Display zum Laufen zu bringen, brauchen wir diesen Code hier:
Sobald man auf Button A drückt, wird die Helligkeit des Displays auf 70 % gesetzt und es wird die Uhrzeit angezeigt.
Auch der Batteriestand wird angezeigt und ist mit einem Balken hinterlegt.
Es ist natürlich nicht notwendig, aber wir haben dem Balken etwas Farbe gegeben, je nach Akkustand. Jede Abstufung hat eine andere Farbe und wird durch Logik-Bausteine ermöglicht. Auch die Sensorwerte werden direkt auf dem Display angezeigt.
Anschließend schaltet sich das Display nach einer Periode von 2 Sekunden ab. Das könnt ihr je nach Belieben ändern!
Und das war es fast schon!
Im rechten unteren Rand habt ihr drei Buttons. Nutzt am besten den „Run“ Command. Dann wird der Code einmalig auf das Gerät geschrieben und er startet sofort mit seiner Aufgabe.
„Download“ lädt den Code auf das Gerät runter.
Wichtig! Achtet bitte darauf, wo ihr die Dateien abspeichert, sodass ihr sie später wieder findet.
Grundsätzlich ist letztere Option sicherer, denn das Programm müsste nach einem Reboot von selbst neu starten, doch dies tat es für uns nicht.
Ein Zugriff von der Ferne ist dann auch nicht mehr möglich, weshalb wir den „Run“ Command empfehlen. Sollte sich der Code mal aufhängen (was bei uns sehr selten vorkam), dann könnt ihr auch von der Ferne, solange ihr den API Key habt und das Gerät mit dem Internet verbunden ist, den Code neu bespielen und der Stack sammelt weiter fleißig Daten.
Disclaimer! Es gibt mit Sicherheit viele weitere Wege, die Daten an Airtable zu senden, doch mit dieser Logik dürfte es die zuverlässigste, stromsparendste und einfachste Lösung sein.
Und das war es! Viel Erfolg beim Experimentieren und Daten sammeln
Bei unserem Projekt arbeiten wir zusammen mit dem Bioversum Darmstadt und taktile.news, die uns mit ihrem Fachwissen zur Seite stehen. Gemeinsam entwickeln wir neue Wege des Geschichtenerzählens, indem wir den Pflanzen eine Stimme geben und die Möglichkeiten des Internet of Plants nutzen.
Datenschutz
Impressum