いろいろあるグローブパイのセンサから、ボタンとLEDを使って、ボタンを押したらLEDが点灯するアプリを作ってみましょう。ボタンのon/off状態を生産装置の稼働信号に見立てて、ia-cloudのデータ収集サービスへ格納するアプリケーションも作ります。

[GrovePiボタン]ノードの使用

ラズベリーパイには、グローブパイボードが装着されているものとします。装着がまだの場合は、「グローブパイのラズパイへの装着」のページを参照し、正しく装着してください。グローブパイボードのコネクタにボタンとLEDを装着します。以下の写真は、

  • ボタンをD3
  • LEDをD7

のコネクタに接続した様子です。デジタル入出力コネクタ(Dn n: 2〜8)のどこに接続しても構いません。上記の接続は、それぞれのiaCloud devices ノードのデフォルト設定で使用するコネクタです。(ボタンやLEDの形状や色など、購入時のバージョンなどによって変わることがあります。)

まずは、ボタンノードを使ってみましょう。iaCloud devices カテゴリー内のある、[GrovePiボタン]を探しワークスペースにドラッグ&ドロップします。配置した[GrovePiボタン]をダブルクリックしてプロパティ編集ウインドウを開いてください。プロパティ編集ウインドウには、

  • グローブパイの設定
  • ia-cloudオブジェクトの設定タブ
    • オブジェクトの編集
    • データ項目の編集

があります。

グローブパイの設定では、グローブパイを制御するNode-REDの設定ノードの作成(選択)とボタンを接続するグローブパイの入力コネクタの選択がありますので、以下の動画を参考にして設定ください。グローブパイを制御するNode-REDの設定ノードは、複数存在するとエラーとなることがあります。一度どこかで作成したらその後全てのグローブパイセンサノードで同一のものを使うようにしてください。デジタル入力コネクタには、ボタンを接続したデジタル入力コネクタを選択します。デフォルトではD3です。

オブジェクト設定タブでは、ia-cloudオブジェクトのプロパティを設定します。オブジェクト設定は、

  • 定期収集の実行周期(一定時間毎にボタンの状態を出力する周期。)
  • 非同期収集の有無(on/off状態が変化した時にそれを出力をする設定)
  • オブジェクトキー(出力するia-cloudオブジェクトにつける固有のキー)
  • オブジェクトの説明(このオブジェクトの説明)

を設定・入力します。オブジェクトキーは、データ項目の設定にあるデータ名称と一緒に、クラウド上でデータの識別に使われるキー文字列です。任意の文字列が設定できますが、「ia-cloudのデータ構造について」のページを参考に設定してください。

データ項目の設定タブでは、ボタンのon/offデータを出力する際のデータ名称とその形式を設定します。

  • データ名称(同じia-cloudオブジェクト内に複数のデータがある場合、それを識別する名前)
  • 出力形式
    • 設備稼働情報(on変化時:”start”、off変化時:”stop”、on時:”on”、off時:”off”)
    • アラーム&イベント(on変化時:”set”、off変化時:”reset”、on時:”on”、off時:”off”)
    • 文字列(on時:”on”、off時:”off”)
    • 論理(on時:true、off時:false)
    • 数値(on時:1、off時:0)

[GrovePiボタン]ノードの後ろに、[debug]ノードを接続し、ボタンを押すと出力形式に沿った出力を確認できます。出力形式などプロパティを変更した場合は、デプロイボタンを押して変更を反映させる必要があります。デプロイボタンはよく押し忘れます。注意してください。デバッグ出力は、折り畳まれています。▶︎クリック(▼にかわり)で内容が展開でき、出力の状態が確認できます。

プロパティ設定ウインドウの一番下の、「ノード名称」には、ワークスペース上で表示されるノードのラベル名称を設定します。自動でパレット上にある名前が表されますので空欄で構いませんが、同じ種類のノードが複数存在する場合には、それぞれに違う名前をつけておくとワークスペース上で区別ができます。

LEDを点灯させよう


[GrovePiボタン]の出力で、LEDを点灯させるアプリケーションを作成しましょう。[GrovePiボタン]ノードの出力はia-cloudオブジェクトですので直接[GrovePi LED]の入力メッセージに繋ぐことはできません。ia-cloudオブジェクトから個別のデータを抽出するために、iaCloud functionカテゴリーから、[抽出]ノードを使います。[抽出]ノードはia-cloudオブジェクトから特定のデータ名称を持つデータを抽出して、出力します。この出力を[GrovePi LED]に繋ぐとグローブパイのLEDを制御できます。

[抽出]ノードのプロパティは、入力メッセージから抽出するia-cloudオブジェクトのオブジェクトキーとデータ名称を指定します。オブジェクトキーを省略した場合は、入力された全てのオブジェクトを対象に、指定されたデータ名称のデータを抽出し、出力メッセージに出力します。
[GrovePi LED]ノードは、入力メッセージの「payload」の内容を評価し、

  • 文字列で、”off”、”reset”、”stop” のいずれかの場合
  • 論理値で false の場合
  • 数値で、0 の場合

にGrovePiの接続されたLEDを消灯し、それ以外の場合は点灯します。

下図は、[抽出]ノードと[GrovePi LED]ノードを接続した例で、[抽出]ノードの出力([GrovePi LED]の入力)メッセージを[debug]ノードで表示しています。グローブパイボードに接続されたボタンを押すと。LEDが点灯します。ボタンが押されたかどうかは、1秒間隔でチェックしているため、ボタンは長めに押す必要があります。

ia-cloudサービスへの格納

[ラズパイCPU状態]ノードのアプリ同様、GrovePiのボタンの押下情報を、ia-cloudのデータベースに格納することが簡単にできます。「ラズパイCPU状態データ取得」の章で使った[ia-cloud接続]ノードを使います。設定の仕方は「ラズパイCPU状態データ取得」の章を参照ください。

「接続先CCS」には[ラズパイCPU状態]ノードのクラウド格納で使った設定ノードを使用できます。その他のプロパティも[ラズパイCPU状態]ノードのクラウド格納の時の設定と同じで結構です。設定しデプロイすると、[ia-cloud接続]ノードのステータスが「接続済」に変わり、ボタンを操作をすると要求完了になればアプリケーション作成は完了です。同時に、[debug]ノードを繋いでいると、ia-cloudサービスからの応答メッセージが確認できます。「status: “ok”,」と共にデータ格納のためのサービスIDが送られてきています。