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 アプリケーションでのコマンドとステートの詳細とその設計方法を説明します。
コマンドとステートの設計 に移動してください。