ラズベリーパイ本体が持っているCPU動作状態の情報を、Node-REDで取得しクラウドへ格納すると同時にグラフ表示するアプリケーションを作成してみましょう。環境構築編で構築したNode-REDを起動し、chromeブラウザで接続します。

ラズパイCPU状態ノード

まず、パレットから[Rpi CPU状態]ノードを、ワークスペース上にドラッグ&ドロップします。パレットの[iaCloud devices]カテゴリーの下の方にありますが、見つからない場合は[ノードを検索]とある検索ウインドウに「CPU」と入れてください。名前に文字列「CPU」を含むノードが表示されます。おそらく[Rpi CPU状態]ノードしかないはずです。このノードをワークスペース上にドラッグ&ドロップします。
以下の画像ではノードの名称が[ラズパイCPU状態]となっていますが、最新版では、[Rpi CPU状態]に変わっています。

このノードは、ラズパイのCPUの持つ情報

  • CPU温度
  • CPU使用率
  • 空きメモリの容量

を取得し、ia-cloudオブジェクトとして出力するノードです。ワークスペースに配置したノード本体をダブルクリックすると、ノードのプロパティの設定ウインドウが開きます。このノードには、[オブジェクトの設定]と[データ項目の設定]の二つのタブの設定があり、それぞれ以下の設定項目があります。

  • オブジェクトの設定
    • 定期収集周期(このデータオブジェクトを収集する周期を秒単位で設定)
    • 非同期収集有り(このデータオブジェクトのデータに変化があった場合にそのデータを出力)
    • オブジェクトキー(このデータオブジェクトにつけるユニークな名称、以下の動画では、handsonuser0.raspi-cpuを使用)
    • オブジェクトの説明(このデータオブジェクトの任意の説明、省略できます。)
  • データ項目の設定
    • CPU温度
      • データ名称(デフォルトでCPU温度と設定されています。)
      • 単位(デフォルトで°Cと設定されています。)
    • CPU使用率
      • データ名称(デフォルトでCPU使用率と設定されています。)
      • 単位(デフォルトで%と設定されています。)
    • 空きメモリ
      • データ名称(デフォルトで空きメモリと設定されています。)
      • 単位(デフォルトでMBと設定されています。)

デフォルトの設定は変更しなくてもOKです。

以下の画像ではノードの名称が[ラズパイCPU状態]となっていますが、最新版では、[Rpi CPU状態]に変わっています。

また最下部に、[ノード名称]の項目があります。この[ノード名称]は、ワークスーペス上でノードに表示される名称で、空欄のままだとパレットにある時と同じ名称が使われます。同一のノードを複数使用する場合など、ワークスペース上で区別しやすくするため任意の名前を設定できます。

必須項目が設定されていないと、ノードには赤い三角マークがつきます。設定は終わったら、右上の[デプロイ]ボタンを押してデプロイ(編集した結果をラズパイ上に展開し、実行を開始すること)します。編集したがデプロイされていないノードには、青い丸印がつきます。

フローがデプロイされ動作を開始すると、設定した周期でタイムスタンプの打たれたia-cloudオブジェクトが、出力メッセージとして出力されます。

以下は、[ラズパイCPU状態]ノードの設定時の動画です。
以下の動画ではノードの名称が[ラズパイCPU状態]となっていますが、最新版では、[Rpi CPU状態]に変わっています。

この動画では、[ラズパイCPU状態]の出力を、共通カテゴリーにある[debug]ノードに繋いで、サイドバーにあるデバッグメッセージ欄で確認しています。このデバッグメッセージは、フローの動作を確認するためによく使用します。この単純なフローで、一定周期(動画の設定では10秒)でラズパイのCPU状態を、デバッグメッセージとして表示できました。

ia-cloud接続ノード

次にこのデータを、ia-cloudサービス(CCSと呼びます。)へ送りクラウドのデータベースに格納するフローを作成しましょう。データのia-cloud格納には、ia-cloudのURLとユーザID、パスワードが必要です。ia-cloudのハンズオンワークショップ等に参加された方には、1年間の無償体験ユーザのIDが発行されています。IDを持っていない方で無償体験利用を希望の方は、ia-cloudまで連絡ください。

パレット上の[ia-cloud services]カテゴリーから[ia-cloud接続]ノードをワークスペース上にドラッグ&ドロップします。このノードは入力されたia-cloudリクエストを設定されたia-cloudサービス(CCS)に配信する機能のノードです。先に設定した[ラズパイCPU状態]ノードは、出力メッセージとしてia-cloudオブジェクトをia-cloudサービスに格納するリクエストを出力するので、この出力を直接[ia-cloud接続]ノードの入力に接続することで、ia-cloudサービスへのデータオブジェクトの格納ができます。

[ia-cloud接続]のノードの設定では、ia-cloudサービス(CCS)の接続先URL、接続に使用するIDとパスワードを保持する設定ノード[CCS接続設定]を使用します。この設定ノードは一度作成すると、フロー上のどこからでも指定して利用することができます。また、ia-cloudサービス(CCS)にia-cloudオブジェクトを格納するデータ元を明示するため、[データソースのユニークキー]プロパティを設定する必要があります。任意の名称を指定できますが、ia-cloudサービス(CCS)の接続先URL内でユニークでなければなりません。

設定を終了後、[デプロイ]ボタンを押すと、[ia-cloud接続]ノードはia-cloudサービスへ接続要求を送り接続が確立すると、ノードのしたのステータス表示が[接続済み]に変わります。また、[ラズパイCPU状態]ノードからia-cloudオブジェクトが入力されるたびに、ia-cloudサービスへデータの格納を行います。この時、ノード下のステータス表示は、[要求中…]から[要求完了]を表示します。[ia-cloud接続]ノードの出力メッセージには、ia-cloudサービス(CCS)レスポンスメッセージが出力されるため、[debug]ノードを接続するとこれが確認できます。

CPU温度のグラフ表示

次に、ラズベリーパイのCPUの温度のグラフを書いてみましょう。Node-REDには様々なグラフやメータ表示などを描画するダッシュボードノードがあります。詳細はダッシュボードノードの入門編で学びますが、ここでは簡単に試してみましょう。ダッシュボードにia-cloudオブジェクトを繋ぐには、iaCloud functionカテゴリーにある[データ抽出]ノードを使います。このノードは、ia-cloudオブジェクトから指定のオブジェクトキーとデータ名称のデータを抽出し、ダッシュボードノードで使用するラベルをつけて出力します。以下の動画は、CPU温度を[データ抽出]ノードで抽出し、ダッシュボードノードの[chart]に繋いでグラフを表示したものです。[ラズパイCPU状態]ノードはは15秒ごとにCPU状態データをia-cloudオブジェクトとして出力していますので、このia-cloudオブジェクトから、「CPU温度」データを抽出して[chart]ノードへ渡します。

ダッシュボードを表示するには、サイドバーのタブを「dashboard」に切り替え、ダッシュボード切り替えボタンをクリックします。そうするとChromeブラウザの新しいタブが生成され、そこにダッシュボードが表されます。

ダッシュボードには、タブ・グループなどのレイアウトを管理する機能がありますが、詳細は後ほど。動画の後半のグラフは、早送りで作成しています。実際には15秒おきにグラフ線が伸びていきます。