こんにちは、(株)日立製作所 研究開発グループ サービスコンピューティング研究部の横井一仁です。
本ドキュメントでは、宇宙ステーションの位置取得するノードを用いて、現在地を世界地図上にリアルタイムにプロットするフローをNode-REDを用いて作成してみます。
必要なノードをインストール
Node-REDフローエディタの右上のメニューから「設定」->「パレット」->「ノードを追加」を選択し、宇宙ステーションの位置情報を取得するノード「node-red-contrib-iss-location」をインストールしてください(前回記事でオリジナルノードとしてインストール済の場合は本手順は不要)。
その他、Node-RED上で地図を利用するため、OpenStreetMapの世界地図を表示するノード「node-red-contrib-web-worldmap」もインストールしてください。
宇宙ステーションの現在地を世界地図に表示するフロー作成
必要なノードをインストールした後、ワークスペース上にinjectノード、iss-locationノード、changeノード、左側に端子のあるworldmapノードを配置し、順にワイヤーで接続します(node-red-contrib-iss-locationモジュールを用いた場合は、changeノードは不要です)。
もし正しく位置情報を取得できているか確認したい場合は、iss-locationノードの後ろにさらにdebugノードをつないでください。
各ノードのノードプロパティの設定以下の通りです。
(1) injectノードのプロパティ設定
- 繰り返し: 指定した時間間隔
- 時間間隔: 1秒
(2) iss-locationノードのプロパティ設定
- メソッド: ISS-Location-Now
(3) changeノードのプロパティ設定
iss-locationノードとworldmapノード間で受け渡すメッセージの仕様が異なるため、changeノードを用いて下記の通り3つの値を代入します。
- msg.payload.latへmsg.payload.iss_location.latiduteを代入
- msg.payload.lonへmsg.payload.iss_location.longitudeを代入
- msg.payload.nameへmsg.payload.iss_location.timestampを代入
(4) worldmapノードのプロパティ設定
worldmapノードにおいては、ノードプロパティで新規に設定する項目はありません。
上記(1)~(4)のプロパティ設定をした後、最後にNode-REDフローエディタの右上にあるデプロイボタンをクリックします。
動作確認
世界地図を表示するには、「http://<Node-REDのIPアドレス>:<ポート番号>/worldmap」にアクセスします。上手く動作している場合、地図の左上のマイナスボタンをクリックして縮尺を変更すると、現在の宇宙ステーションの位置を確認できます。
正しく動作しない場合は、changeノードに設定したパスが正しいか、iss-locationノードのメソッドを選択しているか等を確認してみてください。