シグナルウォッチャーノードの使い方

はじめに

ウフルも参画するIndustrial Automation Forum (IAF)ia-cloudプロジェクトでは、Node-REDを利用して工場のIoT化を支援しています。ia-cloudが提供するNode-REDノードのひとつに、因幡電機産業様のシグナルウォッチャーと連携するノードがあり、ウフルではこのノードの開発をお手伝いさせて頂きました。この記事では、enebular上でシグナルウォッチャーノードを使う方法について簡単に紹介します。

シグナルウォッチャーとは

シグナルウォッチャーは、工場などに設置された積層表示灯の状態をIoT化するための機器です。以前、enebular BlogでRaspberry Piや光センサを利用して、積層表示灯から工場の稼働状況を取得する方法を紹介しました(製造機器の稼働状態をクラウド上で可視化する)。
シグナルウォッチャーを利用すると、この記事で紹介した方法に比べ、多くの利点があります。

  • 積層表示灯に設置したシグナルウォッチャーの外部電源は不要です
    積層表示灯の状態の送信には、低消費電力で動作するEnOceanを利用しており、シグナルウォッチャーに搭載しているソーラーパネルからの給電にて電力を賄うことができます(CR一次電池も搭載しているためソーラーパネルから十分な給電ができない場合も長期間の運用が可能です)。
  • 積層表示灯の多様な点灯パターンに対応しています
    点灯/消灯だけでなく、高速点滅/低速点滅/瞬時点灯/瞬時消灯の検知も可能です。

上記の通り、シグナルウォッチャーは工場の設備のIoT化を行うのに有用な機器です。

シグナルウォッチャーノードの使い方

ハードウェアのセットアップ

積層表示灯の各ランプにシグナルウォッチャーのセンサは取り付けられているものとします。
以下に今回動作を確認した構成を図示します。

上記の左側の積層表示灯の上部に取り付けられている機器がシグナルウォッチャーです。
シグナルウォッチャーは、検知した積層表示灯の点灯状態をEnOcean通信で送信します。
送信されたデータを受信するデバイスには、EnOcean受信機を接続します。今回は以下のEnOcean受信機を利用しました。

  • USB型EnOcean受信機 USB400J (S3064-K400)

このEnOcean受信機をMacBook Proに接続し、MacBook Proでenebular editorを起動させました。

ia-cloudノードのインストール

シグナルウォッチャーノードは、@ia-cloud/node-red-contrib-ia-cloud-fdsパッケージに含まれて公開されています。

このノードは、クラウド側では動作しないノードであるため、enebularで利用するには、enebular editorをご利用ください。
以下にia-cloudノードのインストール方法を示します(enebularのユーザー登録やプロジェクトの作成、enebular editorのインストールは実施済みであるとします)。

  1. enebular editorを起動し、enebularにログインします
  2. フローの一覧が表示されますので、右上の+フローボタンからフローを追加します
  3. フローの一覧から上記で作成したフローの右のデスクトップアイコンをクリックして、デスクトップモードでフローエディターを起動します
  4. フローエディターの右上のハンバーガーメニューをクリックし、プルダウンからパレットの管理をクリックします
    image.png
  5. ユーザ設定ダイアログが表示されますので、ノードを追加タブをクリックし、検索欄に@ia-cloud/node-red-contrib-ia-cloud-fdsを入力します
    image.png
  6. 検索結果が表示されたら@ia-cloud/node-red-contrib-ia-cloud-fdsノードを追加ボタンを押すと確認ダイアログが表示されますので、追加ボタンを押すとインストールが開始します

インストールが完了すると、パレットにインストールしたパッケージに含まれるノードの一覧が追加されます。この中の、シグナルウォッチャーおよびシグナルウォッチャーA&Eノードがシグナルウォッチャーと連携するノードになります。
image.png

これらのノードは、以下に示す違いがあります。

  • シグナルウォッチャー
    シグナルウォッチャーが検知した積層表示灯の状態を取得するノードです(README)。
  • シグナルウォッチャーA&E
    シグナルウォッチャーが検知した積層表示灯の状態が、特定の条件に合致したか否かを判定するノードです(README)。

フローの作成

シグナルウォッチャーノードを利用してフローを作成する方法を示します。
作成するフローは以下のシンプルなものとします。

  • 積層表示灯は3つのランプが搭載され、シグナルウォッチャーでは各ランプにセンサを取り付けていることとします
  • 積層表示灯の各ランプの状態に変化があった場合に、Node-REDでその状態を取得します
  • 状態の変化は、Debugノードで出力します

シグナルウォッチャーノードおよびデバッグノードの配置

左のパレットからキャンバスに、シグナルウォッチャーdebugノードをドラッグ&ドロップし、線で接続します。

シグナルウォッチャーノードの通信ノード設定

キャンバスに配置したシグナルウォッチャーノードをダブルクリックし、プロパティ設定を開きます。

通信ノードの右の鉛筆アイコンをクリックします。
EnOcean-comノードのプロパティ設定画面が開くので、シリアルポートの右の虫眼鏡アイコンをクリックし、EnOcean受信機が接続されたシリアルポートを選択します。右上の追加ボタンをクリックすると、EnOcean-comの設定が保存されます。

image.png

シグナルウォッチャーノードのオブジェクト設定

オブジェクト設定タブ内の設定を行います。

image.png

今回は、ランプの状態が変化したタイミングで通知を受信したいため、以下のように設定を行います。

  • 定期収集周期: 空欄(定期収集を行わない)
  • 非同期収集有り: ✔

EnOcean IDには、シグナルウォッチャーの本体に記載された8桁の文字列を入力します(以下の写真のID:に続く文字列がEnOcean IDです)。

image.png

objectキーには、取得したデータに付与するユニークなキーを設定します。ここでは、signalwatcherとしました。

シグナルウォッチャーノードのデータ設定

データ設定タブ内への設定を行います。データ設定をクリックし、タブを切り替えてください。

image.png

データ構造型は、デフォルトのiaCloudDataのままにします。
次に取得したいデータ項目を追加していきます。
今回は、3つのランプに取り付けたセンサをCH1〜CH3とし、これらのセンサが発した信号をEnOcean受信機が受信したらシグナルウォッチャーが出力を行うようにします。上記スクリーンショットを参考に設定を行ってください。
設定が終わったら、右上の完了ボタンをクリックし、設定を保存します。

フローの保存と実行

最後に、右上のSaveボタンを押すと、編集したフローが保存および実行されます。

フローの動作確認

積層表示灯のランプの点灯状態を変更するとdebugノードで以下のようなJSONが出力されることが確認できるかと思います(debugノードでは、msg.payloadを表示するように設定しているものとします)。

[
  {
    "dataName": "CH1",
    "dataValue": "on"
  },
  {
    "dataName": "CH2",
    "dataValue": "off"
  },
  {
    "dataName": "CH3",
    "dataValue": "off"
  }
]

上記のJSONは、CH1が点灯、CH2とCH3が消灯状態であることを表しています。

おわりに

ia-cloudのノードとしてリリースされたシグナルウォッチャーノードをenebularで利用する方法を紹介しました。
enebular editorを利用することで、シグナルウォッチャーの実機でランプの点灯状態を変更しながら開発を行うことができます。また、開発したフローはenebularで管理されますので、他のメンバーと共同で開発したり、工場内に設置された複数のデバイスに展開したりする際にも便利です。
工場のIoT化の推進のために、この記事が参考になりましたらうれしいです。