目次


IBM IoT Foundation と IBM Bluemix を使用して独自のウェアラブル端末を作成する

Bluetooth 対応のウェアラブル端末キットをモバイル・アプリに接続して、センサー・データを IBM IoT Foundation クラウドに送信する

Comments

モノのインターネット (IoT) の進化において、ウェアラブル技術はとりわけ急速に成長している分野です。ウェアラブル・コンピューティングは、腕時計、フィットネス・ブレスレット、メガネ、さらには服など、さまざまな形態をとっています。私たちは今、ウェアラブル技術によって、これまでの大きめのコンピューター端末やスマートフォンとは違った形でテクノロジーを日常生活に浸透させることができる、エキサイティングな時代にいるのです。

ウェアラブル端末の潜在的な用途や応用を制限するのは、設計者の想像力だけです。このチュートリアルでは、Bluetooth 対応のウェアラブル端末キットをハイブリッド・モバイル・アプリに接続して、センサー・データを IBM IoT (Internet of Things) Foundation クラウドに送信する基本的なプロセスを紹介します。センサー・データが IoT Foundation に送られてくると、IBM Bluemix を利用することで、収集されたセンター・データを基にしたさまざまなフローをトリガーすることができます。

基本的な手法

図 1 に、クラウドと通信するウェアラブル端末を設計する際に使用できる標準的なアーキテクチャーによるアプローチを示します。追跡用のウェアラブル端末には、個人のアクティビティーを追跡してレポートするための機能が多数備わっています。これらの機能は一般に、スマートフォンやタブレット・タイプの端末と通信して、ステータスを表示し、データをレポートします。ウェアラブル端末のテクノロジーと市場が成長し続けるなか、ウェアラブル端末のデータを他のサービスに送信する必要も同様に増してくるはずです。以下のアーキテクチャーによるアプローチは、センサー・データをウェアラブル端末からクラウドに送信して処理するために使用できるさまざまな方法の 1 つに過ぎません。

図 1. ウェアラブル端末とクラウドを結ぶアーキテクチャー
ウェアラブル端末とクラウドとの間で通信するためのアーキテクチャー図
ウェアラブル端末とクラウドとの間で通信するためのアーキテクチャー図

ウェアラブル・ハードウェアの選択

現在のコンシューマー向けウェアラブル端末市場は、さまざまなタイプの端末で華やいでいます。一般に、ウェアラブル端末からスマート端末 (スマートフォンやタブレットなど) への低エネルギーの通信手法は、ユーザーが日常的に行う各種のアクティビティーを正確に検出することができます。収集する端末データの品質と精度は、端末に組み込まれているセンサーの数と種類に大きく依存します。この依存性により、ウェアラブル端末の開発者にとって、フォーム・ファクター、処理、バッテリーの寿命、そして魅力的なユーザー・インターフェースの間でバランスを取るのが難しくなっています。

WICED Sense Development Kit の紹介

コストの点からも DiY (Do-it-Yourself) の点からも、Broadcom の WICED Sense Development Kit は、成長を続ける IoT の世界に参入するのに手頃なエントリー・ポイントです。このキットは、ウェアラブル端末を使用するケースをプロトタイプ化するエンジニア、研究者、DiY 愛好者、企業家にとって最適な端末の選択となります。

WICED (「ウィッキド」と発音します) は、Wireless Internet Connectivity for Embedded Devices を略したものです。このキットは、BLE (Bluetooth Low Energy) ボードと 5 つのセンサー (e-コンパス、圧力センサー、湿度センサー、温度センサー、ジャイロスコープ、加速度計) からなり、ボタン電池 2032 で稼働します。ボード、センサー、電池は頑丈なプラスチック製ケースに収容されています (図 2 を参照)。これらの特性が小型のフォーム・ファクターと組み合わさって、WICED Sense キットを実験用の魅力的な選択肢にしています。このチュートリアルでは、WICED Sense キットがウェアラブル端末の役割を果たします。WICED Sense ウェアラブル端末とハイブリッド・モバイル・アプリのインターフェースをどのように取るかは、この後のセクションで説明します。

図 2. Broadcom 製の WICED Sense Development Kit
WICED Sense Development Kit の写真
WICED Sense Development Kit の写真

必要となるもの

このチュートリアルに従うために必要なアイテムはわずかです。

  • Broadcom 製の WICED Sense Development Kit。他のセンサー・タグ・キットを使用することもできますが、このチュートリアルでは WICED Sense に焦点を絞ります。
  • Apache Cordova バージョン 3.6.3 以降
  • BLE 機能を備えた小型端末 (スマートフォンまたはタブレット)。このチュートリアルでは、Android 4.4 (BLE 機能が備わっています) を実行する Android タブレットを使用します。
  • IBM Bluemix アカウント。IBM IoT Foundation と Node-Red を使用するために必要です。無料の Bluemix アカウントを使用することができます。

このチュートリアルのソース・コードを入手するには、「ダウンロード」を参照してください。

ウェアラブル端末とハイブリッド・アプリのインターフェースを取る

まず、WICED Sense ウェアラブル端末のセンサーから収集されたデータを読み取るために、Apache Cordova でハイブリッド・アプリを作成します。BLE 対応のスマート端末上で実行されるこのハイブリッド・アプリに、WICED Sense キットを接続します。接続が完了すると、ハイブリッド・アプリが WICED Sense キットのセンサーから読み取り値をすべて読み出して、そのデータを IoT Foundation クラウドに送信できるようになります。

ハイブリッド・アプリのソース・コードをダウンロードして、ダウンロードされた圧縮ファイルを任意のフォルダー (例えば、WICED-Sense-IoT) に解凍します。2 つのファイルを除き、必要な成果物はすべてこの圧縮ファイルに揃っています。ここに含まれていない easy-ble.jsmqttws31.js については、この時点でそれぞれのリンクからダウンロードして、アプリの lib フォルダーに置いてください。

このハイブリッド・アプリは、以下のファイルとフォルダーで構成されます。

  • index.html: アプリのメインとなる HTML ファイル。他のJavaScript ライブラリー・ファイルのロードを制御して、UI を提供します。
  • common.css: アプリに必要なすべての CSS (Cascading Style Sheets) マークアップが含まれています。
  • lib/easy-ble.js: BLE デバイスとのインターフェース接続を単純化するために使用する JavaScript ライブラリー。Evothings によって提供されています。
  • lib/mqttws31.js: クライアントが MQTT V3.1 プロトコルを使用して MQTT 対応のメッセージング・サーバーに接続できるようにするための JavaScript ライブラリー。このライブラリーを使用して IBM IoT Foundation に接続します。
  • lib/WICED-Sense.js: WICED Sense キットとインターフェース接続するための JavaScript ライブラリー。
  • lib/iotFoundation.js: MQTT プロトコルでのやりとりおよび IBM IoT Foundation への接続を単純化する JavaScript ライブラリー。

ハイブリッド・アプリのカスタマイズを開始する前に、IBM Bluemix に参加して、新しい WICED Sense ウェアラブル端末を登録できるようにしておいてください。そうすることで、WICED Sense 端末をハイブリッド・アプリに接続した後、その端末からセンサー・データをクラウドに送信することが可能になります。

IBM Bluemix にアクセスする

Bluemix アカウントをまだ取得していない場合は、Bluemix にアクセスして無料のアカウントを作成してください。Bluemix にログインし、新しい Node-RED アプリをセットアップします。これにより、IoT Foundation サービスを構築することができます。

  1. Bluemix ダッシュボードで、「CREATE AN APP (アプリの作成)」をクリックし、アプリのタイプとして「WEB」を選択します。
  2. 「Browse Boilerplates (ボイラープレートの参照)」を選択して「BROWSE BIOLERPLATES (ボイラープレートの参照)」をクリックし、「Boilerplates (ボイラープレート)」カテゴリーから「Node-RED Starter」を選択します。
  3. 右側の「Create an app (アプリの作成)」ダイアログ・ボックスで、アプリに固有の名前 (例えば、「developerWorks-App」) を入力してから「CREATE (作成)」をクリックします。
  4. これで Node-RED アプリがプロビジョニングされるので、このアプリの概要ページをダッシュボード上に表示して、「ADD A SERVICE OR API (サービスまたは API の追加)」をクリックします。
  5. 「Internet of Things (モノのインターネット)」までスクロールダウンしてクリックし、このサービスを追加します。
  6. 右側の「Add Service (サービスの追加)」ダイアログ・ボックスで、「App: (アプリ:)」フィールドに先ほど作成した Node-RED アプリが選択されていることを確認します。「Selected Plan (選択済みプラン)」には、「Free (無料)」を選択することができます。「CREATE (作成)」をクリックします。
  7. アプリの再ステージを求めるプロンプトが出されたら、「RESTAGE (再ステージ)」をクリックします。

ここまでの作業が完了すると、アプリのダッシュボードは図 3 のような内容になります。

図 3. Bluemix ダッシュボード
Bluemix ダッシュボードに表示された新しく作成されたアプリのスクリーン・キャプチャー
Bluemix ダッシュボードに表示された新しく作成されたアプリのスクリーン・キャプチャー

IoT Foundation において WICED Sense キットをセットアップする

Bluemix アプリに接続された「Internet of Things (モノのインターネット)」サービスにより、端末から簡単にフローをトリガーすることができます。しかし、それにはあらかじめ WICED Sense 端末を登録しておかなければなりません。このチュートリアルを作成している時点で、WICED Sense 端末は IoT Foundation の正式な「レシピ」にはなっていないため、端末をその場で作成して追加する必要があります。

  1. アプリの概要が表示されている Bluemix ダッシュボードで「Internet of Things (モノのインターネット)」サービスをクリックするのに続いて、「Launch dashboard (ダッシュボードの起動)」をクリックします。
  2. IBM Internet of Things Foundation ダッシュボードで、「Devices (機器)」タブを選択して「Add Device (機器の追加)」リンクをクリックします。
  3. 「Register Device (機器の登録)」フォームでは、「Device Type (機器タイプ)」が「Create a device type... (機器タイプを作成...)」に設定されています。「Device Type (機器タイプ)」ボックスのすぐ下にあるテキスト・ボックスに、「WICED-Sense」と入力します。
  4. 「Device ID (機器 ID)」テキスト・ボックスには、任意の固有 ID (例えば、「8675309」) を入力することができます。この ID は後で必要になるので、必ず書き留めておいてください。「Continue (続行)」をクリックします。
  5. 次のページには、新しく登録した WICED Sense 端末の資格情報が表示されます。この情報は重要なので、テキスト・ファイルにコピーして保管してください。それが終わったら、「Done (完了)」をクリックします。

ハイブリッド・アプリに戻る

ここまでのステップで、以下の作業を完了しました。

  • Bluemix Node-RED アプリを作成する
  • Node-RED アプリを IoT Foundation に接続する
  • IoT Foundation 内で WICED Sense キットを登録する

これで、ハイブリッド・アプリに再び取り組むことができます。まずは、IoT Foundation によって生成された値のいくつかをハイブリッド・アプリに設定して、IoT Foundation とハイブリッド・アプリが互いを呼び出せるようにします。

  1. ローカル・ファイル・システムで、ハイブリッド・アプリのソース・ファイルを解凍した場所までナビゲートします。
  2. テキスト・エディターで、lib/iotFoundation.js ファイルを開きます。
  3. 17 行目あたりで、WICED Sense 端末を登録した後に IoT Foundation から受け取った資格情報を入力するよう指示するコメントを見つけます。
  4. CLIENT_IDORG_IDIOT_URL の最初の部分、および IOT_PASS のそれぞれに値を入力します。
  5. 変更したコードを保存します。

Cordova アプリをビルドする

WICED Sense ウェアラブル端末のセンサー・データを読み取って処理するための最後の作業は、ハイブリッド・アプリをビルドし、スマート端末にデプロイしてテストすることです。Apache Cordova では、さまざまなものを作成して、さまざまなことを実現することができますが、このチュートリアルではアプリをビルドする方法だけを取り上げます。

インストールされている Apache Cordova で、コマンド・ウィンドウを開いて、以下のステップを実行します。

  1. コマンド「cordova create <プロジェクト・フォルダー> <アプリ ID> <アプリ名>」を入力します (例えば、「cordova create dw-project com.developerWorks.wiced WicedSenseApp」などです)。
  2. カレント・ディレクトリーをプロジェクト・ディレクトリーに変更します。
    cd dw-project
  3. プロジェクト・フォルダー内にある www フォルダーからファイルを削除します。
  4. ハイブリッド・アプリ・プロジェクトに含まれるすべてのファイルを www フォルダーに移動するか、コピーします。
  5. Evothings BLE プラグインを追加します。
    cordova plugin add com.evothings.ble
  6. ビルド対象のプラットフォームを追加します。それには、以下のコマンドを入力します。
    cordova platform add ios
    cordova build ios

    または、以下のコマンドを入力します。
    cordova platform add android
    Type: cordova build android
  7. コードを適切な端末にデプロイし、テストします。

BLE 対応スマート端末上で、ハイブリッド・アプリが実行中の状態になったので、この端末を WICED Sense キットに接続することができます。ハイブリッド・アプリをスマート端末上で実行すると、図 4 のような画面が表示されます。

図 4. ハイブリッド・アプリ
実行中のハイブリッド・アプリのスクリーン・キャプチャー
実行中のハイブリッド・アプリのスクリーン・キャプチャー

ハイブリッド・アプリをテストする

ハイブリッド・アプリが実行中になったら、WICED Sense タグを起動することができます。スマート端末が WICED Sense タグを検出すると、アプリの「Status (ステータス)」「Sensors online (センサー・オンライン)」と示されます。また、ハイブリッド・アプリはスマート端末のインターネット接続を使用して、IBM IoT Foundation との接続を開きます。最終的に、WICED Sense のセンサー・データが一連の数値として画面に表示されます。WICED Sense タグを動かすと、これらの数値が変わります。

このハイブリッド・アプリはすでに、WICED Sense タグが移動していることを検知すると、移動 (movement) イベントを IoT Foundation に送信するようにコーディングされています。「移動」の定義は、6 秒を超える時間、WICED Sense タグが継続的に移動することとなっています。テストとして、WICED Sense タグに電池を入れます。これがハイブリッド・アプリで検出されたら、手に持っている WICED Sense タグを 6 ~ 7 秒間動かします。アプリで、「Are You Moving? (移動中ですか?)」ステータスが false から true に変わることを確認します。

移動中を示すステータスが true に切り替わると、移動イベントが IoT Foundation クラウドに送信されます。今度は、WICED Sense タグをできるだけ動かさないように持って、6 ~ 7 秒間その状態を維持し、「Are You Moving? (移動中ですか?)」ステータスが false に戻ることを確認します。移動中を示すステータスが false に切り替わると、別のイベントが IoT Foundation クラウドに送信されます。以上の 2 つのアクションを繰り返して、IoT Foundationイベントを送信し続けます。イベントを確認するには、IoT Foundation の「Devices (機器)」ダッシュボード (図 5 を参照) を表示します。このダッシュボードには、IBM Bluemix ダッシュボードからアクセスすることができます。

図 5. IBM IoT Foundation の「Devices (機器)」ビュー
IBM IoT Foundation の「Devices (機器)」ビューのスクリーン・キャプチャー
IBM IoT Foundation の「Devices (機器)」ビューのスクリーン・キャプチャー

次の取り組み

センター・データが IoT Foundation に送信されるようになった今、送信される移動データに対して作用する Node-RED アプリを作成するのは簡単です。例えば、SMS アラートを送信したり、データをデータベースに書き込んだり、他の任意の数のアクションを開始したりするアプリを作成することができます。

さらに、WICED Sense キット内から各種のセンサーに作用するようにコードを変更することも可能です。このチュートリアルでは、移動を検出するためにジャイロスコープを使用していますが、このチュートリアルのコードを使用して、ジャイロスコープ以外のセンサー (温度センサーや湿度センサー) から読み取り値を取得し、それらの読み取り値に基づいてイベントをトリガーすることもできます。


ダウンロード可能なリソース


関連トピック

  • WICED Sense Development Kit: Broadcom の Web サイトで WICED Sense キットについて詳しく調べてください。
  • IBM Internet of Things Foundation: IoT Foundation は Bluemix および IBM Marketplace を通じて利用することができます。無料のアカウントで試してください。
  • Evothings: Evothings は IoT 業界向けのモバイル・アプリ・イネーブラーであり、下位レベルの機器サービスとやりとりするアプリを作成するためのオープンソース開発スイートを提供しています。
  • Apache Cordova: Cordova は、HTML、CSS、JavaScript を使用するネイティブ・モバイル・アプリを作成するためのオープンソース・プラットフォームです。
  • モノのインターネット・サービス: IoT 機器およびそのデータにアクセスするための単純ながらも強力なアプリケーションを入手してください。
  • Internet of Things Foundation の概要」: Bluemix において IBM Internet of Things Foundation (IoTF) を使用して IoT 機器およびそのデータにアクセスするための単純ながらも強力なアプリケーションを作成してください。
  • Node-RED: ハードウェア・デバイス、API、およびオンライン・サービスをワイヤリングするためのツールである Node-RED について詳しく学んでください。
  • Node-RED for Bluemix によるアプリケーションの作成」: IoTF の組織において機器からのリアルタイムのイベントを処理する Node-RED アプリを実装してください。また、機器にコマンドを送信することでリアルタイムのイベントに応答するように、そのアプリを拡張してください。
  • MQTT と IBM Bluemix の「モノのインターネット」サービスを探る」(Chun Bin Tang 著、developerWorks、2015年4月): MQTT の仕組みを理解してください。IoT サービスとサンプル Java アプリまたは Node-RED エディターを使用して、アプリケーションを簡単に作成してください。
  • モノのインターネット (IoT): developerWorks で IoT について詳しく学んでください。
  • さまざまな IBM 製品や IT 業界のトピックに焦点を絞った developerWorks テクニカル・イベントで最新の技術情報を入手してください。
  • Twitter で developerWorks をフォローしてください。

コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=ビジネス・アナリティクス, Mobile development, Cloud computing
ArticleID=1004444
ArticleTitle=IBM IoT Foundation と IBM Bluemix を使用して独自のウェアラブル端末を作成する
publish-date=05072015