Modul 4: Sensordaten im Internet bereitstellen - Dicke Luft im Klassenzimmer?

Im folgenden Modul wirst du lernen, wie du die mit dem Octopus ausgelesenen Sensordaten (z.B die Temperatur) auf eine Datenplattform im Internet laden kannst. Hierbei wirst du erfahren, wie du den Octopus mit deinem WLAN verbinden kannst und was eine Datencloud im Internet ist.

Lernpfad

Das Problem

Es ist Sommer und die Sonne scheint in euren Klassenraum. Im Klassenraum wird es unerträglich heiß, es ist stickig und das Arbeiten und Denken fällt schwer. Ihr kennt das sicher, oder? Wer Glück hat, kann die Rollläden herunterlassen und es wird schön schattig im Raum. Doch nicht alle Schulen haben diese Möglichkeit. Wie in den Abbildungen 1 und 2 zu sehen ist, kann es sogar an einer Schule Räume mit und ohne Rolläden geben.

Wir wollen die Schulverwaltung davon überzeugen, dass jeder Raum unserer Schule Rolläden braucht. Da die Schulverwaltung die dicke Luft in unseren Klassenzimmern aber nicht selbst erleben kann, müssen wir ihr irgendwie nachweisen, wie schlecht die Luft manchmal ist.

Vielleicht kann man dann an besonders heissen Tagen mit diesem Nachweis auch über Hitzefrei entscheiden..."


Diskutiert in eurer Gruppe, wie ihr der Schulverwaltung die stickige Luft nachweisen könntet!

Wie kann uns der Octopus helfen?

Der Octopus bietet uns die Möglichkeit, dass Klima im Klassenraum zu bestimmen. Mit dem Bosch Umweltsensor, den du auch auf Abbildung 3 sehen kannst, können wir Temperatur, Luftfeuchtigkeit und Luftdruck bestimmen. Da der Octopus aber auch ein IoT-Gerät ist, können wir die Klimadaten auf eine Internetplattform laden, auf welcher wir und auch die Schulverwaltung die Daten jederzeit ansehen können. Die Daten stehen dabei in Echtzeit zur Verfügung, d.h. wir können nicht nur den Verlauf des Klassenklimasüber einen längeren Zeitraum sehen (siehe Abbildung 4), sondern auch die momentanen "Livedaten".

Um das Problem zu lösen, müssen wir wissen, wie wir mit dem Octopus die Temperatur im Raum bestimmen können. Falls du noch nicht weißt wie das funktioniert, solltest du dir noch einmal Modul 3 anschauen. Hier lernst du, wie du die Klimadaten mit Hilfe des  "Bosch Umweltsensor BME 680"  auslesen kannst.

Falls du darüber hinaus noch nicht weißt, wie man den Octopus am PC anschließt und ein ArduBlock-Programm schreibt, schaue dir zuerst das Modul 1 an!

Die Daten ins Internet laden

Damit wir unsere erfassten Daten veröffentlichen können, benötigen wir eine Internetplattform, die unsere Sensordaten speichern kann und von der wir unsere Daten auch wieder abrufen können. Da die Daten nicht bei uns, sondern beim Anbieter der Plattform liegen, spricht man auch von der Datencloud (oder kurz Cloud).

Was ist die Cloud?

Abb. 8 So sieht die Startseite der Datencloud Thingspeak aus

Eine Datencloud ist praktisch so etwas, wie ein "Soziales Netzwerk" (Twitter, Facebook) für Maschinen. Hier können die intelligenten Geräte ihre Informationen speichern und austauschen. Eine solche Plattform ist Thingspeak, die du über thingspeak.umwelt-campus.de erreichst. Du kannst auf dieser Plattform kostenlos einen Account anlegen. In diesem Falle liegen unsere Daten dann auf den Festplatten der Server im Rechenzentrum der Hochschule Trier.

Sobald du dies erledigt hast, müssen wir ein paar Einstellungen vornehmen, um unsere Daten in die Cloud laden zu können. Folge den nächsten Abbildungen um diese Einstellungen vorzunehmen.

 

 

Die Cloud vorbereiten

Abb. 9 Als erstes klicken wir auf "New Channel"
Abb. 10 Im nächsten Bildschirm müssen wir nur den Namen des Kanals sowie des ersten Datenfeldes angeben (rot markiert)
Abb. 11 Danach sollten wir folgende Ansicht erhalten. Wir sehen schon das Datenfeld, müssen es jedoch noch mit Daten befüllen
Abb. 12 Wir benötigen jetzt an dieser Stell nur noch den sogenannten API Key aus dem Tab "API Keys". Der Code unterscheidet sich bei jedem angelegten Kanal und schützt ihn vor fremden Zugriffen. Am besten kopierst du ihn oder schreibst ihn auf einen Zettel.

Ein Hinweis

Falls du dich dafür interessiert, wie das Versenden der Daten im Detail funktioniert und wann man von einem Server bzw. Client spricht, schaue dir doch die fachlichen Informationen am Ende des Moduls an. Hier wirst du auch weitere Informationen zu Datenclouds finden.  

Die Raumtemperatur in der Cloud speichern
Abb. 13 So sieht unser fertiges Programm aus. Netzname, Passwort und API-Key musst du entsprechend deines WLAN-Netzes und deines Thingspeaks-Kanals abändern

Anschließend müssen wir das Programm aus Modul 3 entsprechend abändern, damit die gemessenen Daten in der Cloud gespeichert werden. Wir benötigen nun das Puzzleteil "Send Thingspeak" aus  dem Werkzeugkoffer "IoT: HTTP-Protokoll" und das bereits bekannte Bauteil "Bosch BME680". Da wir das erste Datenfeld in unserem Thingspeakkanal ausgewählt haben (vgl. Abbildung 9), müssen wir das Bauteil auch am "Feld 1" anbringen (vgl. Abbildung 13). Abschließend verwenden wir wieder ein "Warte Millisekunden" Bauteil, damit wir die Daten nur jede Sekunde erfassen und absenden - ansonsten würde der Server im Rechenzentrum ganz schön schwitzen. Bei der späteren Messung des Tagesverlaufs sollten wir eine Pausenzeit im Minutenabstand wählen - ansonsten kommen wir bei der Datenauswertung selbst ins schwitzen. Immerhin ändert sich die Raumtemperatur aufgrund der physikalischen Gesetze auch nur langsam.

Wir überzeugen die Schulverwaltung
Abb. 14 Unser fertiger Kanal zeigt die Temperatur im Klassenraum an. Die Schulverwaltung hat nun keine Möglichkeit mehr abzustreiten, dass es zu warm im Klassenraum ist

Wir können der Schulverwaltung nun einen Link zu unserem Thingspeak-Kanal zukommen lassen, mit welchem sie die Daten jederzeit begutachten kann (vgl Abb. 14). Sollte es also mal wieder zu warm im Klassenzimmer werden, kann die Schulverwaltung nicht abstreiten, dass Rolläden für alle Klassenzimmer sinnvoll sind. Und falls es einmal richtig heiß werden sollte, kann man sofort erkennen, wann es Hitzefrei geben sollte.


Überlegt gemeinsam, ob das realisierte Verfahren eventuell noch Schwachstellen hat!

Solche Temeraturüberwachung könnte auch für andere Anwendungen interessant sein. Zum Beispiel die Temperatur im Kühlraum eines Lebensmittelgeschäftes, oder im Lager eines Medikamentenherstellers. Auch könnten wir im Winterurlaub unser Wohnhaus beruhigt allein lassen - die Funktion der Heizung können wir ja jederzeit aus der Ferne überprüfen.


Kennst du weitere Beispiele aus deinem Alltag, die so ähnlich funktionieren?

Was können wir noch tun? (optional)

Weitere Messdaten erfassen

Abb. 15 Zusätzliche Sensoren können ebenefalls an das "Send Thingspeak"-Bauteil angehangen werden. Wichtig ist, dass du das Feld auf der Webseite aktivierst

Da der Octopus neben der Temperatur noch weitere Messdaten, wie zum Beispiel die Luftfeuchtigkeit (vgl. Modul 3) erfassen kann, können wir diese ebenfalls in Cloud laden. Dafür fügen wir zum Thingspeak Bauteil ein weiteres Sensorbauteil in "Feld 2" ein (vgl. Die Raumtemperatur in der Cloud speichern und siehe Abbildung 15).

Wichtig ist, dass du ebenfalls im Thingspeak ein weiteres Datenfeld aktivierst. Hierzu gehst du unter "Channel Settings" und klickst auf "add field" neben der Option "Field 2". Du kannst dem Feld nun einen Namen geben. Mehr musst du an dieser Stelle nicht tun. Lade dein Programm auf den Octopus und schaue dir die Daten im Thinspeak an.

Die erfassten Daten exportieren und interpretieren?

Abb. 16 Im Tab "Data Import / Export" kannst du die Daten in Form einer CSV-Datei exportieren

Die erfassten Daten können wir nicht nur anschauen, sondern auch aufbereiten. Beispielsweise könnten wir ein Klimadiagramm für das letzte Jahr entwerfen. Da dies nicht im Thingspeak möglich ist, bietet das Portal die Möglichkeit, die erfassten Daten in Form einer CSV-Datei (Comma Separated Values) zu exportieren. Diese Datei kann man dann mit einem Tabellenkalkulationsporgramm, wie beispielsweise Excel, verarbeiten. Die Knopf für den CSV-Export findest du im Tab "Data Import/Export" (Abbildung 16).

Überwachen der Daten

Bei vielen Anwendungen zur Datenüberwachung (Datenlogging) ist es wichtig, dass die Temperaturen in einem bestimmten Bereich bleiben. Zum Beispiel, um das Haltbarkeitsdatum von Lebensmitteln im Supermarkt zu garantieren. Hier wäre es sinnvoll, wenn wir sofort eine Warnung auf unser Handy bekommen würden, falls eine solche Bereichsüberschreitung auftritt. Leider besitzt die Open-Source Variante von Thingspeak eine solche Alarmfunktion nicht. Es gibt unter www.thingspeak.com allerdings eine Profiversion mit erweitertem Funktionsumfang. Hierzu ist eine separate Anmeldung beim Diensteanbieter (Betreiber des Servers) nötig, so dass wir uns das gut überlegen sollten, ob wir diese Funktionen auch wirklich benötigen. Immerhin liegen unsere Daten dann nicht mehr im Rechenzentrum der Hochschule Trier, sondern bei einem fremden Anbieter.

Fachliche Informationen (optional)

Wie funktioniert das Hochladen der Daten im Detail?

Bei der Kommunikation zwischen Octopus und Thingspeak handel es sich um eine sogenannte Client-Server Kommunikation. Der Ocopus ist hierbei der Client, während Thingspeak den Server darstellt. Bevor die eigentlichen Daten an den Server geschickt werden, findet zuerst ein Verbindungsaufbau statt. Dies ist wichtig, da überprüft werden muss, ob während des Versendens eventuell Daten verloren gegangen sind. Aus diesem Grund, fragt der Octopus zuerst beim Thingspeak-Server an, ob er überhaupt erreichbar ist. Thingspeak wiederum antwortet und teilt dem Octopus mit, dass dieser Client nun Daten versenden kann. Wichtig ist, dass der API-Key korrekt ist. Ansonsten bricht die Verbindung an dieser Stelle ab - der Server verweigert die Datenannahme.
Nach dem Versenden der kompletten Daten teilt Thingspeak dem Ocotpus mit, ob und wenn ja welche Daten angekommen sind. Auf diese Weise kann der Client entscheiden, ob er die Daten erneut sendet. So ist gewährleistet, dass es in unserer Datenerfassung keine Lücken gibt.

Wenn du hierzu mehr erfahren möchtest, schaue dir doch einmal die Informatik-Inhalte unter https://www.inf-schule.de/kommunikation/netze/module/transport an.

Was gibt es noch zu erfahren?

Neben Thingspeak gibt es noch weitere digitale Plattformen, auf welche wir unsere Daten hochladen können. Manche betreiben ein geschlossenes Ökosystem (z.B. Amazons Web Services) und verlangen ein Nutzungsentgeld für up- und downloads. Andere bieten offenen Zugriff für jedermann. Im Gegensatz zu Thingspeak, bei dem wir das "public-Flag" explizit setzen mussten, sind auf diesen Plattformen alle Daten für jeden anderen Teilnehmer sofort einsehbar. Solche Plattformen bezeichnet man als Citizen-Science (Bürgerwissenschaften) Plattformen. Wenn du mehr über solche Plattformen erfahren möchtest, solltest du mit Modul 5 fortfahren. Weiter wirst du hier erfahren, wie du Thingspeak an deine Bedürfnisse anpassen kannst und es in Kombination mit einer Programmiersprache verwendest.

Thingspeak und die meisten anderen Plattformen nutzen als Kommunikationsprotokoll das uns vom Internet-Browser sehr gut bekannte HTTP-Protokoll. HTTP (Hypertext Transfer Protocol) ist ursprünglich zur Übertragung von Text für Webseiten entwickelt worden. Für unser Problem der Messdatenübertragung gibt es allerdings andere, effizientere Protokolle. Ein Beispiel dafür ist MQTT (Message Queuing Telemetry Transport), welches z. B. auch bei Facebook zur Nachrichtenübertragung eingesetzt wird. Auch der Octopus spricht "MQTT" und kann so mit professionellen Datenplattformen kommunizieren. Mehr dazu und wie man den Octopus mit Alexa verbindet findest du ebenfalls in Module 4b.

Abb. 1 Klassenräume mit Rollläden
Abb 2. Klassenräume an der selben Schule ohne Rollläden
Abb. 3 Bosch Umweltsensor auf dem Octopus (gelb markiert)
Abb. 4 Eine Temperaturverlaufskurve, die mit dem Octopus ermittelt wurde
back-to-top nach oben