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 = 677;  % replace with your channel number
    2. Write API Key を変数に保存します。

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

      Channel ID と Write API Key を見つけるには、[My Channels] タブの [Channel Info] を参照します。

    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 Analysis コードの露点計算をスケジュールします。30 分ごとに気象計からデータを読み取り、露点を計算するようにスケジュールします。

  1. MATLAB Analysis の [Dew Point Calculation] ページで一番下までスクロールします。[TimeControl] をクリックするとアプリが開きます。ここで、[Actions] フィールドには [MATLAB Analysis] が、[Code to execute] には [Dew Point Calculation] が選択された状態になっています。

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

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

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

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

  6. [Start Time] を既定値のままにします。

  7. [Action][MATLAB Analysis][Code to execute][Dew Point Calculation] になっていることを確認します。

  8. [Save TimeControl] をクリックします。

メモ

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

Dew Point Measurement の可視化

MATLAB Visualizations アプリを使用して、Dew Point Measurement チャネルの露点、温度、湿度の測定データを可視化します。この例では関数 thingSpeakPlot を使用して、3 つのデータ点すべてを 1 つの可視化に表示します。

[Apps][MATLAB Visualizations] を開き、[New] をクリックして可視化を作成します。

あるいは、[Dew Point Measurement] チャネル ビューの [MATLAB Visualization] をクリックすることもできます。

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

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

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

    readChId = 677
    readKey = '36LPYCQ19U37ANLE'

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

    • 温度: Field 1 から

    • 湿度: Field 2 から

    • 露点: Field 3 から

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

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

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

     完全なコードの確認

  6. [Save and Run] をクリックします。MATLAB コードにエラーがなければ、プロットの出力は次に示すプロットのようになります。

次のステップ

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

参考

|

関連するトピック