Main Content

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

データの解析

この例では、Arduino® デバイスから気象関連データを収集する ThingSpeak channel 12397 から温度と湿度のデータを読み取る方法を示します。温度と湿度のデータを、計算した露点のデータと共に Dew Point Measurement チャネルに書き込みます。次に、ThingSpeak™ を使用して、チャネル上の結果を視覚化します。

前提条件の手順

この例では、以下の手順が実行済みでなければなりません。

チャネルからデータを読み取る

公開されている WeatherStation チャネルの Field 3 および 4 から湿度と温度を読み取り、そのデータを Dew Point Measurement チャネルの Field 2 および 1 にそれぞれ書き込みます。露点は計算されて Field 3 に書き込まれます。

MATLAB® Analysis を使用して、データの読み取り、計算、書き込みを行います。

  1. Apps」タブに移動し、「MATLAB Analysis」をクリックします。

  2. New」をクリックします。Custom テンプレートを選択し、Create をクリックします。

  3. Name」フィールドに「Dew Point Calculation」と入力します。

  4. 「MATLAB コード」フィールドに、次のコード行を入力します。

    1. 公開されている Weather Station チャネルの ID および Dew Point Measurement チャネルの ID を変数に保存します。

      readChId = 12397;
      writeChId = 671;  % replace with your channel number
    2. Write API Key を変数に保存します。

      writeKey = 'F6CSCVKX42WFZN9Y'; % Replace with your channel write key

      チャネルID と書き込み API キーを見つけるには、My Channels タブのチャネル情報を参照してください。

    3. 直近の 20 点の温度データを、タイムスタンプおよび湿度のデータとともに、公開されている Weather Station チャネルから変数へと読み取ります。

      [temp,time] = thingSpeakRead(readChId,'Fields',4,'NumPoints',20);
      humidity = thingSpeakRead(readChId,'Fields',3,'NumPoints',20);

露点の計算

次の MATLAB コードを追加して、温度と湿度の測定値を使用して露点を計算します。

  1. 温度を華氏から摂氏に変換します。

    tempC = (5/9)*(temp-32); 

  2. 水蒸気 (b) と気圧 (c) の定数を指定します。

    b = 17.62;
    c = 243.5;

  3. 摂氏で露点を計算します。

    gamma = log(humidity/100) + b*tempC./(c+tempC);
    dewPoint = c*gamma./(b-gamma)

  4. 結果を華氏に変換し直します。

    dewPointF = (dewPoint*1.8) + 32;

  5. データを Dew Point Measurement チャネルに書き込みます。このコードは 1 回の操作ですべての使用可能データをポストし、正しいタイムスタンプを含めます。

    thingSpeakWrite(writeChId,[temp,humidity,dewPointF],'Fields',[1,2,3],...
    'TimeStamps',time,'Writekey',writeKey);

    コードのブロック全体は次のようになります。

     完全なコードの確認

  6. Save and Run」をクリックしてコードを検証し、処理します。

    コード内のエラーはすべて、Output フィールドに示されます。

  7. コードが正常に実行されたかどうかを確認するには、Channel Info パネルの Dew Point Measurementチャネルリンクをクリックします。

これで Dew Point Measurement チャネルに、各フィールドからのチャネル データによるチャートが表示されます。

コードのスケジュール

TimeControl アプリを使用して、MATLAB 分析コードで露点計算をスケジュールします。30 分ごとに気象計からデータを読み取り、露点を計算するようにスケジュールします。

  1. MATLAB 分析露点計算ページの一番下までスクロールします。[TimeControl] をクリックすると、[Actions] フィールドでMATLAB Analysisが事前に選択され、[露点計算] が Code to execute としてアプリが開きます。

  2. 新しいTimeControlに Dew Point TC という名前を付けます。

  3. Frequency」フィールドで「Recurring」を選択します。

  4. Recurrence」フィールドで「Minute」を選択します。

  5. Every — minutes」フィールドで「30」を選択します。

  6. Start Time はデフォルト値のままにしておきます。

  7. ActionMATLAB Analysis であり、Code to execute Dew Point Calculation であることを確認します。

  8. Save TimeControl」をクリックします

メモ

チャネルにデータを書き込むようにTimeControlを設定すると、ThingSpeak アカウントで利用可能なメッセージが使用されます。このアクションは利用可能なメッセージを最終的に使い切ってしまう可能性があり、その結果、チャネルフィードの更新が拒否されることになります。チャネルに書き込むデータが、時間領域内でオーバーラップしていないことを確認してください。メッセージが不必要に使用される原因となります。

Dew Point Measurement の可視化

MATLAB Visualizations アプリを使用して、露点測定チャネルから測定された露点データ、温度、および湿度を視覚化します。この例では、plot (MATLAB) 関数を使用して、3 つのデータ ポイントすべてを 1 つの視覚化で表示します。

AppsMATLAB Visualizations に移動し、New をクリックしてビジュアライゼーションを作成します。

あるいは、露点測定チャネルビューで MATLAB Visualization をクリックすることもできます。

  1. Custom テンプレートを選択し、Create をクリックします。

  2. [Name] に可視化の名前 "Dew Point" を入力します。

  3. Dew Point Measurement チャネル ID と Read API Key のための変数を作成します。コード内の値を、チャネル ID と Read API キーに置き換えます。

    readChId = ZZZZ
    readKey = 'XXXXXXXXXXXXXXXX';

  4. チャネル フィールドからデータを読み取り、以下に対する最新 100 点のデータを取得します。

    • 温度: Field 1 から

    • 湿度: Field 2 から

    • 露点: Field 3 から

      [dewPointData,timeStamps] = thingSpeakRead(readChId,'fields',[1,2,3],...
          'NumPoints',100,'ReadKey',readKey);
  5. x ラベル、y ラベル、タイトルおよび凡例と共にデータをプロットします。

    plot(timeStamps,dewPointData);
    xlabel('TimeStamps');
    ylabel('Measured Values');
    title('Dew Point Measurement');
    legend({'Temperature','Humidity','Dew Point'});
    grid on;

    作成したコードは、次のコードのようになります。

     完全なコードの確認

  6. Save and Run」をクリックします。MATLAB コードにエラーがない場合、プロット出力は次のプロットのようになります。

次のステップ

データに基づいてアクションを実行 の例では、計算された露点を追跡して、指定したレベルを超えたときに自動ツイートをトリガーできます。

参考

| | (MATLAB) | (MATLAB) | (MATLAB) | (MATLAB) | (MATLAB) | (MATLAB)

関連するトピック