このページは機械翻訳を使用して翻訳されました。元の英語を参照するには、ここをクリックします。
データの解析
この例では、 Arduino® ThingSpeak channel 12397から温度と湿度のデータを読み取る方法を示します。温度と湿度のデータを、計算した露点のデータと共に Dew Point Measurement チャネルに書き込みます。次に、ThingSpeak™ を使用して、チャネルの結果を可視化します。
前提条件の手順
この例では、以下の手順が実行済みでなければなりません。
Sign In をMathWorks®アカウントまたはThingSpeakアカウントに追加するか、新しいMathWorks accountを作成します。
Dew Point Measurement チャネルとしてチャネルの作成を行う。
チャネルからデータを読み取る
公開されている WeatherStation チャネルの Field 3 および 4 から湿度と温度を読み取り、そのデータを Dew Point Measurement チャネルの Field 2 および 1 にそれぞれ書き込みます。露点は計算されて Field 3 に書き込まれます。
MATLAB® Analysis を使用して、データの読み取り、計算、および書き込みを行います。
「Apps」タブに移動し、 「MATLAB Analysis」をクリックします。
New をクリックします。Customテンプレートを選択し、 Createをクリックします。
「Name」フィールドに、 「
Dew Point Calculation
」と入力します。[MATLAB Code] フィールドに次の複数行のコードを入力します。
公開されている Weather Station チャネルの ID および Dew Point Measurement チャネルの ID を変数に保存します。
readChId = 12397; writeChId = 671; % replace with your channel number
Write API Key を変数に保存します。
writeKey = 'F6CSCVKX42WFZN9Y'; % Replace with your channel write key
チャネルID と書き込み API キーを見つけるには、 My Channelsタブのチャネル情報を参照してください。
直近の 20 点の温度データを、タイムスタンプおよび湿度のデータとともに、公開されている Weather Station チャネルから変数へと読み取ります。
[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;
データを Dew Point Measurement チャネルに書き込みます。このコードは 1 回の操作ですべての使用可能データをポストし、正しいタイムスタンプを含めます。
thingSpeakWrite(writeChId,[temp,humidity,dewPointF],'Fields',[1,2,3],... 'TimeStamps',time,'Writekey',writeKey);
コードのブロック全体は次のようになります。
「Save and Run」をクリックしてコードを検証し、処理します。
コード内のエラーはすべて、 Outputフィールドに示されます。
コードが正常に実行されたかどうかを確認するには、 Dew Point Measurement Channel Infoチャネルリンクをクリックします。
これで Dew Point Measurement チャネルに、各フィールドからのチャネル データによるチャートが表示されます。
コードのスケジュール
TimeControlアプリを使用して、 MATLAB分析コードで露点計算をスケジュールします。30 分ごとに気象計からデータを読み取り、露点を計算するようにスケジュールします。
MATLAB Analysis の [Dew Point Calculation] ページで一番下までスクロールします。[TimeControl]をクリックすると、[Actions]フィールドでMATLAB Analysisが事前に選択され、[露点計算] がCode to executeとしてアプリが開きます。
新しい TimeControl を
Dew Point TC
という名前にします。「 Frequency」を選択します。
「 Recurrence Minute」を選択します。
「 Every — minutes」フィールドで「 30」を選択します。
Start Time はデフォルト値のままにしておきます。
Action が
MATLAB Analysis
であり、 Code to execute がDew Point Calculation
であることを確認します。「Save TimeControl」をクリックします
メモ
チャネルにデータを書き込むよう TimeControl を設定すると、ThingSpeak アカウントにある利用可能なメッセージが使用されます。このアクションは利用可能なメッセージを最終的に使い切ってしまう可能性があり、その結果、チャネルフィードの更新が拒否されることになります。チャネルに書き込むデータが、時間領域内でオーバーラップしていないことを確認してください。メッセージが不必要に使用される原因となります。
Dew Point Measurement の可視化
MATLAB Visualizations アプリを使用して、Dew Point Measurement チャネルの露点、温度、湿度の測定データを可視化します。この例では関数 plot
(MATLAB) を使用して、3 つのデータ点すべてを 1 つの可視化に表示します。
Apps 、 MATLAB Visualizationsに移動し、 Newをクリックしてビジュアライゼーションを作成します。
あるいは、露点測定チャネルビューでMATLAB Visualizationをクリックすることもできます。
Customテンプレートを選択し、 Createをクリックします。
[Name] に可視化の名前 "Dew Point" を入力します。
Dew Point Measurement チャネル ID と Read API Key のための変数を作成します。コード内の値を、チャネル ID と Read API キーに置き換えます。
readChId = ZZZZ readKey = 'XXXXXXXXXXXXXXXX';
チャネル フィールドからデータを読み取り、以下に対する最新 100 点のデータを取得します。
温度: Field 1 から
湿度: Field 2 から
露点: Field 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)