ThingSpeak bietet eine sehr einfache Möglichkeit, Visualisierungen zu erstellen und diese sogar in deine eigene Homepage zu integrieren. Dies erfolgt mithilfe von sogenannten Widgets, die mit einer Codezeile aufgerufen werden.
Teil 1: Einfache Visualisierungen in ThingSpeak erstellen
In diesem Artikel beschreibe ich, welche Standard-Anzeigetypen in ThingSpeak verfügbar sind und wie einfach diese Widgets erstellt werden können.
Teil 2: Individuelle Diagramme mit MATLAB Visualization erstellen
In einem zweiten Artikel stelle ich einige Beispiele für individuelle Plots zur Verfügung.
Teil 3: ThingSpeak Widgets in Jimdo-Homepage einbetten
Schließlich kannst du in einem dritten Artikel lesen wie einfach sich einzelne Anzeigeelemente in deine Jimdo Homepage einbinden lassen.
Auf meiner Honigseite findest du Beispiele wie das aussehen kann.
Ich würde mich freuen, wenn hier weitere interessante Auswertungen von anderen geteilt werden könnten.
Ich habe einige Umrechnungen von meterologischen Messdaten auf andere Parameter in MATLAB umgesetzt:
% Channel ID of Testscale
readChannelID = xxxxxxxx;
%Fields:
% 1: Interne Temperatur
% 2: Temperatur
% 3: Luftfeuchte
% 4: Luftdruck
% 5: Waage 1
% 6: HX711 Waage 1
% 7: Hive Temp Sensor
% 8: Supply Voltage
% Elevation of hive
e = 175;
%
%
data = thingSpeakRead(readChannelID);
T = data(2)
rH = data(3)
p = data(4)
%****************************************
% Luftdruck auf Meereshöhe umgerechnet („reduziert“
%
pred = SeaLevelReduction (T, rH , e, p)
%**************************************
% Partialdruck des Wasserdampfs in hPa
ppartw = H2Oppart ( T , rH );
%
%**************************************
%
% Wassergehalt in g/m³
absWass = CH2O (T, rH)
%
%**************************************
%
% Taupunkttemperatur in °C
taupunkt = DewPoint ( T, ppartw)
%
%**************************************
%
% partial pressure of water vapor
function wppart = H2Oppart ( T , rH )
wppart = rH /100 * H2Opsat (T);
end
% dew point iteration
function dwp = DewPoint ( T, ppartw)
td = T;
while (H2Opsat (td) >= ppartw)
td = td – 0.01 ;
end
dwp = td;
end
%
%**************************************
%
% absolute water vapor concentration
function Mass_conc_H2O = CH2O (T, rH)
% Universal gas constant
R = 8.31446261815324;
% molar mass of water
M = 18.01528;
% ratio for formula
MdivR = M/R;
if (T50)
Mass_conc_H2O = NaN;
end
end
%
%***************************************
%
% saturation water vapor pressure
function satvappress = H2Opsat (T)
%The Computation of Saturation Vapor Pressure
%Paul R. Lowe, et al
%Environmental Prediction Research Facility (Navy)
%Monterey, California
%March 1974
%https://apps.dtic.mil/sti/citations/AD0778316
% over water Coefficients
a0 = 6.107799961;
a1 = 4.436518521E-1;
a2 = 1.428945805E-2;
a3 = 2.650648471E-4;
a4 = 3.031240396E-6;
a5 = 2.034080948E-8;
a6 = 6.136820929E-11;
% over ice Coefficients
b0 = 6.109177956;
b1 = 5.034698970E-1;
b2 = 1.886013408E-2;
b3 = 4.176223716E-4;
b4 = 5.824720280E-6;
b5 = 4.838803174E-8;
b6 = 1.838826904E-10;
%
sat_vap_press_w =a0 + T*(a1 + T*(a2 + T*(a3 + T*(a4 + T*(a5 + T*a6)))));
sat_vap_press_i =b0 + T*(b1 + T*(b2 + T*(b3 + T*(b4 + T*(b5 + T*b6)))));
satvappress = min(sat_vap_press_w, sat_vap_press_i);
end
%
%***************************************************
%
function result = SeaLevelReduction (T, rH , e, p)
%“Atmospheric pressure at a place, reduced to MSL using
%the actual temperature at the time of observation as
%the mean temperature.“
%
%calculation per
%
%DWD, Vorschriften und Betriebsunterlagen 3, BEOBACHTERHANDBUCH, Page 6-11
%VuB 3 BHB – Dezember 2015
g = 9.80665; % gravitation constant standard value
R = 287.05; % gas constant dry air (= R/M)
alpha = 0.0065; % vertical temperature gradient
Ch = 0.12; % factor for E
h = e; % adapt to local value
ThC = T; % Temperature in °C measured value
Hum = rH; % Humidity in % r.H. measured value
ph = p; % in hPa measures value
Pp = H2Oppart(ThC, Hum); % partial water vapor pressure
ThK = ThC + 273.15; % Temperature in K
x = g/(R*(ThK + Ch*Pp+alpha*h/2))*h; % calculation of exponent
P0 = ph * exp(x);
result=P0;
end
Ich habe diese mit Daten von meiner Waage die sich grad im Test (ohne Bienen) befindet getestet.
Um das zu nutzen, muss man noch die Zuordnung der Eingangsdaten (data()) vornehmen sowie die wahre Höhe (Elevation) der Waage eintragen. Die Formel gilt nicht im Hochgebirge.
Ich sehe grad dass das Kopieren einiges verschluckt hat……
Hallo, ich versuche mich auch gerade an einer Waage, Temperatur, Luft usw. Messeinrichtung.
Ich verwende eine Raspberry Pi 2. Gilt für den auch die aktuelle download Datei 1.0?
Irgendwie sah es erst gut aus, aber er kommt nicht zum Abschluss. Er loggt bei HoneyPi ein, aber irgendwie geht der WiFi nicht und deshalb bekommt ThinkSpeak keine Daten.
Im Moment bin ich ratlos.
Habt ihr eine Idee?
Ich hatte zum Test auch ein festes Netz angelegt, ändert aber auch nichts.
Wenn du im Wartungsmodus im Reiter Protokoll nachliest, siehst du warum keine Daten übertragen werden. Schau dort mal.
Ventuell ist einfach kein Übertragungsintervall eingestellt.
Grüße
Hallo zusammen,
Wie ist den der Update Status ?
Hallo Heiner, was genau ist Deine Frage?
Vielen Dank für die drei Kapitel über die Darstellung von Daten.
Ich möchte etwas ähnliches im technischen Bereich machen.
Kann man die Daten, die man auf eine Homepage einbetten will auch von einem privaten Kanal beziehen.
Herzlichen Dank für einen kurzen Kommentar.
Beste Grüsse aus der Schweiz
– Beim Nutzen der ThingSpeak API: Wenn der Channel „privat“ ist, muss man beim Aufruf der REST-API von ThingSpeak noch einen Authentifizierungs Key mitschicken.
– Einbetten der Visualisierungen bspw. als iFrame: Nur wer den Channel auf „public“ stellt, dann ist ein öffentliches Einbinden möglich.
Hallo Johannes,
sehr schöne Visualisierungen hast Du da erstellt. Habe gleich ein paar davon auf meinem Thingspeak-Channel https://thingspeak.com/channels/624932 übernommen.
Ergänzen mit weiteren Visualisierungen ist ja fast nicht möglich…Du hast ja alle interessante Visualisierungen quasi bereits hier veröffentlicht ;-).
Übrigens konnte ich den Code für die Visu zur Darstellung der „täglichen Gewichtsveränderung“ hier nicht finden. Würdest Du den Code dazu auch veröffentlichen? Die Darstellung finde ich nämlich toll.
Viele Grüsse
Friedrich
Hallo Friedrich, danke für die Blumen 🙂
Habe den Artikel mit dem Matlab-Code ergänzt.
Sonnige Grüße aus Heilbronn
Johannes
Vielen Dank Johannes!
Funktioniert und sieht toll aus 🙂
Mein Vorzeigevolk auf der Waage spielt auch perfekt mit.
Prima, dass Du deine Arbeit hier den anderen zur Verfügung stellst!
Viele Grüsse
Friedrich
Hallo Friedrich,
den Dank gebe ich gerne an Javan und das Honey-Pi Team weiter. Sie haben dieses großartige Projekt entwickelt und der Imkerschaft zur Verfügung gestellt! Das steckt an, da lege ich gerne meine 2 ct noch mit dazu 🙂
Sonnige Grüße aus Heilbronn
Johannes