このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
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);
参考
thingSpeakRead
(MATLAB) | thingSpeakWrite
(MATLAB) | retime
(MATLAB)