You dont have javascript enabled! Please enable it!
Tech

FIWARE Orion で Lチカ

FIWARE Orion で Lチカする

Lチカ (エルチカ) とは、プログラムから LED を制御してチカチカと点滅させる操作のことで、マイコン工作の “Hello World!” です。本記事では、FIWARE を使った、Lチカを紹介します。

FIWARE は、センサからコンテキスト情報を収集するだけでなく、デバイスを制御することもできます。Orion のコンテキスト情報の属性値を変更することで、デバイスの状態を変更できます。本記事では、LED が接続された、Ultralight 2.0 対応デバイス を作成して、これを Orion から制御して、Lチカを実現します。

サーバ側には、Orion と IoT Agent for Ultralight 2.0 をデプロイします。デバイスには、IoT マイコンの ESP32 を使用し、Ultralight 2.0 に対応したデバイスを作成します。

サーバ環境の作成

Orion と IoT Agent for Ultralight 2.0 は、Docker コンテナを利用して、サーバ上にデプロイします。docker-compose ファイルは次のとおりです。

正常性の確認

Orion のバージョン取得や、IoT Agent に次のクエリを実行して、正しくデプロイされたことを確認してください。(サーバの IP アドレスを 192.168.1.1 として説明しています)

curl -X GET http://192.168.1.1:4041/iot/about

次のようなレスポンスが返ってくることを確認してください。

Ultralight 2.0 対応デバイスの作成

ESP32 を利用して、Ultralight 2.0 対応デバイスの作成します。ESP32 に LED をひとつ接続しておきます。プログラムは次のとおりです。このプログラムのポイントは、execCmd() 関数です。IoT Agent からのリクエストをポート 80 で待ち受ける Web サーバで、IoT Agent から /iot/led001 へ POST リクエストを受け付けます。POST の Payload は、Ultralight 2.0 形式で、LED の ON/OFF の状態を表すパラメータが含まれてます。これにしたがって、LED の状態を変更します。

IoT デバイスの接続

IoT デバイスにプロビジョニングします。最初にサービス・グループをプロビジョニングし、次にデバイスをプロビジョニングします。

サービス・グループのプロビジョニング

デバイスのプロビジョニング

“on”, “off” のコマンドを持つデバイスを、DeviceID : “led001”, Entity 名 : “urn:ngsi-ld:Led:001” としてプロビジョニングします。

デプロイしたデバイスの確認

デプロイしたデバイスのエンティティがあるか、Orion のクエリを実行して確認してみます。エンティティ名は、”urn:ngsi-ld:Led:001″ なので、次のクエリを実行します。

クエリ

実行結果

以下のようなレスポンスがあれば、エンティティが存在します。

L チカの実行

先ほど確認した、エンティティの属性情報を変更することで、LEDの点滅を制御できます。具体的な次のクエリを実行します。

LED を点灯するクエリ

LED を消灯するクエリ

シリアル・コンソールの出力

シリアル・コンソールには次のようなデータが出力されます。これには、IoT Agent から IoT デバイスへの Ultralight 2.0 形式のペイロードと、IoT デバイスから IoT Agent へのレスポンスが含まれています。

IoT Agent から IoT デバイスへの ペイロード

On

led001@on|

Off

led001@off|

IoT デバイスから IoT Agent へのレスポンス

On

led001@on|on OK

Off

led001@off|off OK
コンテキスト・コンシューマ型の FIWARE 対応 IoT デバイスContext Consumer (CC) とは Context Consumer(CC)、つまり、コンテキストの消費者は、コンテキス...
error: Alert: Content is protected !!