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 Code] フィールドに次の複数行のコードを入力します。

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

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

コードのスケジュール

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

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

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

  3. Frequency」を選択します。

  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 アプリを使用して、Dew Point Measurement チャネルの露点、温度、湿度の測定データを可視化します。この例では関数 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)

関連するトピック