Iot Service ThingSpeak, einrichten und betreiben

Mit dem Service von ThingSpeak.com kann man Daten von seinen IoT Geräten auswerten und grafisch anzeigen lassen. Und wie man dieses macht möchte ich in diesem Tutorial beschreiben.

Wenn du dich bereits auf ThingSpeak.com registriert und angemeldet hast, so kannst du das erste Kapitel gerne überspringen und mit der „Einrichten eines Channels“ fortführen.

Registrieren auf ThingSpeak

Bevor man diesen Service nutzen kann muss man sich registrieren (wie bei so vielen anderen Services dieser Art). 
Auf der Hauptseite wird die grüne Schaltfläche „Get Started For Free“ geklickt und man wird dann (nach einer kurzen Ladezeit) weitergeleitet.

Einrichten eines Accounts auf ThingSpeak
Einrichten eines Accounts auf ThingSpeak

Die eigentliche Anmeldung erfolgt auf der neuen Seite, nachdem man die Felder befüllt hat und die Checkbox für das
Akzeptieren der „Online Service Agreement“ aktiviert hat, wird die Schaltfläche „Continue“ zum klicken freigegeben.

ThingSpeak Registrieren eines neuen Benutzers
ThingSpeak Registrieren eines neuen Benutzers

Bei der Eingabe des Passwortes gibt es folgende Regeln zubeachten:

ThingSpeak - Regeln für das Passwort eines Benutzers
ThingSpeak – Regeln für das Passwort eines Benutzers

Nachdem die Registrierung des neuen Benutzers abgesendet wurde, erhält man eine E-Mail welche man bestätigen muss. Hier hat mich als erstes gewundert das diese von der Adresse mathworks.com stammt und nicht von thingspeak.com. 

Bestätigungsmail von mathworks.com
Bestätigungsmail von mathworks.com

Anmelden

Wurde nun das Profil aktiviert, so kann man sich unter der Adresse https://thingspeak.com/login anmelden. Im ersten Schritt der Anmeldung gibt man die E-Mail Adresse ein. 

ThingSpeak - Anmelden Schritt #1 E-Mail Adresse eingeben
ThingSpeak – Anmelden Schritt #1 E-Mail Adresse eingeben

Im zweiten Schritt wird nun zusätzlich das Passwort mit eingegeben, hier taucht auch nun der Hinweis auf das man sich eigentlich bei MathWorks.com anmeldet. Es erschließt sich hier nicht warum man sich bei thingspeak.com anmelden muss um den Service von mathworks.com nutzen kann.

ThingSpeak -Anmelden Schritt #2 - Passwort eingeben und bei MathWorks.com anmelden
ThingSpeak -Anmelden Schritt #2 – Passwort eingeben und bei MathWorks.com anmelden

Nach der Eingabe des Passwortes und dem klicken auf die Schaltfläche „Sign In“ wird man weitergeleitet und es erscheint die Meldung:

Thingspeak - Anmeldung erfolgreich
Thingspeak – Anmeldung erfolgreich

Einrichten eines Channels

Nachdem wir uns nun auf ThingSpeak registriert und angemeldet haben können wir uns einen Channel anlegen. Das anlegen eines neuen Channels geschieht mit der Schaltfläche „New Channel“.

ThingSpeak - Channel erstellen
ThingSpeak – Channel erstellen

In der neuen Seite wird nun der Channel angelegt. Es gibt KEINE Pflichtfelder in dieser Maske man kann also auch einfach die Schaltfläche „Save Channel“ betätigen.

Aber gehen wir die Felder von oben nach untern durch einmal durch:

Name

Hier wird der Name des Channels vergeben.

Description

Eine kurze Beschreibung des Channels

Field(n)

Ein Feldbezeichner, dieser wird im Diagramm als Achsenbezeichnung genutzt. Das erste Eingabefeld und die Checkbox ist aktiviert. Um weitere Felder und somit Diagramme zu nutzen müssen die jeweiligen Checkboxen und dann natürlich die Eingabefelder befüllt werden.

Metadata

Erläuterung der Daten des Channels, hier können Strukturen wie JSON, XML oder CSV Daten abgelegt werden.

Tags

Hier können Schlüsselwörter aufgeführt werden um den Channel hervorzuheben.

Link to External Site

Wenn eine externe, Webseite für diesen Channel existiert so kann diese hier genannt und später verlinkt werden.

Link to GitHub

Wenn der Quellcode welcher für ThingSpeak verwendet wird auf einem Repository bei GitHub gehostet wird, so kann dieses hier angegeben werden. (Dazu sollte natürlich das Repository „public“ sein.)

Elevation

Die Höhe der Messstation  in Meter über den Meeresspiegel.

Show Channel Location

Wenn die Checkbox aktiviert ist so werden die Eingabefelder für „Latitude“ & „Longitude“ für die Eingabe aktiviert.

Show Video

Wenn die Checkbox aktiviert ist so kann man wiederum wählen ob ein Video auf YouTube oder Vimeo verlinkt werden soll, welches spezielle oder weitere Informationen zu diesem Channel bietet. Es wird bei der Aktivierung auch das Eingabefeld „Video URL“ für die Eingabe aktiviert.

Show Status

Wenn die Checkbox aktiviert wird dann ???

Schaltfläche „Save Channel“

Nachdem alle erforderlichen Felder befüllt worden sind kann der neue Channel gespeichert werden.

Channel Einstellungen

Im vorherigen Schritt haben wir einen Channel erzeugt, welchen wir nun weiter verwenden möchten. 
Navigieren wir dazu über die Menüpunkte „Channels“, „My Channels“ zur Übersichtsseite und wählen dort den neu erzeugten Channel aus.

ThingSpeak - Channel Reiter und Informationen
ThingSpeak – Channel Reiter und Informationen

Auf der Übersichtsseite des Channels sieht man neben dem Namen, dem Benutzernamen und der Beschreibung auch die Diagramme (welche zuerst leer und ohne jegliche Beschriftung sind).

ThingSpeak - leeres Diagramm
ThingSpeak – leeres Diagramm

Über dem Diagramm findet man die kleine Menüleiste um das Diagramm zu konfigurieren. Wollen wir also zuerst unser Diagramm korrekt beschriften. Dazu klicken wir auf das weiße Stiftsymbol. Es sollte sich nun ein kleiner Dialog öffnen in welchem wir das Diagramm konfigurieren können.

ThingSpeak - Channel Diagramm konfigurieren
ThingSpeak – Channel Diagramm konfigurieren

Wir wollen in dieses Diagramm später Daten von einem DHT22 Sensor über einen Wemos D1 mini (ESP8266) eintragen.

Nun sollte das Diagramm wie folgt aussehen:

Thingspeak - Channel_Diagramm für Temperatur "konfiguriert"
Thingspeak – Channel_Diagramm für Temperatur „konfiguriert“

Abrufen und Einfügen von Daten in den Channel

Nun kommen wir zu dem Hauptteil, dem einfügen von Daten in den Channel. Dieses wird mit einem einfachen HTTP/S Request gemacht. Hierzu navigieren wir zuerst im geöffneten Channel zum Reiter „API Keys“. Dort finden wir rechts die verschiedenen HTTP/S Request welche man vom Gerät oder Browser absenden kann.

Zum testen verwende ich das Tool Postman welches es auch als Browser Plugin für Google Chrome gibt. Dieses Tool hat einige Vorteile wenn man sich anmelden muss und so den HTTP Header bearbeiten muss.

Abrufen von Daten

Wollen wir uns zuerst die Daten abrufen. Hierzu nutzen wir den HTTP/S Request aus dem Bereich „Get a Channel Feed“. In meinem Fall lautet die Adresse „https://api.thingspeak.com/channels/617084/feeds.json?results=2“ wenn diese nun über den Browser abgesendet wird, so erhält man einen JSON Respond (Anwort vom Server) mit den Daten aus dem Channel (inkl. den Kopfdaten).

Da es aber bisher noch keine Daten gibt ist das Array von „feeds“ leer.

Fügen wir also einen Datensatz ein.

Einfügen von Daten

Ähnlich wie das Abrufen funktioniert auch das absenden von Daten, hier muss nur ein anderer Request verwendet werden. Es wird nun der HTTP/S Request aus dem Bereich „Update a Channel Feed“ genutzt. In meinem Fall lautet die Adresse „https://api.thingspeak.com/update?api_key=TGYVOE76T8X0S3B5&field1=0“. Hier muss man noch zusätzlich den Wert für den Schlüssel „field1“ anpassen. 

Wenn Gleitkommazahlen abgesendet werden sollen, so müssen diese mit einem Punkt getrennt sein. 

Als Rückgabe erhält man hier eine Zahl >-1 diese repräsentiert die Anzahl der Datensätze welche in dem Channel zu diesem Feed existieren.

In diesem Tutorial nutze ich die kostenfreie Version von ThingSpeak diese hat gegenüber der kostenpflichtigen Version die Einschränkung das der Intervall zum absenden von Daten auf 15 Sekunden begrenzt ist. Sollte der Updateintervall noch nicht erreicht sein so wird eine „0“ zurück geliefert.

Beispiel #1 – Wemos D1 mini mit DHT22 Sensor

In diesem Beispiel möchte ich nun anhand eines Wemos D1 mini mit dem DHT22 Sensor Shield zeigen wie man die Daten an den IoT Service von ThingSpeak sendet.

 

Das DHT22 Shield für den Wemos D1 mini habe ich bereits im Tutorial Wemos D1 mini Shield: DHT22 Shield erläutert, daher möchte ich hier auf die Verbindung zum Service von ThingSpeak eingehen. 

Schritt #1  – erstellen eines Channels

Der DHT22 Sensor liefert Daten über die Temperatur sowie der Luftfeuchtigkeit. Daher wird nun im ersten Schritt ein Channel erzeug wo zwei Felder angelegt werden (jeweils ein Feld für die Temperatur sowie eines für die Luftfeuchtigkeit).

Channel für einen DHT22 Sensor
Channel für einen DHT22 Sensor

Schritt #2 – Verbindung zu einem internen Netzwerk aufbauen

Damit der Wemos D1 mini mit dem Internet verbunden werden kann muss man zunächst eine Verbindung zu einem internen Netzwerk aufbauen. Im folgenden Sketch muss die SSID und das WLAN Passwort vom eigenen Router ergänzt werden. 

Schritt #3 – Auslesen der Werte vom DHT22 Sensor Shield

Im nächsten Schritt werden nun die Werte vom DHT22 Sensor Shield gelesen. Mein Plan war es das DHT22 Shield für den Wemos D1 mini zu nutzen jedoch hat mein Microcontroller ein Problem mit dem digitalen Pin D4 und genau dieser wird von dem Shield benötigt. Somit habe ich zu einem „normalen“ DHT22 Sensor gewechselt.

Ich habe in diesem Sketch die serielle Ausgabe mit 74880 Baud ausgegeben, dieses hat den Vorteil das man zusätzlich die Debugausgaben vom Wemos D1 mini zu sehen bekommt. 

Die Ausgabe auf dem seriellen Monitor der Arduino IDE sieht dann wie folgt aus:

Im nächsten Schritt werden wir also die beiden Sketche aus Schritt 2 & 3 verbinden und die Daten absenden.

Schritt #4 – Absenden der Daten

Und im letzten Schritt senden wir die Daten an den Service von ThingSpeak. Da ich wie bereits erwähnt den kostenfreien Service nutze kann ich nur alle 15 Sekunden einen neuen Wert senden. Ich gebe hier jedoch einen kleinen Puffer (2sek.) drauf damit ich sicher sein kann das der Intervall stimmt.

Adressen

Für das Absenden von Temperaturdaten verwenden wir die Adresse 

Diese Adresse enthält die Schlüssel / Werte Paare „field1“ sowie „field2“, es muss hier die Zahl 0 durch den entsprechenden Wert ersetzt werden.

Quellcode

Der finale Quellcode sieht dann wie folgt aus:

Video

Upload von Temperatur & Luftfeuchtigkeitswerte eines DHT22 Sensors nach ThingSpeak

 

.

 

 

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.