ノード操作サンプル

位置情報の可視化

  1. Node-REDにアクセスします。 以下のIPアドレスは環境に合わせて適宜読み替えてください。
    URL : http://192.168.254.254:1880/
  1. 入力ノードパレットからinjectノードをドラッグしてシートにドロップします。

loc_exp01

  1. 配置したinjectノードをダブルクリックし、ノードの編集を行います。

loc_exp02

名前欄にGPSと入力します。ペイロードの種類にJSONを選択します。
また、ペイロード部のを選択し、表示されるウィンドウに以下を設定します。

{
"latitude": 35.681167,
"longitude": 139.767052
}

設定後、完了ボタンを押します。

  1. 機能ノードからfunctionノードをドラッグしてシートにドロップします。

loc_exp03

  1. 配置したfunctionノードをダブルクリックし、名前欄に"modify_location"を設定します。
    また、コード部に以下を設定します。設定完了後、完了ボタンを押します。
//var res = JSON.parse(msg.payload);
var res = msg.payload;
msg.payload = {
name: "Tokyo sta." ,
lat: res.latitude,
lon: res.longitude
} ;
return msg;
  1. locationノードからworldmapノードをドラッグしてシートにドロップします。

loc_exp04

  1. 配置したInjectノード - functionノード、functionノード - worldmapノード間を接続します。

loc_exp05

  1. Deployボタンをクリックします。

loc_exp06

Deployが完了すると、Deployボタンの背景が赤から黒に変わります。

  1. ブラウザの別タブにて以下にアクセスを行います。 以下のIPアドレスは環境に合わせて適宜読み替えてください。
    URL : http://192.168.254.254:1880/worldmap/
  1. Injectノードの左部のボタンを押します。

loc_exp07

11, 別タブにて表示した地図の日本の東京駅にプロットされます。

loc_exp08

ビーコンデータへの位置情報付与

info

IoTデータ制御機能にて収集したビーコンデータに対して、LTE/3Gモジュール(NTTドコモ/KDDI)またはBWAモジュールを用いて取得したGPS情報を付与するサンプルとなります。

  1. 入力ノードパレットからipc-inノードをドラッグしてシートにドロップします。

loc_exp11

  1. 配置したipcノードをダブルクリックし、ノードの編集を行います。
    Nameに"device_beacon"と入力し、Pathに"/node-red/device_beacon.sock"と入力します。
    なお、Abstract Flagをチェックしたままとします。入力完了後、完了ボタンを押します。

loc_exp12

  1. パーサノードパレットからjsonノードをドラッグしてシートにドロップします。

loc_exp13

  1. 機能ノードパレットからfunctionノードをドラッグしてシートにドロップします。

loc_exp14

  1. 配置したfunctionノードをダブルクリックし、ノードの編集を行います。
    名前はビーコンデータとGPS情報の2種類を扱う為、"並列設定"とします。
    後述のコードを入力後、完了ボタンを押します。

loc_exp15

また、コードは以下を設定します。

context.global.n = 2;
context.global.data = new Array(2);
return msg;
  1. ストレージノードパレットからfile inノードをドラッグしてシートにドロップします。

loc_exp16

  1. 配置したfile inノードをダブルクリックし、ノードの編集を行います。
    ファイル名は"/tmp/.gps_posi.json"とします。また、名前は"READ GPS JSON"とします。なお、出力形式は文字列からの変更はありません。 各項目入力後、完了ボタンを押します。

loc_exp17

  1. パーサノードパレットからjsonノードをドラッグしてシートにドロップします。

loc_exp18

  1. 機能ノードパレットからfunctionノードをドラッグしてシートにドロップします。

loc_exp19

  1. 配置したfunctionノードをダブルクリックし、ノードの編集を行います。
    名前はビーコンデータとGPS情報の2種類のデータをマージする為、"データマージ"とします。
    後述のコードを入力後、完了ボタンを押します。

loc_exp20

また、コードは以下を設定します。

context.global.n--;
context.global.data[context.global.n] = msg.payload;
if (context.global.n === 0){
var array = {} ;
for (var i = 0; i < context.global.data.length; i++) {
array = Object.assign(array, context.global.data[i]);
}
msg.payload = array;
return msg;
}
  1. 出力結果を確認する為、出力ノードパレットからdebugノードをドラッグしてシートにドロップします。

loc_exp21

  1. 以下の図のように各ノード間を接続します。接続完了後、デプロイボタンを押します。
    これにより、ビーコンデータをNode-RED側で受信した際にGPS情報ファイルのデータをマージし、debugノードにマージした情報が出力されます。

loc_exp22