Visualisierung von Messdaten mit ThingSpeak

By | März 9, 2020

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.

Numeric Display und Gauge
Line Chart und Column Chart

Teil 2: Individuelle Diagramme mit MATLAB Visualization erstellen

In einem zweiten Artikel stelle ich einige Beispiele für individuelle Plots zur Verfügung.

Zwei individuelle Visualisierungen

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.

Author: Johannes

Familienvater, Ehemann und Ingenieur, in meiner Freizeit Hausmeister, Musiker und natürlich Imker. Wohnhaft in Heilbronn.

12 thoughts on “Visualisierung von Messdaten mit ThingSpeak

  1. Thomas Kuhn

    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.

    Reply
    1. Thomas Kuhn

      Ich sehe grad dass das Kopieren einiges verschluckt hat……

      Reply
  2. Ronald Wenzel

    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.

    Reply
    1. Javan

      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

      Reply
  3. Hermann Mettler

    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

    Reply
    1. Javan

      – 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.

      Reply
  4. Friedrich

    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

    Reply
    1. Johannes Post author

      Hallo Friedrich, danke für die Blumen 🙂

      Habe den Artikel mit dem Matlab-Code ergänzt.

      Sonnige Grüße aus Heilbronn

      Johannes

      Reply
      1. Friedrich

        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

        Reply
        1. Johannes Post author

          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

          Reply

Schreibe einen Kommentar

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