Main Content

Diese Seite wurde mithilfe maschineller Übersetzung übersetzt. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

Aggregieren Sie Daten im ThingSpeak -Kanal

Dieses Beispiel zeigt, wie Daten in einem ThingSpeak™ -Kanal mit einer niedrigeren Zeitauflösung aggregiert werden, um Unregelmäßigkeiten zu beseitigen. Unregelmäßigkeiten in den Daten können durch verschiedene Faktoren wie ereignisgesteuerte Erfassung, Fehlfunktionen von Sensoren oder Netzwerklatenzen verursacht werden.

Daten lesen

ThingSpeak Kanal 22641 enthält Gezeiten- und Wetterdaten, die einmal pro Minute in Ockway Bay, Cape Cod, gemessen werden. Feld 2 des Kanals enthält Lufttemperaturdaten. Lesen Sie die Lufttemperaturdaten der letzten 3 Stunden von Kanal 22641 mit der Funktion thingSpeakRead ab.

datetimeStop = dateshift(datetime('now'),'start','hour');
datetimeStart = dateshift(datetime('now'),'start','hour') - hours(3);

data = thingSpeakRead(22641,'DateRange',[datetimeStart,datetimeStop],...
    'Fields',2,'outputFormat','timetable');

Aggregieren Sie die Daten

Die Daten werden einmal pro Minute gemessen. Aufgrund der mit dem Messsystem verbundenen Netzwerklatenz können die tatsächlichen Zeitstempel jedoch mehr als oder weniger als eine Minute voneinander entfernt sein. Darüber hinaus ist für die interessierende Anwendung die Häufigkeit der jede Minute gemessenen Daten hoch. Daten mit einer stündlichen Zeitauflösung sind ausreichend. Mit der Funktion retime können Sie die Daten für jede Stunde zu einem einzigen Wert aggregieren. Sie können den Maximalwert für jede Stunde verwenden, um die Daten zu aggregieren. Zeigen Sie eine Vorschau der ersten vier Werte der Daten mit head an.

dataHourly = retime(data,'hourly','max');
head(dataHourly,4)
ans =

  3×1 timetable

         Timestamps         AirTemperatureC
    ____________________    _______________

    03-Jan-2019 14:00:00          7.5      
    03-Jan-2019 15:00:00          6.9      
    03-Jan-2019 16:00:00          6.4      

Daten an ThingSpeak senden

Ändern Sie die Kanal-ID und den writeAPIKey, um Daten an Ihren Kanal zu senden

channelID=17504;
writeAPIKey='23ZLGOBBU9TWHG2H';
thingSpeakWrite(channelID,data,'writeKey',writeAPIKey);

Siehe auch

(MATLAB) | (MATLAB) | (MATLAB)