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)