Hello Thing-IF の機能

このページでは、Thing Interaction Framework を使って実現できる機能と、Hello Thing-IF が実装している機能の概要を説明します。

Thing Interaction Framework の基本機能

Thing Interaction Framework は、IoT ソリューションを構築するためのフレームワークです。IoT の世界でベストプラクティスとなる機能をモデル化しており、Thing-IF SDK からそれらの機能を利用できます。

Thing Interaction Framework が持つ最も基本的な機能は、コマンドとステートのやりとりです。

モバイルアプリを操作するユーザーは、制御対象となっている Thing に対して コマンド を送信して、インターネット経由での遠隔操作を行うことができます。逆に、Thing のセンサー値や設定値などの内部状態は、ステート としてモバイルアプリから参照することができます。

Kii Cloud SDK と Thing-IF SDK の関係

Thing-IF SDK は、Kii Cloud SDK が提供している機能要素を組み合わせ、IoT ソリューションを素早く構築できるようにした上位レイヤーの SDK です。

Kii Cloud SDK は、様々な機能要素をアプリケーション側で組み合わせることによって、必要な機能を実現します。これに対して、Thing Interaction Framework は上記のように、使い方があらかじめモデル化されており、そのモデルに沿って必要な機能を実現します。そのため、Kii Cloud SDK を使ってコマンドやステートの配信などの仕組みを作り込むよりも、素早く目的の機能を実現できます。

このモデルは、IoT ソリューションの多くの場面をカバーしていますが、解決したい問題によっては応用が困難なこともあります。そのような場合、Kii Cloud SDK が提供している機能を部分的に組み合わせることによって、目的のソリューションを作り込むこともできます。

なお、モバイルアプリの実装方法で紹介するように、Thing-IF SDK の機能を使用するには、ユーザー登録などの一部の処理で Kii Cloud SDK の機能を利用します。

Hello Thing-IF の構成

Hello Thing-IF では、コマンドとステートのやりとりを基本的な機能として実装しています。

Hello Thing-IF は、モバイルアプリ側と Thing 側から構成されています。これらは、Kii Cloud 上の同一のアプリケーション領域で動作して、連携を実現します。Thing 側はモーションセンサー付きのスマート LED ライトをシミュレートするプログラムで、Linux 上で動作します。モバイルアプリでこのスマート LED ライトの電源と明るさを操作します。

モバイルアプリ側

モバイルアプリでは、ログイン画面とコマンド画面の 2 つから構成されています。

  • ログイン画面

    ログイン画面では、Kii Cloud 上に存在するユーザーと Thing のオブジェクトを 初期登録(Onboard) によって紐付けます。Kii Cloud のアプリケーション上にはユーザーと Thing が多数登録されます。安全な制御を行うためには、ユーザーから操作可能な Thing を指定する必要があります。

    ログイン画面では、ユーザー名とパスワードによって操作元のユーザーを、Thing の ID と Thing のパスワードによって対象の Thing をそれぞれ指定します。ボタンをクリックすると、初期登録によってこれらの 2 つが紐付いて、オーナー の関係を構築します。

    オーナーは、モバイルアプリを通してスマート LED ライトを操作できます。

  • コマンド画面

    コマンド画面では、初期登録で指定されたオーナーの権限を使って、スマート LED ライトの遠隔操作とステートの取得を行います。

    このサンプルでは、電源のオン/オフを行うチェックボックスと、明るさの調整を行うためのつまみが画面上に表示されています。これらを操作してボタンをクリックすると、コマンドが Thing に送信されます。さらに、Thing でコマンドを受け取った結果は、プッシュ通知を契機にして取得することができます。

    また、モバイルアプリでステートの更新ボタンをクリックすると、Thing が登録した最新のステートを取得して、それをモバイルアプリの画面上に表示します。

Thing 側

Thing 側では、コマンドの受信処理と、ステートの送信処理を行います。

モバイルアプリからコマンドが送信されると、Thing Interaction Framework は、送信先の Thing にコマンドを届けます。Thing でコマンドを受信すると、アクションハンドラーとして登録された関数がThing-IF SDK から呼び出されます。アクションハンドラーでは、コマンドから必要なパラメーターを取得して LED 電球のハードウェアを制御します(ただし今回は画面表示だけです)。

また、ステートを Thing Interaction Framework に送信します。Hello Thing-IF では、以下のステートを扱います。

  • 直前に受け取ったコマンドの内容

    電源のオン/オフの状態と、明るさの値をステートとして登録します。

  • モーションセンサーの値

    モーションセンサーの値をステートとして登録します。モーションセンサーは、ステートの登録ごとに 0 → 1 → 2 … → 9 → 10 → 0 → … のように変化する値を、擬似的なセンサー値として使います。

Hello Thing-IF では、ステートを 1 分間隔で Thing Interaction Framework へ送信します。また、コマンドを受信した際にも送信します。


次は...

Hello Thing-IF アプリケーションでのコマンドとステートの詳細とその設計方法を説明します。

コマンドとステートの設計 に移動してください。

より詳しく学びたい方へ

  • 下位レイヤーの Kii Cloud SDK について詳しく知りたい場合は、Hello Kii で紹介されているチュートリアルをご覧ください。
  • Thing Interaction Framework では、他にも条件に応じたコマンドの自動実行などの機能を用意しています。使用できる機能の全体は、機能モデル を参照してください。