開発を行う

4.1. Node-RED に接続する

3章Armadillo のセットアップ を完了している場合は Armadillo を起動すると、自動的に Node-RED コンテナが起動します。 Node-RED への接続には 「ネットワークに接続する」 で取得した IP アドレスを使用します。

パソコンの Web ブラウザから、http://<ipアドレス>:1880/ にアクセスしてください。

images/node-red/common-images/start.png

図4.1 初回起動時の Node-RED 画面


Node-RED には大きく3つの領域があります。

  • パレット

使用可能なコアノード、カスタムノードの一覧を表示します。

  • ワークスペース

Node-RED では一つのアプリケーションの流れをフローという単位で表します。 ワークスペース上にノードを繋げてフローを作成します。 パレットから必要なノードをワークスペースにドラッグ、ドロップで配置します。

  • サイドバー

選択したノードの情報や、デバッグメッセージを表示します。

images/node-red/common-images/start_guide.png

図4.2 Node-RED の画面領域


4.2. Node-RED コンテナのログを表示する

パソコンの Web ブラウザから、http://<ipアドレス>:1880/node-red.log にアクセスすると Node-RED コンテナのログが表示されます。

このログファイルは /var/app/rollback/volumes/node-red/log に保存されています。ログのサイズが 5MB を超えると新しいログファイルに移行します。 古いログファイルを表示したい場合は、http://<ipアドレス>:1880/node-red.log.1 にアクセスしてください。

4.3. Node-RED で利用可能なノードの一覧

3章Armadillo のセットアップ でインストールした Node-RED コンテナには Node-RED のコアノードの他にインストールされているカスタムノードがあります。 インストール済のカスタムノードは以下になります。

  • Dashboard ノード

Dashboard を表示するノードです。

  • exit ノード

Node-RED を終了するためのノードです。

  • GPIO in, GPIO out ノード

GPIO 入力、出力を行うノードです。

  • falling edge, rising edge, hysteresis ノード

GPIO 入力の立ち上がりエッジ、立ち下がりエッジ、もしくは両方の検出を行うノードです。

  • modbus ノード

RS485 を用いたModbus 通信用のノードです。以下のノードが使用可能です。ただし、modbus-flex-server ノードは使用不可となっています。 modbus-response, modbus-read, modbus-getter, modbus-flex-getter, modbus-write, modbus-flex-write, modbus-server, modbus-queue-info, modbus-flex-connector, modbus-io-config, modbus-response-filter, modbus-flex-sequencer ノード

4.4. フローを作成する

Node-RED では一つのアプリケーションの流れをフローという単位で表します。 各ノードを使用したフローの作成方法について紹介します。

4.4.1. LED を制御する

ここでは、LED を1秒間隔で点滅するフローを作成します。すべて Node-RED のコアノードを使用します。 Armadillo-IoT ゲートウェイ A6E の LED は以下がありますが、今回対象にするのはアプリケーション LED です。 アプリケーション LED の場所については 「インターフェースレイアウト」 をご確認ください。

アプリケーション LED は /sys/class/leds/app/brightness ファイルへ値を書き込むことによって、LEDの点灯/消灯を行うことができます。 0 を書き込むと消灯、0 以外の値 (1~255) を書き込むと点灯します。

表4.1 LED 信号配列

部品番号 名称(色) 説明

SYS

システムLED(緑)

電源(VCC_3.3V)の入力状態を表示、i.MX6ULLのUART2_CTS_Bピン(GPIO1_IO22)に接続

(Low: 消灯、High: 点灯)

APP

アプリケーションLED(緑)

アプリケーションの状態を表示、i.MX6ULLのUART2_RTS_Bピン(GPIO1_IO23)に接続

(Low: 消灯、High: 点灯)

WWAN

ワイヤレスWAN LED(緑)

LTE通信の状態を表示、i.MX6ULLのUART1_RX_DATAピン(GPIO1_IO17)に接続

(Low: 消灯、High: 点灯)


  1. パレットから [inject] ノードをワークスペースにドラッグ、ドロップします。
  2. [inject] ノードのプロパティを編集します。[inject] は2秒間隔で実行します。

    名前: LED Blink
    繰り返し: 指定した時間間隔
    時間間隔:2秒
    images/node-red/led_blink_inject_prop.png

    図4.3 [inject] ノードのプロパティ内容


  3. [trigger] ノードをドラッグ、ドロップします。
  4. [trigger] ノードのプロパティを編集します。 [trigger] は 1 を送信して1秒待機後、0 を送信します。これにより点滅動作を実現します。

    送信データ:1
    送信後の処理:指定した時間待機
    1秒
    再送信データ:0
    images/node-red/led_blink_trigger_prop.png

    図4.4 [trigger] ノードのプロパティ内容


  5. [LED Blink] ノードの右側にある端子をクリックし、[trigger] ノードの左側の端子を選択して放します。
  6. [write file] ノードをドラッグ、ドロップします。
  7. [write file] ノードのプロパティを編集します。 /sys/class/leds/app/brightness ファイルへ [trigger] からの送信データを書き込みます。

    ファイル名: /sys/class/leds/app/brightness
    動作: ファイルを上書き
    文字コード: デフォルト
    名前: APP LED
    images/node-red/led_blink_app_led_prop.png

    図4.5 [write file] ノードのプロパティ内容


  8. [trigger] ノードの右側にある端子をクリックし、[APP LED] ノードの左側の端子を選択して放します。
  9. [debug] ノードをドラッグ、ドロップします。
  10. [APP LED] ノードの右側にある端子をクリックし、[debug] ノードの左側の端子を選択して放します。

    images/node-red/led_blink_flow.png

    図4.6 LED を1秒間隔で点滅するフロー


  11. 画面右上の [デプロイ] を押します。アプリケーション LED が1秒毎に点滅を繰り返す動きをすれば成功です。

4.4.2. CPU の測定温度を取得する

ここでは、 Armadillo-IoT ゲートウェイ A6E の CPU の測定温度を1秒間隔で取得するフローを作成します。全て Node-RED のコアノードを使用します。 /sys/class/thermal/thermal_zone0/temp ファイルの値を読み出すことによって測定温度を取得することができます。 温度はミリ°C の単位で表示されるため、°C 単位への変換も行います。

  1. パレットから [inject] ノードをワークスペースにドラッグ、ドロップします。
  2. [inject] ノードのプロパティを編集します。[inject] は1秒間隔で実行します。

    繰り返し: 指定した時間間隔
    時間間隔: 1秒
    images/node-red/common-images/get_cpu_temp_inject_prop.png

    図4.7 [inject] ノードのプロパティ内容


  3. [read file] ノードをドラッグ、ドロップします。
  4. [read file] ノードのプロパティを編集します。 /sys/class/thermal/thermal_zone0/temp ファイルの値を読み出します。

    ファイル名: /sys/class/thermal/thermal_zone0/temp
    出力形式: 文字列
    文字コード: デフォルト
    名前: CPU temp
    images/node-red/common-images/get_cpu_temp_read_prop.png

    図4.8 [read file] ノードのプロパティ内容


  5. [Get CPU temp] ノードの右側にある端子をクリックし、[CPU temp] ノードの左側の端子を選択して放します。
  6. [function] ノードをドラッグ、ドロップします。
  7. [function] ノードのプロパティを編集します。 CPU の測定温度がミリ°C の単位のため、°C の単位へ変換します。 msg.payload で渡された値を 1000 で割り、msg.payload に戻します。

    名前: CPU temp calc
    コード:
    msg.payload = msg.payload / 1000;
    return msg;
    images/node-red/common-images/get_cpu_temp_calc_prop.png

    図4.9 [function] ノードのプロパティ内容


  8. [CPU temp] ノードの右側にある端子をクリックし、[CPU temp calc] ノードの左側の端子を選択して放します。
  9. [debug] ノードをドラッグ、ドロップします。
  10. [CPU temp calc] ノードの右側にある端子をクリックし、[debug] ノードの左側の端子を選択して放します。

    images/node-red/common-images/get_cpu_temp_flow.png

    図4.10 CPU の測定温度を1秒間隔で取得するフロー


  11. 画面右上の [デプロイ] を押します。デバッグメッセージに1秒毎に CPU の測定温度が表示されます。

4.4.3. 接点入力の入力レべルを取得する

ここでは、 接点入力の入力レベルを1秒間隔で取得するフローを作成します。 Node-RED のコアノードのほかに GPIO in ノードを使用します。 Armadillo-IoT ゲートウェイ A6E の CON6 にある接点入力を使用します。入力レベル 0 は LOW レベル、1 は HIGH レベルを表わします。 接点入力の場所については 「インターフェースレイアウト」 をご確認ください。

表4.2 CON6 信号配列(接点入力関連)

ピン番号ピン名 I/O 説明

3

COM

In

接点入力プラスコモン

4

DI1

In

接点入力1

5

DI2

In

接点入力2


DI ピンは GPIO として制御可能であり、対応する GPIO 番号を次に示します。

表4.3 接点入力に対応する CON6 ピン番号

ピン番号 ピン名 GPIOチップ GPIO番号

4

DI1

gpiochip5

0

5

DI2

gpiochip5

1


[ティップ]

接点入力に何も接続していない(開放状態)場合、取得できる入力レベルは 1 (HIGH レベル)となります。

接続に関する注意事項は以下です。

表4.4 CON6 接続可能な電線

規格

UL

IEC

電線範囲

26~18 AWG

0.12~0.9mm2

被覆剥き長さ

5~6mm

使用可能フェルール端子

型番 : MFL25-5BE

メーカー:ミスミ

推奨ねじ締めトルク

0.28Nm


[警告]

電線の先端に予備半田しないでください。正しい接続ができなくなります。

[警告]

端子台に電線を接続する際、端子台に過度な力を加えないでください。 端子台が破損する恐れがあります。

Armadillo-IoT ゲートウェイ A6E の接点入力インターフェースはフォトカプラで絶縁されています。 そのため、フォトカプラを駆動させるために5V以上の電圧を印加する必要があります。 外部電源を用いてフォトカプラを駆動させる場合の接続方法について以下に示します。

images/node-red/example_di_connect.png

図4.11 接点入力の接続方法(DI1 ピン)


例として DI1 ピンからの入力レベルを取得するフローを作成します。

  1. パレットから [inject] ノードをワークスペースにドラッグ、ドロップします。
  2. [inject] ノードのプロパティを編集します。[inject] は2秒間隔で実行します。

    名前: Get DI1
    繰り返し: 指定した時間間隔
    時間間隔:1秒
    images/node-red/get_di1_inject_prop.png

    図4.12 [inject] ノードのプロパティ内容


  3. [GPIO in] ノードをドラッグ、ドロップします。
  4. [GPIO in] ノードのプロパティを編集します。

    Device:gpiochip5
    Type:Digital pin
    Pin: 0
    Name:DI1
    images/node-red/get_di1_prop.png

    図4.13 [GPIO in] ノードのプロパティ内容


  5. [Get DI1] ノードの右側にある端子をクリックし、[DI1] ノードの左側の端子を選択して放します。
  6. [debug] ノードをドラッグ、ドロップします。
  7. [DI1] ノードの右側にある端子をクリックし、[debug] ノードの左側の端子を選択して放します。

    images/node-red/get_di1_flow.png

    図4.14 接点入力の入力レベルを1秒間隔で取得するフロー


  8. 画面右上の [デプロイ] を押します。デバッグメッセージに 1秒毎に DI1 ピンの入力レベルが表示されます。 何も接続してない場合であれば常に 1 が表示されます。

4.4.4. 接点出力の出力レベルを制御する

ここでは、 接点出力の出力レベルを1秒毎に HIGH レベルと LOW レベルを切り替えるフローを作成します。 Node-RED のコアノードのほかに GPIO out ノードを使用します。 Armadillo-IoT ゲートウェイ A6E の CON6 にある接点出力を使用します。 出力レベル 0 は LOW レベル、1 は HIGH レベルを表わします。 接点出力の場所については 「インターフェースレイアウト」 をご確認ください。

表4.5 CON6 信号配列(接点出力関連)

ピン番号ピン名 I/O 説明

6

DO1A

-

接点出力1A

7

DO1B

-

接点出力1B

8

DO2A

-

接点出力2A

9

DO2B

-

接点出力2B


DO ピンは GPIO として制御可能であり、対応する GPIO 番号を次に示します。

表4.6 接点出力に対応する CON6 ピン番号

ピン番号 ピン名 GPIOチップ GPIO番号

6

DO1A

gpiochip5

2

7

DO1B

gpiochip5

2

8

DO2A

gpiochip5

3

9

DO2B

gpiochip5

3


接続に関する注意事項は以下です。

表4.7 CON6 接続可能な電線

規格

UL

IEC

電線範囲

26~18 AWG

0.12~0.9mm2

被覆剥き長さ

5~6mm

使用可能フェルール端子

型番 : MFL25-5BE

メーカー:ミスミ

推奨ねじ締めトルク

0.28Nm


[警告]

電線の先端に予備半田しないでください。正しい接続ができなくなります。

[警告]

端子台に電線を接続する際、端子台に過度な力を加えないでください。 端子台が破損する恐れがあります。

Armadillo-IoT ゲートウェイ A6E の接点出力インターフェースはフォトカプラで絶縁されています。 そのため、フォトカプラを駆動させるために5V以上の電圧を印加する必要があります。 外部電源を用いてフォトカプラを駆動させる場合の接続方法について以下に示します。

[fig.development.example_do+_connect]

図4.15 接点出力の接続方法(制御対象がプラスコモンの場合の DO1 ピン)


images/node-red/example_do-_connect.png

図4.16 接点出力の接続方法(制御対象がマイナスコモンの場合の DO1 ピン)


例として DO1 ピンの出力レベルを制御するフローを作成します。

  1. パレットから [inject] ノードをワークスペースにドラッグ、ドロップします。
  2. [inject] ノードのプロパティを編集します。[inject] は2秒間隔で実行します。

    名前: Set DO1
    繰り返し: 指定した時間間隔
    時間間隔: 2秒
    images/node-red/set_do1_inject_prop.png

    図4.17 [inject] ノードのプロパティ内容


  3. [trigger] ノードをドラッグ、ドロップします。
  4. [trigger] ノードのプロパティを編集します。

    送信データ:1
    送信後の処理:指定した時間待機
    1秒
    再送信データ:0
    images/node-red/led_blink_trigger_prop.png

    図4.18 [trigger] ノードのプロパティ内容


  5. [GPIO out] ノードをドラッグ、ドロップします。
  6. [GPIO out] ノードのプロパティを編集します。

    Device:gpiochip5
    Type:Digital (0/1)
    Pin: 2
    Name:DO1
    images/node-red/set_do1_prop.png

    図4.19 [GPIO out] ノードのプロパティ内容


  7. [Set DO1] ノードの右側にある端子をクリックし、[DO1] ノードの左側の端子を選択して放します。
  8. [debug] ノードをドラッグ、ドロップします。
  9. [DO1] ノードの右側にある端子をクリックし、[debug] ノードの左側の端子を選択して放します。

    images/node-red/set_do1_flow.png

    図4.20 接点出力の出力レベルを1秒毎に HIGH レベルと LOW レベルを切り替えるフロー


  10. 画面右上の [デプロイ] を押します。1秒毎に DO1 ピンの出力レベルが HIGH レベルと LOW レベルで切り替わります。

4.4.5. 接点入力の入力レベルの立ち上がりエッジを検出する

ここでは、 接点入力の入力レベルの立ち上がりエッジを検出するフローを作成します。 Node-RED のコアノードのほかに rising edge ノードを使用します。 Armadillo-IoT ゲートウェイ A6E の CON6 にある接点入力と接点出力を使用します。 入力レベル、出力レベルの 0 は LOW レベル、1 は HIGH レベルを表わします。 接点入力、接点出力の場所については 「インターフェースレイアウト」 をご確認ください。

例として DI2 ピンの立ち上がりエッジを取得するフローを作成します。 また、立ち上がりエッジ検出のためにループバック接続を行います。 接続に関する注意事項は以下です。

表4.8 CON6 接続可能な電線

規格

UL

IEC

電線範囲

26~18 AWG

0.12~0.9mm2

被覆剥き長さ

5~6mm

使用可能フェルール端子

型番 : MFL25-5BE

メーカー:ミスミ

推奨ねじ締めトルク

0.28Nm


[警告]

電線の先端に予備半田しないでください。正しい接続ができなくなります。

[警告]

端子台に電線を接続する際、端子台に過度な力を加えないでください。 端子台が破損する恐れがあります。

CON6 にある接点入力、接点出力のピンを次に示します。

表4.9 CON6 信号配列(接点入力、出力関連)

ピン番号ピン名 I/O 説明

1

VIN

In

入力電圧

2

GND

In

GND

3

COM

In

接点入力プラスコモン

4

DI1

In

接点入力1

5

DI2

In

接点入力2

6

DO1A

-

接点出力1A

7

DO1B

-

接点出力1B

8

DO2A

-

接点出力2A

9

DO2B

-

接点出力2B


DI ピンと DO ピンは GPIO として制御可能であり、対応する GPIO 番号を次に示します。

表4.10 接点入力、出力に対応する CON6 ピン番号

ピン番号 ピン名 GPIOチップ GPIO番号

4

DI1

gpiochip5

0

5

DI2

gpiochip5

1

6

DO1A

gpiochip5

2

7

DO1B

gpiochip5

2

8

DO2A

gpiochip5

3

9

DO2B

gpiochip5

3


Armadillo-IoT ゲートウェイ A6E の接点入力、出力インターフェースはフォトカプラで絶縁されています。 そのため、フォトカプラを駆動させるために5V以上の電圧を印加する必要があります。

ループバック接続を用いて DO2 ピンの出力レベルを変更して、DI2 ピンで立ち上がりエッジを検出します。 必要なピン接続は以下です。

・VIN ピン - COM ピン
・GND ピン  - DO2B ピン
・DI2 ピン  - DO2A ピン
images/node-red/get_di2_rising_edge_connect.png

図4.21 DI2 ピンの立ち上がりエッジを取得するための接続図


  1. はじめに DI2 ピンの立ち上がりエッジを検出するフローを作成します。 パレットから [inject] ノードをワークスペースにドラッグ、ドロップします。
  2. [inject] ノードのプロパティを編集します。

    名前: Get DI2
    繰り返し: 指定した時間間隔
    時間間隔:0.1秒
    images/node-red/get_di2_inject_prop.png

    図4.22 [inject] ノードのプロパティ内容


  3. [GPIO in] ノードをドラッグ、ドロップします。
  4. [GPIO in] ノードのプロパティを編集します。

    Device:gpiochip5
    Type:Digital pin
    Pin: 1
    Name:DI2
    images/node-red/get_di2_prop.png

    図4.23 [GPIO in] ノードのプロパティ内容


  5. [Get DI2] ノードの右側にある端子をクリックし、[DI2] ノードの左側の端子を選択して放します。
  6. [rising edge] ノードをドラッグ、ドロップします。
  7. [rising edge] ノードのプロパティを編集します。

    Name: notify rising edge
    Threshold: 0
    images/node-red/get_di2_rising_edge_prop.png

    図4.24 [rising edge] ノードのプロパティ内容


  8. [DI2] ノードの右側にある端子をクリックし、[notify rising edge] ノードの左側の端子を選択して放します。
  9. [change] ノードをドラッグ、ドロップします。
  10. [change] ノードのプロパティを編集します。

    名前: notification
    ルール: 値の置換 msg.payload
    検索する文字列: 1
    置換後の文字列: notify!
    images/node-red/get_di2_notification_prop.png

    図4.25 [change] ノードのプロパティ内容


  11. [notify rising edge] ノードの右側にある端子をクリックし、[notification] ノードの左側の端子を選択して放します。
  12. [debug] ノードをドラッグ、ドロップします。
  13. [notification] ノードの右側にある端子をクリックし、[debug] ノードの左側の端子を選択して放します。
  14. 次に DO2 ピンの出力レベルを変更するフローを追加します。[Get DI2] の下に [inject] ノードをドラッグ、ドロップします。
  15. [inject] ノードのプロパティを編集します。

    名前: Output LOW
    msg.payload: 0
    繰り返し: なし
    images/node-red/get_di2_outpu_low_prop.png

    図4.26 [inject] ノードのプロパティ内容


  16. [Output LOW] の下に [inject] ノードをドラッグ、ドロップします。
  17. [inject] ノードのプロパティを編集します。

    名前: Output HIGH
    msg.payload: 1
    繰り返し: なし
    images/node-red/get_di2_outpu_high_prop.png

    図4.27 [inject] ノードのプロパティ内容


  18. [GPIO out] ノードをドラッグ、ドロップします。
  19. [GPIO out] ノードのプロパティを編集します。

    Device:gpiochip5
    Type:Digital (0/1)
    Pin: 3
    Name:DO2
    images/node-red/get_di2_do2_prop.png

    図4.28 [GPIO out] ノードのプロパティ内容


  20. [Output LOW] ノードの右側にある端子をクリックし、[DO2] ノードの左側の端子を選択して放します。
  21. [Output HIGH] ノードの右側にある端子をクリックし、[DO2] ノードの左側の端子を選択して放します。 [DO2] ノードの左側は二つのノードが繋がっている状態になります。

    images/node-red/get_di2_rising_edge_flow.png

    図4.29 接点入力の入力レベルの立ち上がりエッジを検出するフローとデバッグメッセージ


  22. 画面右上の [デプロイ] を押します。 [Output LOW] を押した後に [Output HIGH] を押した場合に、立ち上がりエッジを検出して "notify!" がサイドバーのデバッグメッセージに表示されます。

4.4.6. RS-485 modbus RTU 読み出しを行う

ここでは、 RS-485 を使用した Modubus RTU 読み出し用フローを作成します。 Node-RED のコアノードのほかに modbus-client ノード、Modbus-Read ノード、 modbus-response ノードを使用します。 Armadillo-IoT ゲートウェイ A6E の CON6 にある RS485 を使用します。 RS-485 シリアルインターフェースのデバイスファイルは、/dev/ttymxc4 を使用します。 RS-485 の場所については 「インターフェースレイアウト」 をご確認ください。

表4.11 CON6 信号配列(RS-485関連)

ピン番号 ピン名

10

DATA+

11

DATA-

12

GND


機能
  • 最大データ転送レート : 5Mbps
  • 半二重対応
  • RS-485 シリアルインターフェースのデバイスファイルは、/dev/ttymxc4 を使用します。

終端抵抗 120Ω の ON/OFFをスイッチ (SW3) で切り替えることができます、設定方法は以下をご確認ください。

images/a6e-sw3.svg

図4.30 スイッチの状態と終端抵抗のON/OFF


images/common-images/callouts/1.svg
終端抵抗 120Ω がONになります。
images/common-images/callouts/2.svg
終端抵抗 120Ω がOFFになります。
[ティップ]

終端はRS485の信号線の最遠端で行います。 Armadillo-IoT ゲートウェイ A6E が最遠端になる場合は終端抵抗をONにしてください。

接続に関する注意事項は以下です。

表4.12 CON6 接続可能な電線

規格

UL

IEC

電線範囲

26~18 AWG

0.12~0.9mm2

被覆剥き長さ

5~6mm

使用可能フェルール端子

型番 : MFL25-5BE

メーカー:ミスミ

推奨ねじ締めトルク

0.28Nm


[警告]

電線の先端に予備半田しないでください。正しい接続ができなくなります。

[警告]

端子台に電線を接続する際、端子台に過度な力を加えないでください。 端子台が破損する恐れがあります。

RS-485通信対応デバイスとの接続方法について以下に示します。

images/node-red/example_rs485_connect.png

図4.31 RS-485通信対応デバイスとの接続方法


今回は以下のRS-485通信対応デバイスを想定した場合の設定内容となります。 実際に動作確認する場合は、使用するRS-485通信対応デバイスの設定に変更してください。

ユニットID: 1
通信プロトコル: Modbus RTU
ボーレート: 9600
読み出しアドレス: 0x00
ファンクションコード: 1
  1. パレットから [Modbus-Read] ノードをワークスペースにドラッグ、ドロップします。
  2. [Modbus-Read] ノードのプロパティを編集します。
  3. 先に Server を設定する必要があります。[新規に modbus-client を追加] の右隣の編集ボタンを押して [modbus-client] を作成します。

    名前: RS485 slave device
    Type: Serial
    Serial port: /dev/ttymxc4
    Serial type: RTU
    Baud rate: 9600
    Unit-Id: 1
    images/node-red/read_modbus_client_prop.png

    図4.32 [modbus-client] ノードのプロパティ内容


  4. [Modbus-Read] ノードのプロパティを編集します。

    名前: slave device
    トピック:
    Unit-Id:
    FC: FC 1:Read Coil Status
    Address: 0
    Quantity: 1
    Poll Rate: 1 Second(s)
    Server: RS485 slave device
    images/node-red/read_modbus_prop.png

    図4.33 [Modbus-Read] ノードのプロパティ内容


  5. [Modbus-Response] ノードをドラッグ、ドロップします。
  6. [slave device] ノードの右側にある端子をクリックし、[Modbus-Response] ノードの左側の端子を選択して放します。

    images/node-red/read_modbus_flow.png

    図4.34 RS-485 を使用した Modubus RTU 読み出し用フロー


  7. 画面右上の [デプロイ] を押します。読み出しに成功すると1秒毎に読みだした値が更新され [Modbus-Response] ノードの下に表示されます。

4.4.7. CPU の測定温度のグラフをダッシュボードに表示する

「CPU の測定温度を取得する」 で取得した CPU 温度をダッシュボードにグラフとして表示するフローを作成します。

  1. サイドバーの右端にある三角形のボタンを押し、[ダッシュボード] を選択します。

    images/node-red/common-images/dashboard_select.png

    図4.35 [ダッシュボード]を選択する


  2. [ダッシュボード] 編集画面が表示されることを確認します。

    images/node-red/common-images/dashboard_start.png

    図4.36 ダッシュボード編集画面


  3. [+タブ] ボタンを押して [Tab1] を追加します。

    images/node-red/common-images/dashboard_add_tab.png

    図4.37 ダッシュボードに [TAb1] を追加


  4. [Tab1] プロパティを編集します。

    名前: Armadillo
    アイコン: dashboard
    images/node-red/common-images/dashboard_tab_prop.png

    図4.38 [Tab1] プロパティ内容


  5. [Armadillo] タブが追加されました。

    名前: Armadillo
    アイコン: dashboard
    images/node-red/common-images/dashboard_add_armadillo.png

    図4.39 ダッシュボード編集画面に [Armadillo] タブが追加


  6. [Armadillo] 横の [+グループ] ボタンを押して [Group1] を追加します。

    名前: Armadillo
    アイコン: dashboard
    images/node-red/common-images/dashboard_add_group.png

    図4.40 ダッシュボード編集画面に [Group1] グループが追加


  7. [Group1] プロパティを編集します。

    名前: Group 1
    タブ: Armadillo
    種類:
    幅: 15
    □グループ名を表示する
    images/node-red/common-images/dashboard_group_prop.png

    図4.41 [Group1] プロパティ内容


  8. [chart] ノードをワークスペースにドラッグ、ドロップします。ダッシュボード編集画面の [Group1] グループに追加されたことを確認します。

    images/node-red/common-images/dashboard_add_chart.png

    図4.42 ダッシュボード編集画面に [chart] ノードが追加


  9. [chart] ノードのプロパティを編集します。

    グループ: [Armadillo] Group 1
    サイズ: 自動
    ラベル: CPU temp
    種類: 折れ線グラフ
    X軸: 直近1時間
    X軸ラベル: HH:mm:ss
    Y軸: 最小 20 最大 50
    凡例: 非表示 補完: 直線
    images/node-red/common-images/cpu_temp_dashboard_chart_prop.png

    図4.43 [inject] ノードのプロパティ内容


  10. [CPU temp calc] ノードの右側にある端子をクリックし、[CPU temp] ノードの左側の端子を選択して放します。

    images/node-red/common-images/cpu_temp_dashboard_flow.png

    図4.44 CPU の測定温度のグラフをダッシュボードに表示するフロー


  11. 画面右上の [デプロイ] を押します。ダッシュボード編集画面の [テーマ] タブの右側にある四角に矢印が重なったボタンを選択すると、ダッシュボードが表示されます。

    images/node-red/common-images/cpu_temp_dashboard.png

    図4.45 CPU の測定温度のグラフのダッシュボード


  12. ダッシュボードの CPU 温度のグラフは一秒毎に更新されます。

4.4.8. 外部プログラムを実行する

ここでは、外部プログラムを実行しその結果を取得するフローを作成します。 外部プログラムは [exec] ノードで実行することができます。 ここでの外部プログラムとはシステムコマンドやユーザー自身が作成したプログラムのことを指します。

例として date コマンドを実行するフローを作成します。

  1. パレットから [inject] ノードをワークスペースにドラッグ、ドロップします。 プロパティはデフォルトから変更ありません。
  2. [exec] ノードをドラッグ、ドロップします。
  3. [exec] ノードのプロパティを編集します。

    コマンド: date
    引数: なし
    images/node-red/common-images/exec_prop.png

    図4.46 [exec] ノードのプロパティ内容


  4. [indect] ノードの右側にある端子をクリックし、[exec] ノードの左側の端子を選択して放 します。
  5. [debug] ノードをドラッグ、ドロップします。
  6. [exec] ノードの右側の一番上にある端子をクリックし、[debug] ノードの左側の端子を選択して放します。

    images/node-red/common-images/exec_flow.png

    図4.47 外部プログラムを実行するフロー


  7. 画面右上の [デプロイ] を押します。
  8. [inject] ノードの左の四角を押すと [exec] ノードに設定した date コマンドが実行され標準出力の結果が デバッグメッセージに表示されます。

[exec] ノードの右の端子は上からそれぞれ「標準出力」「標準エラー出力」「返却コード」となっており、 取得したい出力によって使い分けることができます。

4.4.9. Node-RED を終了する

ここでは、 Node-RED を任意のタイミングで終了するフローを作成します。 Node-RED のコアノードのほかに exit ノードを使用します。

[警告]

Node-RED 終了後、Node-RED を再起動するためには Armadillo-IoT ゲートウェイ A6E の電源を再投入する必要があります。

  1. パレットから [inject] ノードをワークスペースにドラッグ、ドロップします
  2. [inject] ノードのプロパティを編集します。

    名前: Finish Node-RED
    繰り返し: なし
    images/node-red/common-images/finish_inject_prop.png

    図4.48 [inject] ノードのプロパティ内容


  3. [exit] ノードをドラッグ、ドロップします。
  4. [exit] ノードのプロパティを編集します。

    Name: exit
    Exit code: 0
    images/node-red/common-images/finish_exit_prop.png

    図4.49 [exit] ノードのプロパティ内容


  5. [Finish Node-RED] ノードの右側にある端子をクリックし、[exit] ノードの左側の端子を選択して放します。

    images/node-red/common-images/finish_flow.png

    図4.50 Node-RED を任意のタイミングで終了するフロー


  6. 画面右上の [デプロイ] を押します。[Finish Node-RED] ノードの左側にあるボタンを押すと Node-RED が終了します。

4.5. ユーザデータを削除する

Node-RED に関するユーザデータは /var/app/rollback/volumes/node-red/root に保存されます。 当ディレクトリを削除した場合はユーザデータは全て削除されます。 この場合 Node-RED のブラウザからインストールしたカスタムノードは削除されます。