Modul 4b

Das vergangene Modul 4 zeigte uns, wie wir Thingspeak verwenden können, um unsere Daten zu visualisieren und dadurch auch unterwegs unsere Daten überwachen zu können. Thingspeak und die Cloud im Allgemeinen bieten uns allerdings noch viele weitere Möglichkeiten, um mit unseren Daten zu arbeiten und mit dem Octopus zu kommunizieren. Daten können auf unterschiedliche Arten und Weisen versendet werden und können Nutzern auch auf verschiedene Arten präsentiert werden. Ob in einer Zeitreihengrafik, wie wir sie aus Modul 4 kennengelernt haben, in Form alternativer Anzeigen oder sogar als Sprachausgabe.

Lernpfad

Thingspeak an unsere Bedürfnisse anpassen

Für Profis: Andere grafische Darstellungsmöglichkeiten im Thingspeak

Bei Thingspeak hast du zudem zusätzliche Möglichkeiten der grafischen Darstellung. Über den Button Plugins, am oberen Rand der Webseite, hast du Möglichkeit, eigene Darstellungen zu erzeugen (vgl. Abbildung 1). Wir zeigen dir hier, wie du den sogenannten Google Gauge erzeugst. Eine Art Tacho für Messwerte (vgl. Abbildung 2). Klickst du auf "New Plugin" erscheint ein Bildschirm gemäß Abbildung 3. Hier wählst du Google Gauge.
Im nächsten Bildschirm musst du deine Kanal-Nummer und deinen API-Key angeben. Weiter solltest du deinem Plugin einen eindeutigen Namen geben. Wo du den API-Key findest, weißt du bereits aus Modul 4. Die Kanal-Nummer findest du unter "Channel Setting". Trage beides an den markierten Stellen in Abbildung 4 ein.

ACHTUNG:
Sollte du mit thingspeak.umwelt-campus.de arbeiten, so musst du in Zeile 34 noch die URL api.thingspeak.com gegen thingspeak.umwelt-campus.de austauschen.

Ab jetzt solltest du das Plugin in deinem Kanal verwenden können, indem du unter "Private View" auf "Add Windows" und dort auf "Plugins" klickst. Hier sollte nun dein Plugin auftauchen (vgl. Abbildung 5). Wenn du es auswählst, taucht es als zusätzliche Anzeige in deinem Kanal auf (vgl. Abbildung 6).

Abb. 1 Unter Plugins kannst du eigene grafische Anzeigen erzeugen
Abb. 2 Die Google Gauge. Ein Tacho für die Messwerte im Thingspeak
Abb. 3 Sobald du ein neues Plugin erzeugen willst, wähle Google Gauge
Abb. 4 An diesen Stellen trägst du deine Kanal-Nummer und deinen API-Key ein. Achte darauf, dass der API-Key in Hochkommata steht
Abb. 5 In dem "Private View" deines Kanals kannst du das Plugin unter "Add Windows" auswählen
Abb. 6 So sieht die neue Anzeige in deinem Kanal aus

Für Profis: Auslesen der Daten mit Hilfe der Programmiersprache Python

Abb. 7 So sieht ein Python-Programm aus, mit dem du auf die Daten im Thingspeak zugreifen kannst

Manchmal möchte man die Daten, die man in die Cloud lädt auch weiterverarbeiten, zum Beispiel um diese für andere Programme zu verwenden. Wir möchten dir kurz zeigen, wie du mit der Programmiersprache Python auf die Daten aus dem thingspeak.com zugreifen kannst.

In Abbildung 7 siehst du ein Programm, dass als Grundlage für das Auslesen der Daten dient. Auch hier benötigst du deine Kanal-Nummer und deinen API-Key, um auf die Daten zugreifen zu können. Als erstes senden wir eine Http-Anfrage an Thingspeak und erhalten ein Objekt zurück. Dieses Objekt geben wir auf dem Bildschirm aus. Sie hat die Form {"created_at":"2020-04-26T15:15:26Z","entry_id":16514805,"field1":"330","field2":"49.341825902335458"}. Da wir nichts mit dieser Form, die man JSON nennt, anfangen können, übersetze wir diese Form in ein sogenanntes Array. Eine Art Tabelle, in welcher wir auf einzelne Tabellenfelder zugreifen können. Im Beispiel auf der rechten Seite greifen wir auf das erste Datenfeld zu.

Ab diesem Moment kannst du die Daten beliebig weiterverarbeiten. Es ist zu beachten, dass du immer nur einen Wert, nämlich den aktuellsten, vom Server erhältst.

Eine SMS erhalten, wenn es zu warm wird mit IFTTT und MQTT

Um eine SMS zu erhalten, wenn die Temperatur zum Beispiel in unserem Gewächshaus zu hoch ist, benötigen wir die Unterstützung zweier Plattformen. Zuerst benötigen wir eine Alternative zu Thingspeak. Hierfür verwenden wir https://io.adafruit.com/. Auf dieser Seite können wir, wie in Abbildung 8 angezeigt, einen sogenannten Feed erzeugen. Ein Feed hat wie bereits beim Thingspeak eine eindeutige Erkennungsnummer sowie einen Namen, Topic genannt, und kann über das Protokoll MQTT mit Daten beschrieben werden. Für dieses Protokoll gibt es ebenfalls ein Bauteil in der IoT:MQTT-Protokoll Schublade des ArduBlock (vergleiche Abbildung 9). Die Erkennungsnummer des MQTT-Feeds muss hier eingetragen werden. Sobald unser Programm wie jenes in Abbildung 10 aussieht (achte darauf den Topic-Namen an deinen Feed gemäß dem Muster Nutzername/Feeds/Feedname anzupassen), können wir uns mit der Einstellung der Email befassen. Folge hierfür der Bilderstrecke von Abbildung 11 bis zum Ende!

Abb. 8 Zuerst müssen wir uns bei Adafruit registrieren. In der oberen rechten Ecke des Webseite findest du deinen Erkennungscode (Adafruit IO Key)
Abb. 9 Das Bauteil MQTT findest du in der entsprechenden Schublade des ArduBlock
Abb. 10 So sieht unser fertiges Programm aus
Abb. 11 Damit wir eine SMS erhalten, wenn die Temperatur zu hoch wird, müssen wir unseren Feed überwachen. Die Webseite IFTTT bietet eine solche kostenlose Überwachung an. Hier müssen wir uns zuerst mit unserem Adafruit IO Konto verbinden. Wir finden die Einstellung hierfür über "Explore"
Abb. 12 Klicke, nachdem du dein IFTTT mit Adafruit verbunden hast, oben rechts auf Settings und dort auf Connect. Es ist wichtig, dass du in einem anderen Browser-Tab auf der AdafruitIO-Webseite angemeldet bist
Abb. 13 Wir stellen nun unsere "App" zusammen, indem wir zuerst auf "Create" und danach auf das große Plus klicken
Abb. 14 Hier wählen wir nun des Service Adafruit aus
Abb. 15 Im nächsten Bildschirm wählen wir "Monitor a feed on Adafruit IO" aus
Abb. 16 An dieser Stelle müssen wir nun die Daten des Feeds eingeben. Hier kannst du auch wählen, wann du genau eine SMS erhalten möchtest. Hier haben wir als Grenze 25 Grad gewählt. Wird es wärmer, erhalten wir eine SMS
Abb. 17 Danach müssen wir eine Folgeaktion auswählen. Hier wählen wir Send SMS
Abb. 18 Im folgenden Bildschirm geben wir unsere Handynummer und den Text der SMS an. Der Platzhalter {{FeedValue}} wird automatisch mit dem Temperaturwert ersetzt
Abb. Abschließend aktivieren wir unser Applet und erhalten ab jetzt eine SMS, falls die Temperatur 25 Grad übersteigt. es kann hier passieren, dass man die IFTTT- App auf seinem Smartphone herunterladen muss, um die Handynummer zu bestätigen
Daten im Thingspeak über Alexa auslesen

Wie starten wir?

Damit Alexa die Temperatur in unserem Gewächshaus vorlesen kann, müssen wir ein paar Dinge vorbereiten. Im Folgenden werden dir die Schritte der Reihe nach präsentiert.

Drobbox vorbereiten

Abbildung X Du kannst deinen Dateien für alle Menschen per Link freigeben

Zu Beginn muss du dir einen Dropbox-Account erstellen und die Software auf deinem PC installieren. Nun wird ein Ordner auf deinem Rechner angelegt, der sich immer mit der Cloud synchronisiert, sobald du etwas in diesem Ordner änderst. Speicher eine Textdatei in deinem Dropbox-Ordner mit dem Namen Gewächshaus.txt und speichere den folgenden Text in dieser Datei:

{ "uid": "urn:uuid:1335c695-cfb8-4ebb-abbd-80da344efa6b", 
"updateDate": "2019-10-06T00:00:00.0Z", 
"titleText": "Deine Nachrichten", 
"mainText": "Die Temperatur in deinem Gewächshaus beträgt aktuell 24 Grad", 
"redirectionUrl": "https://developer.amazon.com/public/community/blog" 
}

Gebe diese Datei nun für alle Menschen frei und kopiere den Link, der dir vorgeschlagen wird (vgl. Abbildung X). Er sieht beispielsweise wie folgt aus:

https://www.dropbox.com/s/9m12o3x1ntjdaig/Gew%C3%A4chshaus.txt?dl=0

Damit Alexa diesen Link auslesen kann, müssen wir das www zu Beginn des Links durch ein dl austauschen:

https://dl.dropbox.com/s/9m12o3x1ntjdaig/Gew%C3%A4chshaus.txt?dl=0

 

 

Python Skript vorbereiten

Abb. z Mit einer kleinen Anpassung, schreibt das Pythonskript die ausgelesenen Daten in eine Datei, die in einem Dropbox-Ordner liegt. Alexa kann diese Datei auslesen

Unser Python Skript muss so gestaltet werden, dass es den Thingspeak-Kanal ausliest und die Datei im Dropbox-Ordner überschreibt. Als Grundlage verwenden wir das Python-Skript von weiter oben (vergleiche Abbildung 7) und erweitern es.

Alexa Skill vorbereiten

Wir müssen einen Alexa Skill erzeugen, der eine Textdatei ausliest, in der wir die Informationen finden, die Alexa uns vorlesen soll. Aus diesem Grund erzeugen wir uns einen Account bei Amazon Developer. Am besten verwendest du hier den Account, mit dem auch deine Alexa verbunden ist. Hier können wir unter dem Reiter Alexa -> Alexa Skill Kit einen neuen Skill erzeugen, den wir auf unserer Alexa installieren können. Wähle als Typ deines Skills das Flash Briefing (Abb. Y). Hier musst nicht mehr angeben als den Link zur Textdatei (siehe Abbildung Z). Abschließend muss du den Skill noch über die Schaltfläche Certification aktivieren. Nun kannst du über ein "Alex, was gibt es neues"-Kommando, die Temperatur in deinem Gewächshaus erfragen.

Abbildung X Hier legst du deinen Alexa Skill an
Abbildung Y Wähle als Skill-Typ das Flash Briefing
Abbildung Z Mehr Daten musst du nicht angeben
Abbildung W Um den Skill zu aktivieren, musst du nur auf "Submit for review". Der Skill kann danach in deiner Alexa App aktiviert werden

Das Auslesen der Daten wiederholen

Abb. t Die Aufgabenplanung sorgt dafür, dass das Pythonskript immer wieder ausgeführt wird

Damit immer neue Daten in die Datei geschrieben werden, müssen wir das Pythonskript beispielsweise alle dreißig Minuten erneut ausführen. Dies kann man über verschiedene Wege erreichen. Ein Weg ist die Aufgabenplanung unter Windows. Hier kannst du Aufgaben festlegen, die zu bestimmten Zeiten wiederholt werden sollen (Abbildung t). Voraussetzung ist natürlich, dass der Rechner an ist.
Hier musst du nur eine neue Aufgabe erstellen, den Uhrzeittrigger auswählen (zum Beispiel: stündlich) und die Python-Datei auswählen (vgl. Abbildung x). Alles weitere übernimmt dein Rechner für dich.

Abb. x Der Pfad des Python-Skripts muss unter Aktionen angegeben werden
Die vielen Gesichter der Cloud

Der Begriff Cloud ist nun schon mehrfach gefallen. Aber was genau ist die Cloud? So einfach ist dieser Begriff nicht eingrenzbar, denn die Cloud ist vielfältig. Was du sicher als Cloud kennst, sind Speicherorte im Netz wie Dropbrox, Google Drive oder OneDrive, auf denen du deine Daten ablegen kannst. Sie erlauben dir, von überall auf diese Daten zuzugreifen und auf unterschiedlichen Geräten zu verwenden. Doch die Cloud ist noch mehr als das. Wie wir gelernt haben, gibt es Plattformen auf denen wir unsere Sensordaten speichern können. Sie ähneln sehr den Cloudspeichern, dienen aber einem anderen Zweck. 
Weiter gibt es Software die in der Cloud läuft und permanente Verbindung zum Internet benötigt. Falls du mit dem PC oder der Konsole spielst, sollte dir das vielleicht bekannt vorkommen. Aber auch andere Software greift automatisch auf Cloud-Dienste im Internet zu. Nahezu jede App auf deinem Smartphone sucht die Verbindung zum Internet und zu Diensten, die in der Cloud laufen.
Du merkst, dass viel mit der Cloud zusammenhängt und wir könnten an dieser Stelle noch viele weitere Beispiele aufzählen. Zusammenfassend kann man aber festhalten, dass die Cloud dafür sorgt, dass wir flexibler mit Daten arbeiten und auf sie zugreifen können und die Erreichbarkeit von Software und Apps stets gewährleistet ist, sofern wir über eine Internetverbindung verfügen. 

Gewächshaus mit Alexa überwachen

Bitte beachten Sie: Sobald Sie sich das Video ansehen, werden Informationen darüber an Youtube/Google übermittelt. Weitere Informationen dazu finden Sie unter Google Privacy.

back-to-top nach oben