You dont have javascript enabled! Please enable it!
Tech

コンテキスト・プロバイダ型の FIWARE 対応 IoT デバイス

Context Provider (CPr)

コンテキスト・プロバイダ (CPr) は、コンテキスト・プロデューサ (CP) の特別な種類です。同期モードでオンデマンドでのコンテキスト情報を提供します。つまり、コンテキスト・ブローカーだけでなく、コンテキスト・コンシューマでさえも、コンテキスト情報を取得するためにコンテキスト・プロバイダを呼び出すことができます。コンテキスト・プロバイダは特定の呼び出しに対してコンテキスト・データのみを提供します。すべてのコンテキスト・プロバイダは、適切なアナウンスをコンテキスト・ブローカーに送信することによりその可用性と機能を登録し、コンテキスト・ブローカーおよびコンテキスト・コンシューマにコンテキスト情報を提供するためにインタフェースを公開します。

本記事では、IoT マイコンの ESP32 を使って、温湿度、気圧の情報を、コンテキスト・ブローカーやコンテキスト・コンシューマにコンテキスト情報を提供する、コンテキスト・プロバイダを紹介します。

プログラム概要

コンテキスト・プロバイダは、コンテキスト・ブローカーからコンテキスト情報取得のリクエストを受け付けるために、次のエンドポイントを提供します。

POST /v1/weatherObserved/queryContext

エンドポイントは、Arduino core for ESP32 の Webサーバのライブラリを利用して実現します。具体的には、setup() で、次のように Webサーバを作成します。 エンドポイントにアクセスがあると、queryContext() が呼び出されます。この中で、温湿度、気圧の情報をセンサーから取得し、これらをコンテキスト情報としてレスポンスします。

プログラム全体

プログラム全体は以下のような内容です。Arduino IDE から ESP32にこのプログラムを書き込んでから実行すると、ESP32はコンテキスト・プロバイダとして動作します。

  • ソースコードのダウンロード

    コンテキスト・プロバイダの登録

  • コンテキスト・ブローカーの FIWARE Orion から、このコンテキスト・プロバイダにアクセスできるように、コンテキスト・プロバイダの登録が必要です。

    POST /v2/registrations

    コンテキスト・ブローカーの Orion の IP アドレスが 192.168.1.2、コンテキスト・プロバイダ の ESP32 の IP アドレスが、192.168.1.3 の場合、次のようなクエリで登録できます。

    コンテキスト情報を取得

    Orion にアクセスして、コンテキスト情報を取得します。次のクエリで取得できます。

    GET /v2/entities/urn:ngsi-ld:WeatherObserved:sensor002

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

    シリアル・コンソールの出力は次のとおりで、エンティティ情報取得のリクエスト毎に、Orion から コンテキスト・プロバイダへのリクエストと、コンテキスト・プロバイダから Orion へのレスポンスが表示されます。


    コンテキスト・プロデューサ型の FIWARE 対応 IoT デバイスContext Producer (CP) コンテキスト・プロデューサは、コンテキスト情報を生成することができるアクターです。基本的な...
    FIWARE IoT Agent for Ultralight 2.0 対応デバイスの作成FIWARE IoT Agent for Ultralight 2.0 対応デバイス 以前の記事では、FIWARE Orion に直接...