このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
データを解析する
この例では、Arduino® デバイスから気象関連データを収集する ThingSpeakチャネル12397 から温度と湿度のデータを読み取る方法を示します。計算された露点データとともに、温度と湿度のデータを露点測定チャネルに書き込みます。次に、ThingSpeak™ を使用して、結果を自分のチャネルで可視化します。
前提条件の手順
この例では、次の手順をすでに実行している必要があります。
MathWorks® アカウントまたは ThingSpeak アカウントに サインイン するか、新しい MathWorks アカウント を作成してください。
露点測定チャネルとして チャネルを作成する を使用します。
チャネルからデータを読み取る
パブリック WeatherStationチャネルのフィールド 3 と 4 から湿度と温度を読み取り、そのデータを露点測定チャネルのフィールド 2 と 1 にそれぞれ書き込みます。露点が計算され、フィールド 3 に書き込まれます。
MATLAB® Analysis アプリを使用して、データを読み取り、計算し、書き込みます。
Apps タブに移動し、MATLAB Analysis をクリックします。
Newをクリックします。Custom テンプレートを選択し、Create をクリックします。
[名前] フィールドに
Dew Point Calculation
と入力します。MATLAB コード フィールドに次のコード行を入力します。
公開気象ステーションチャネルID と露点測定チャネルID を変数に保存します。
readChId = 12397; writeChId = ZZZZZ; % Replace with your channel number
書き込み API キーを変数に保存します。
writeKey = 'XXXXXXXXXXXXXXXX'; % Replace with your channel write key
チャネル ID と書き込み API キーを見つけるには、[My Channels] タブの [Channel Info] を参照してください。
パブリック Weather Stationチャネルから、タイムスタンプ付きの最新の 20 ポイントの温度データと湿度データを変数に読み取ります。
[temp,time] = thingSpeakRead(readChId,'Fields',4,'NumPoints',20); humidity = thingSpeakRead(readChId,'Fields',3,'NumPoints',20);
露点を計算する
温度と湿度の測定値を使用して露点を計算するには、次の MATLAB コードを追加します。
温度を華氏から摂氏に変換します。
tempC = (5/9)*(temp-32);
水蒸気 (
b
) と気圧 (c
) の定数を指定します。b = 17.62; c = 243.5;
露点を摂氏で計算します。
gamma = log(humidity/100) + b*tempC./(c+tempC); dewPoint = c*gamma./(b-gamma);
結果を華氏に戻します。
dewPointF = (dewPoint*1.8) + 32;
露点測定チャネルにデータを書き込みます。このコードは、利用可能なすべてのデータを 1 回の操作で投稿し、正しいタイムスタンプを含めます。
thingSpeakWrite(writeChId,[temp,humidity,dewPointF],'Fields',[1,2,3],... 'TimeStamps',time,'Writekey',writeKey);
完全なコードブロックは次のようになります。
コードを検証して処理するには、「Save and Run」をクリックします。
コード内のエラーは Output フィールドに示されます。
コードが正常に実行されたかどうかを確認するには、Channel Info パネルの Dew Point Measurementチャネルリンクをクリックします。
露点測定チャネルに、各フィールドのチャネルデータを含むグラフが表示されるようになりました。
スケジュールコード
TimeControl アプリを使用して、MATLAB Analysis コードで露点計算をスケジュールします。気象観測所から 30 分ごとにデータを読み取り、露点を計算するようにスケジュールします。
MATLAB 解析露点計算ページの一番下までスクロールします。TimeControl をクリックすると、Actions フィールドで MATLAB Analysis が事前選択され、Code to execute として露点計算が選択された状態でアプリが開きます。
新しいTimeControlに
Dew Point TC
という名前を付けますFrequency フィールドで Recurring を選択します。
Recurrence フィールドで Minute を選択します。
Every — minutes フィールドで 30 を選択します。
Start Time をデフォルト値のままにします。
Action が
MATLAB Analysis
であり、Code to execute がDew Point Calculation
であることを確認します。Save TimeControlをクリック
メモ
チャネルにデータを書き込むためのTimeControlを設定すると、ThingSpeak アカウントで利用可能なメッセージが使用されます。このアクションにより、最終的に利用可能なメッセージが使い果たされ、チャネルフィード更新が拒否される可能性があります。チャネルに書き込むデータが時間領域で重複しないようにしてください。重複すると、メッセージが不必要に使用されることになります。
露点測定を可視化する
MATLAB Visualizations アプリを使用して、露点測定チャネルから測定された露点データ、温度、湿度を可視化します。この例では、plot
(MATLAB) 関数を使用して、3 つのデータ ポイントすべてを 1 つの可視化で表示します。
Apps 、 MATLAB Visualizations に移動し、New をクリックして可視化を作成します。
あるいは、露点測定チャネルビューで MATLAB Visualization をクリックすることもできます。
Custom テンプレートを選択し、Create をクリックします。
可視化に「Dew Point」という名前を付けます。
露点測定チャネルID と読み取り API キーの変数を作成します。コード内の値をチャネルID と Read API キーに置き換えます。
readChId = ZZZZZ; readKey = 'XXXXXXXXXXXXXXXX';
チャネルフィールドからデータを読み取り、次のデータの最後の 100 ポイントを取得します。
温度: フィールド1から
湿度: フィールド2から
露点: フィールド3から
[dewPointData,timeStamps] = thingSpeakRead(readChId,'fields',[1,2,3],... 'NumPoints',100,'ReadKey',readKey);
x ラベル、y ラベル、タイトル、凡例を使用してデータをプロットします。
plot(timeStamps,dewPointData); xlabel('TimeStamps'); ylabel('Measured Values'); title('Dew Point Measurement'); legend({'Temperature','Humidity','Dew Point'}); grid on;
コードは次のようになります。
Save and Runをクリックします。MATLAB コードにエラーがない場合、プロット出力は次に示すプロットのようになります。
次のステップ
データに基づいて行動する の例では、計算された露点を追跡して、指定されたレベルを超えたときに自動電子メールをトリガーできます。
参考
thingSpeakRead
| thingSpeakWrite
| plot
(MATLAB) | xlabel
(MATLAB) | ylabel
(MATLAB) | title
(MATLAB) | legend
(MATLAB) | grid
(MATLAB)