Device connection with RESTful

Device Web API Managerはスマートフォン上で仮想サーバとして動作し、デバイスを操作するためのWeb APIを提供します。

Device Web API Manager向けに作られたプラグインをインストールする事で、Web APIから操作できるデバイスを増やすことができます。

Device Web API Managerは、オープンソースプロジェクトであるDevice Connectをベースに開発された、実験的なアプリです。

Device Web API Managerでは、仮想サーバに、下記の記述で、接続可能です。

ホスト名 localhost
Port番号 4035

例えば、端末内でDevice Web API Managerが利用可能かどうかを調べる場合、下記のURIで確認をおこなう事が可能です。

Request
GET
Response
{
  "product":"Device Web API Manager",
  "version":"x.x",
  "result": 0
}

Device Web APIを使用したWebアプリはAndroidおよびiOSの両方で動作させることが可能です。

Android上では、Device Web API Managerおよびプラグインを端末にインストールすることにより、Android Chrome等のブラウザアプリからDevice Web APIにアクセスできます。

iOS上では、Device Web API Managerおよびプラグインの両方をライブラリとして組み込んだブラウザアプリを端末にインストールすることで、そのブラウザアプリ上からDevice Web APIにアクセスできます。

Device Web API Managerでは、各種デバイスへのアクセスは、プラグインをインストールする事で行います。 ターゲットとなるハードウェアに対応したプラグインを組み込む事で、汎用的なRESTfulのAPIでハードウェアへのアクセスが可能になります。

アイコン プラグイン名 説明
THETAプラグイン 以下のデバイスと接続ができるようになり、写真撮影やプレビューの表示が行えいます。
  • RICOH THETA S
  • RICOH THETA m15
「THETA」および「RICOH THETA」は、株式会社リコーの登録商標または商標です。
Heart Rate (BLE)プラグイン Health プロファイルで、BLE対応の心拍計から心拍数を取得できるようになります。
hueプラグイン Light プロファイルで、hueの色の変更やOn/Offができるようになります。
HVCプラグイン Human Detection プロファイルで、オムロン社製HVC-Cによる人間の顔・手・身体の認識を実行できるようになります。
IRKitプラグイン Remote Controller プロファイルで、IRKitから赤外線の送受信ができるようになります。
Spheroプラグイン Light プロファイルで、Spheroの色の変更やOn/Offができるようになります。また、Drive Controller profileで、Spheroの操作を行う事も可能になります。 Device Orientation プロファイルでは、Spheroに搭載している加速度センサーなどの値を取得する事が可能です。
Hitoeプラグイン

Hitoeデバイスと接続し、生体情報(心拍数、加速度、心電波形)を取得する機能を提供します。

hitoe®の詳細は下記のリンクを参照ください。
http://www.hitoe-toray.com/

Device Web API Managerは、OMA策定のOMA Generic Open Terminal API Framework V1.1(GotAPI)をサポートしています。 GotAPIをサポートする事で、下記のようなRESTfulでの記述で、スマートフォン上で起動している仮想サーバを通して、ハードウェアへのアクセスが可能になります。


サンプル Device Web API Managerの生存確認

Device Web API Manager動作状態の確認を行う場合、下記のようなRESTfulの記述を用いて確認します。レスポンスのようなJSONが返却された場合は、Device Web API Managerが動作しています。

Request
GET /gotapi/availability
Host: localhost:4035
Origin: http://www.gclue.io
Response
{
  "product":"Device Web API Manager",
  "version":"x.x",
  "result": 0
}

サンプル Local OAuthのTokenを取得する

Device Web API Managerを使用するためのユーザ認可処理を行う場合、下記のようなRESTfulの記述を用います。レスポンスで返却されたaccessTokenを用いて、各APIにアクセスすることで使用することができます。

Request
GET /gotapi/authorization/accesstoken?clientId=d94da8f1-3826-4ed5-a729-2d9499e842c9&scope=file,notification,vibration&applicationName=Twitterイベントプラグイン
Host: localhost:4035
Origin: http://www.gclue.io
Response
{
  "product":"Device Web API Manager",
  "version":"x.x",
  "result": 0,
  "accessToken": "0a93ac0aade4e046ed63eb24d1172f5f35c88ca60daa901547c28d5827cb418a5de1d7c5f9e62405",
  "scopes":[
    {
      "scope": "file",
      "expirePeriod": 15552000
    },
    {
      "scope": "creditcard",
      "expirePeriod": 0
    }
  ],
  "expire": xxxxxxxxxx
}

Device Connectでは汎用性の高いAPIで抽象化する事で、Webブラウザやアプリから統一的な記述で簡単にハードウェアにアクセスすることが可能にします。

サンプルライトを点灯にする

hueとSpheroなどのライト制御を行う場合、下記のような同じRESTfulの記述を用いてライト制御をする事が可能になります。

Request
POST /gotapi/light
Host: localhost:4035
Origin: http://www.gclue.io

serviceId=localhost.deviceconnect.org&accessToken=xxxxx&lightId=1&color=FF0000
Response
{
  "product":"Device Web API Manager",
  "version":"x.x",
  "result": 0
}