Main Content

このページは前リリースの情報です。該当の英語のページはこのリリースで削除されています。

ThingSpeak チャネルのデータの集約

この例では、ThingSpeak™ チャネルのデータを低い時間分解能で集約し、不規則性を除去する方法を説明します。データの不規則性は、イベント ドリブン検出、センサーの誤動作、ネットワーク レイテンシなど、いくつかの要因によって発生する可能性があります。

データの読み取り

ThingSpeak のチャネル 22641 には、ケープコッドのオックウェイ湾で 1 分ごとに測定された潮汐と天気のデータが含まれています。このチャネルの Field 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'); 

データの集約

データは 1 分ごとに測定されています。ただし、測定システムに関連するネットワーク レイテンシにより、実際のタイムスタンプの間隔は 1 分より大きかったり小さかったりします。さらに、ここで扱う用途には、1 分ごとに測定されるデータの頻度は高いものとなっています。1 時間ごとの時間分解能によるデータで十分です。関数 retime を使用して、1 時間ごとのデータを 1 つの値に集約できます。時間ごとの最大値を使用してデータを集約できます。

dataHourly = retime(data,'hourly','max');

ThingSpeak へのデータの送信

関数 thingSpeakWrite を使用して、ThingSpeak チャネルに集約したデータを送信します。

% Change the Channel ID and the '<write API key>' to send data to your channel
thingSpeakWrite(<channelID>,chirpData,'WriteKey','<write API key>');

参考

関数