LoginSignup
22
8

More than 3 years have passed since last update.

Node-REDで宇宙ステーションの現在地を取得し、OpenStreetMap上に可視化してみた

Last updated at Posted at 2019-12-12

 こんにちは、(株)日立製作所 研究開発グループ サービスコンピューティング研究部の横井一仁です。

 本ドキュメントでは、宇宙ステーションの位置取得するノードを用いて、現在地を世界地図上にリアルタイムにプロットするフローをNode-REDを用いて作成してみます。

demo.png

必要なノードをインストール

 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ノードは不要です)。

flow.png

 もし正しく位置情報を取得できているか確認したい場合は、iss-locationノードの後ろにさらにdebugノードをつないでください。

 各ノードのノードプロパティの設定以下の通りです。

(1) injectノードのプロパティ設定

  • 繰り返し: 指定した時間間隔
  • 時間間隔: 1秒

injectnode.png

(2) iss-locationノードのプロパティ設定

  • メソッド: ISS-Location-Now

generatednode2.png

(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を代入

changenode.png

(4) worldmapノードのプロパティ設定

 worldmapノードにおいては、ノードプロパティで新規に設定する項目はありません。

 上記(1)~(4)のプロパティ設定をした後、最後にNode-REDフローエディタの右上にあるデプロイボタンをクリックします。

動作確認

 世界地図を表示するには、「http://<Node-REDのIPアドレス>:<ポート番号>/worldmap」にアクセスします。上手く動作している場合、地図の左上のマイナスボタンをクリックして縮尺を変更すると、現在の宇宙ステーションの位置を確認できます。

demo2.png

 正しく動作しない場合は、changeノードに設定したパスが正しいか、iss-locationノードのメソッドを選択しているか等を確認してみてください。

22
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
8