Этот пример показывает как агрегированным данным к более низкому разрешению времени в канале 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
Измените направленный и writeAPIKey, чтобы отправить данные в ваш канал
channelID=17504; writeAPIKey='23ZLGOBBU9TWHG2H'; thingSpeakWrite(channelID,data,'writeKey',writeAPIKey);