Агрегированные данные в канале ThingSpeak

Этот пример показывает как агрегированным данным к более низкому разрешению времени в канале ThingSpeak™, чтобы удалить неисправность. Неисправность в данных может быть вызвана из-за нескольких факторов, таких как управляемое событиями обнаружение, неправильное функционирование датчиков или сетевые задержки.

Чтение данных

Канал ThingSpeak 22641 содержит поток и данные о погоде, измеренные однажды минута в Отсеке Ockway, Кейп-Коде. Поле 2 канала содержит данные о температуре воздуха. Считайте данные о температуре воздуха в течение прошлых 3 часов до канала 22 641 использование функции thingSpeakRead.

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

Измените направленный и writeAPIKey, чтобы отправить данные в ваш канал

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

Смотрите также

| |