ノード操作サンプル

位置情報の可視化

1, Node-REDにアクセスします。

2, 入力ノードパレットからinjectノードをドラッグしてシートにドロップします。

loc_exp01

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

loc_exp02

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

{

"latitude": 35.681167,

"longitude": 139.767052

}

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

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

loc_exp03

5, 配置した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;

6, locationノードからworldmapノードをドラッグしてシートにドロップします。

loc_exp04

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

loc_exp05

8, Deployボタンをクリックします。

loc_exp06

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

9, ブラウザの別タブにて以下にアクセスを行います。

10, Injectノードの左部のボタンを押します。

loc_exp07

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

loc_exp08

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

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

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

loc_exp11

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

loc_exp12

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

loc_exp13

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

loc_exp14

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

loc_exp15

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

context.global.n = 2;

context.global.data = new Array(2);

return msg;

6, ストレージノードパレットからfile inノードをドラッグしてシートにドロップします。

loc_exp16

7, 配置したfile inノードをダブルクリックし、ノードの編集を行います。

ファイル名は"/tmp/.gps_posi.json"とします。また、名前は"READ GPS JSON"とします。尚、出力形式は文字列からの変更はありません。 各項目入力後、完了ボタンを押します。

loc_exp17

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

loc_exp18

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

loc_exp19

10, 配置した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;

}

11, 出力結果を確認する為、出力ノードパレットからdebugノードをドラッグしてシートにドロップします。

loc_exp21

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

loc_exp22