Main Content

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

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

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

データの読み取り

ThingSpeakチャネル22641 には、ケープコッドのオックウェイ ベイで 1 分に 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 関数を使用すると、時間ごとのデータを単一の値に集計できます。時間ごとの最大値を使用してデータを集約できます。head を使用して、データの最初の 4 つの値をプレビューします。

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)