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
thingSpeakRead
(MATLAB) | thingSpeakWrite
(MATLAB) | retime
(MATLAB)