Main Content

本页采用了机器翻译。点击此处可查看英文原文。

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);

另请参阅

(MATLAB) | (MATLAB) | (MATLAB)