ThingSpeak 通道中的聚合数据
此示例展示了如何在 ThingSpeak™通道中将数据聚合到较低的时间分辨率以消除不规则性。数据不规则可能是由多种因素造成的,例如事件驱动的传感、传感器故障或网络延迟。
读取数据
ThingSpeak通道22641 包含在科德角奥克威湾每分钟测量一次的潮汐和天气数据。通道的字段 2 包含气温数据。使用 thingSpeakRead
函数从通道22641 读取过去 3 小时的气温数据。
datetimeStop = dateshift(datetime('now'),'start','hour'); datetimeStart = dateshift(datetime('now'),'start','hour') - hours(3); data = thingSpeakRead(22641,'DateRange',[datetimeStart,datetimeStop],... 'Fields',2,'outputFormat','timetable');
汇总数据
每分钟测量一次数据。然而,由于与测量系统相关的网络延迟,实际时间戳的间隔可能大于或小于一分钟。此外,对于感兴趣的应用,每分钟测量数据的频率很高。每小时分辨率的数据就足够了。您可以使用 retime
函数将每小时的数据聚合为单个值。您可以使用每小时的最大值来聚合数据。使用 head
预览数据的前四个值。
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
将数据发送到 ThingSpeak
更改channelID和writeAPIKey以将数据发送到您的通道
channelID=17504; writeAPIKey='23ZLGOBBU9TWHG2H'; thingSpeakWrite(channelID,data,'writeKey',writeAPIKey);
另请参阅
thingSpeakRead
(MATLAB) | thingSpeakWrite
(MATLAB) | retime
(MATLAB)