You dont have javascript enabled! Please enable it!
FIWARE

FIWARE と Node-RED で作るバスロケ・システム (ローカル・マシン編)

この記事では、FIWARE と Node-RED を使って、バスロケ・システムをローカル・マシンに作成する方法を紹介します。クラウド上に作成したい場合は、こちらを参照ください。

node-red-contrib-letsfiware-NGSI とは

node-red-contrib-letsfiware-NGSI は、Node-RED から FIWARE へのアクセスを可能にするカスタム・ノードです。MIT License のオープンソースとして、以下の URLで公開しています。

次のカスタム・ノードで構成されています。

このカスタームノードのいくつかを使用して、バスロケ・システムを作成します。

完成イメージ

Web ブラウザからバス等の車両の位置を確認することができます。

FIWARE 基盤の構築

FIWARE Small Bang を使って、ローカル・マシンに Orion と Node-RED が動作する FIWARE 基盤 (インスタンス) を構築します。構築は、次のコマンドを実行するだけです。

curl -sL https://letsfiware.jp/node-red | bash

Node-RED でフローを作成

環境構築が完了したら、コマンド実行した、ローカル・マシンの IP アドレスを使って、http://<your local machine>:1880/ をブラウザで開きます。そして、フローを作成します。

GTFS Realtime 情報を取得するフロー

GTFS Realtime 車両位置 (VehiclePosition) の情報を取得して、Orion Context Broker にエンティティを作成・更新するフローを作成します。inject, NGSI GTFS Realtime, NGSI Batch update の3種類のノードを接続した、次のフローです。

inject ノードの設定

inject ノードに、GTFS Realtime 車両位置情報が取得できる、適切な URL を設定します。URL は、msg.palyload に String 型として設定します。また、適切な間隔で車両位置情報を取得できるよう、interval を設定します。

Open APIs node の設定

次に、NGSI Bach update node から Open APIs node の設定を行います。NGSI Bach update node の設定を開きます。

次に、Context Broker の右側の鉛筆アイコンをクリックすると、Open APIs node の設定が開きます。API Endpoint に http://orion:1026/ を設定します。

車両を表示するフロー

Orion Context Broker からサブスクリプションのノーティフィケーションを受信して、worldmap ノードに車両を表示するフローを作成します。http in, http response, NGSI to worldmap, worldmap の4種類のノードを接続した、次のフローです。

worldmap ノードのインストール

worldmap ノードがインストールされていない場合、Node-RED の画面右上のハンバーガーメニューから「パレットの設定 (Manage palette)」を選択し、さらに「インストール (install)」タブを選択します。ノード検索に「node-red-contrib-web-worldmap」を入力して、ノードをインストールします。

http in ノードの設定

http in ノードの設定を開き、Method を 「POST」に、URL を「/notify」に設定します。この設定で、http://node-red:1880/notify が、サブスクリプションのノーティフィケーションを受信するエンドポイントになります。

http response ノードの設定

http in ノードの設定を開き、Status code に 204 を設定します。

フローのデプロイ

作成した2つのフローをデプロイします。

デプロイは、Node-RED の画面の右上にある「Deploy」ボタンを押下します。

サブスクリプションの作成

最後の、Orion Context Broker にサブスクリプションを作成します。サブスクリプションは、車両の位置が変化したときに、Node-RED の http in ノードにノーティフィケーションを送信するものです。サブスクリプションは NGSI Go で簡単に作成できます。コマンドラインから次のパラメータを持つコマンドを実行します。

ngsi create subscription ––idPattern “.*” ––url http://node-red:1880/notify ––host orion.local

作成したサブスクリプションは、次のコマンドで確認できます。

ngsi list subscriptions ––host orion.local ––pretty

コマンドを実行すると、次のような結果 (例) が表示されます。

バスロケ・ダッシュボードの表示

worldmap ノードのエンドポイント (/worldmap) の http://<your local machine>:1880/worldmap/ を開くと、地図が表示されます。車両が運行されている地域に移動すると、次のような画面が表示されます。また、車両の位置が定期的に更新されていることを確認できるはずです。

FIWARE と Node-RED で作るバスロケ・システム (クラウド編)この記事では、FIWARE と Node-RED を使って、クラウド上にバスロケ・システムを作成する方法を紹介します。ローカル・マシンに...
WebARENA Indigo に FIWARE インスタンスを作成 (Ubuntu 20.04)AWS, Auzre 等のクラウドサービスの VM にコマンド一発で、FIWARE 環境を作成します。...