Androidとi beacon(ble)

23
AndroidiBeacon(BLE) Android Night 日本Androidの会 2013/12/20(金)

Transcript of Androidとi beacon(ble)

Page 1: Androidとi beacon(ble)

AndroidとiBeacon(BLE)

Android Night 日本Androidの会 2013/12/20(金)

Page 2: Androidとi beacon(ble)

アプセサリーとは 周辺機器を意味するアクセサリと、そのアクセサリと接続する アプリケーションの2つの単語を組み合わせた造語 Accessory + application = Appcessory スマートホン(+アプリ)とアクセサリーを繋ぐ → スマートホンはさらにネットワークでクラウドに繋がる 日本語でググっても出てこないので日本では一般的ではない? appcessoryでいっぱいヒット → 海外では盛り上がっている KickStarterではいっぱい出てる → 既にネタ切れ感? AndroidはADKからの流れ、Appleの対応が大きい

Page 3: Androidとi beacon(ble)

アプセサリーの例

Findme系キーホルダー Fitbit http://www.fitbit.com/jp/home Wahoo http://www.wahoofitness.com/ Sphero2 http://www.gosphero.com/ja/ NIKE、時計(Smart Watch)、自転車用 KickStarter系 http://www.kickstarter.com/projects/search?utf8=%E2%9C%93&term=bluetooth

Page 4: Androidとi beacon(ble)

アプセサリークラブ始めました

・FBのグループ作成 https://www.facebook.com/groups/424957874297093/ ・勉強会開催(11/14) 福岡(九州)をBLEの開発拠点にしたい(ゲーム、Webから参入) ハッカソン、勉強会のイベントなどを予定しています チップモジュールメーカーとの交流(Braveridgeさんとか) 他の地区との交流(岐阜、会津)

Page 5: Androidとi beacon(ble)

スマートフォンの役割 スマートフォンがコア(ハブ)になる • ユーザーインターフェイス(操作、表示) • 計算処理、データベース • 3Gを含めたネットワーク → クラウドのサービスと連携

スマートフォン キャリヤ&

プロバイダー インターネット

3G回線 Bluetooth Smart

アプセサリー

SNSでのデータ共有 アドバイス通知 ポイント付加

AndroidではADK、Arduinoなどのフィジカルコンピューティングからの流れ

Page 6: Androidとi beacon(ble)

アプセサリーをめぐる環境 • Bluetooth 4.0(BLE) → Apple iPhone4S以降で採用 (Androidは4.3から) *NFCはAndroid系のみ • 通信チップの低価格化 • スマートフォン、タブレットの浸透 • ハードウェアのオープンソース化 → Makersの流行 Startup系クラウドファンディング→ 資金集め、制作バックアップ 個人やベンチャー系企業がアプセサリーを作る時代 Webサービスのベンチャーがサービスの一環で作成

Page 7: Androidとi beacon(ble)

Bluetooth Low Energy(BLE) • シングルモード(Bluetooth Classicとの互換性無し) • 低消費電力(ボタン電池で駆動) • 高速接続(3チャンネルでアドバタイジング 6ms) • データは37チャンネルで送信(周波数ホッピング) • 小型化(1チップの無線モジュール+センサ) • 少ないデータを低速で 低速(305kbps) 短いパケット47オクテット(データ部 37オクテット) ・ 新規格Bluetooth4.1への移行も簡単(ファーム書換のみ 技適は?)

L2CAP ATT SM

GATT Profile GAP

Application

技適領域

Characteristic

Characteristic

Service Profile

Characteristic

Characteristic

Service

Page 8: Androidとi beacon(ble)

BLEプロファイル • アラート通知 (Alert Notification)。 • 血圧計 (Blood Pressure)。 • 自転車のパワーメータ (Cycling Power)。 • 自転車の速度とペダル回転数 (Cycling Speed and Cadence)。 • デバイスの発見 (Find Me) • 血糖値 (Glucose) • 体温計 (Health Thermometer) • 心拍 (Heart Rate) • 入力装置 (HID OVER GATT) • 位置と経路誘導 (Location and Navigation) • 電話の警告(Phone Alert Status) • 近接 (Proximity) • ランナーの速度とペース (Running Speed and Cadence) • 時刻 (Time)

Bluetooth SIGに申請すれば採用される → 早いもの勝ち!

Page 9: Androidとi beacon(ble)

Bluetooth Classicとの違い

• 接続台数が無限大(Classicは7台まで) • ペアリングが無くても良い(セキュアな通信時には必要) • 低速( 305kbps ) • オーディオなどのストリーム系データ通信は向かない

Page 10: Androidとi beacon(ble)

BLEの仕組み

• セントラル - ペリフェラル

• 低速(305kbps) 短いパケット47オクテット(データ部 37オクテット) • アドバタイザパケット(チャンネル37,38,39) MFi不要(iPhone) • プロトコルサービス(プロファイル) Bluetooth SIGに企業が提出→承認

Central Peripheral

Advertise

Connect Connected Data Transfer

AdvertiseでService UUID通知

Page 11: Androidとi beacon(ble)

BLEモジュール

コスト、技適の問題 → 安価で技適取得済みのモジュール • BlueGiga(BLE112) • Laird(BL600) • アプリックス • Braveridge @1000ぐらい コアチップメーカー TI( CC2541)とNordic Semiconductor( nRF51) KONASHI、 REBLE112WB(モジュールボード)

Page 12: Androidとi beacon(ble)

BLEモジュールのメリット

• @1000円ぐらい • CPUコアチップ 8051,ARM + メモリも豊富 • GPIO、アナログ入力、PWM、I2C、SPIなどIO盛りだくさん • Basicで制御(+ATコマンド) → Arduino感覚で制御可能 センサとボタン電池付ければOK →これ1個で十分じゃないの?

Page 13: Androidとi beacon(ble)

Braveridgeのモジュール

BLEモジュール+センサ ・ BVMCN5102-Ap_AX 3軸加速度センサー ・ BVMCN5102-Ap_E 温度/湿度センサー/気圧センサー ・ BVMCN5102-Ap_XGM 加速度/ジャイロ/磁気の9軸センサー アプセサリーとして基本的なハードは実装済み → ファームに独自の機能を追加するのみ センサ制御ライブラリ供給、 nRF51822 SDK供給 http://www.nordicsemi.com/jpn/node_206/node_305/Product-Related-News/ODM-Braveridge-nRF51822-Bluetooth-low-energy

Page 14: Androidとi beacon(ble)

iBeaconについて

• Appleの独自規格 iOS7より (Android4.4でも実装可能) • アドバタイズメント・パケット(ブロードキャスト送信)を利用 • トリガ(領域入出)でiOSアプリの制御が可能 • Passbookとの連携(iOS) Passbookに入れたクーポンが使える店舗に近づくと、 「クーポン使えます」と通知

Page 15: Androidとi beacon(ble)

iBeaconの情報

アドバタイズメント・パケットにIDを埋め込む データ構成 UUID, major, miner, RSSI(電波強度) UUID,major,minerで位置を特定する UUID(会社ID)、major(店舗)、miner(テーブル) 電波強度で近接を検出(自由空間伝搬損失より距離に換算) iOSでは(Far,Near,Imidiateの3種類) →ざっくりとした情報でしかない(人、周辺環境で変化する)

Page 16: Androidとi beacon(ble)

iBeacon機器

estimote http://estimote.com/?gclid=CMnU-ODY4boCFUQgpQodHnYAIg 壁とかテーブルに置く 技適通してない orz その他 AKAbeacon(G.Clue)

Page 17: Androidとi beacon(ble)

AndroidとBLE

4.3から対応 KitKat(4.4) (それまでメーカーが独自で実装) 対応機種 Nexus7(2013)、Nexsus4、Nexus5(2013/11現在) →今後の機種で増えていくと予想されます Centralのみ(発信できない為Android端末間通信は出来ない) API仕様 http://developer.android.com/guide/topics/connectivity/bluetooth-le.html

サンプルプログラム(SDKのダウンロードで取得) ¥samples¥android-18¥legacy¥BluetoothLeGatt)

Page 18: Androidとi beacon(ble)

AndroidでiBeacon 簡単に実装できます AndroidManifest.xml <uses-permission android:name="android.permission.BLUETOOTH"/> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> <uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/> BluetoothManager からmBluetoothAdapterを取得 mBluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); mBluetoothAdapter = mBluetoothManager.getAdapter(); 取得時のコールバック関数を登録してスキャン開始 mBluetoothAdapter.startLeScan(mLeScanCallback); コールバックで判定 private BluetoothAdapter.LeScanCallback mLeScanCallback = new BluetoothAdapter.LeScanCallback() { @Override public void onLeScan(final BluetoothDevice device, int rssi,byte[] scanRecord) { //UUID,major,miner(scanRecordより)、RSSIの判定処理 } }

Page 19: Androidとi beacon(ble)

iBeaconデータ判定 iBeacon アドバタイズメント・パケット(コールバックの戻り値より判定) 02 01 1A フラグ 1A FF AD Type 4C 00 会社ID(Apple) 02 15 ?? ID UUID(16バイト) Major(4バイト) Minor(4バイト) RSSI 電波強度(dB) *Estimoteの場合UUID= B9407F30-F5F8-466E-AFF9-25556B57FE6D 距離の近似計算(ほんとうにざっくりとした…) 1m離れたときの電波強度-59dB(基準----本当はキャリブレーション必要) 10m離れると-20dB減衰 距離 = 1 - (RSSI+59)*10/20

ここまでは固定

Page 20: Androidとi beacon(ble)

スキャンした結果

Estimoteをスキャンした 装置名 UUID、Major、Miner RSSI が取得できた

Page 21: Androidとi beacon(ble)

iBeacon注意点

受信待機状態ではスマートフォンの結構電力消費します どこでアプリを起動させるかがポイント(常時ONはムリ) iPhone5以降は消費しないという話も(未確認) 距離はあくまでも目安 エリア内にいるかの判定、30cmの出し入れ判定が妥当? 店舗に入る → お店情報 商品に近づく → クーポン発行 UUIDが偽装できる? → セキュリティ的にどうなのよ

Page 22: Androidとi beacon(ble)

スマフォアプリ+サービスの可能性

• クラウドサービスとの連携 • ハードウェアのオープンソース化 • iOSとAndroidで対応可能(NFCとの違い)

自前のサービスとの連携 API公開、SDK配布 OAuth + RESTful APIでアクセス NIKE http://developer.nike.com/ Fitbit http://dev.fitbit.com/

Page 23: Androidとi beacon(ble)

まとめ • iBeacon… 微妙 大丈夫かな?? • BLE話題的には来年が旬(日本 海外では2年前から) • アイデア次第で早い者勝ち • チップが安くなるのでハード屋以外も手出し易くいなる →アプリケーション、サービス開発側からのアプローチ

• 確実に浸透 白物家電に標準搭載? ベンチャー系企業のチャンス (大手の開発スケジュール、フットワークでは遅すぎる) 福岡(九州)から世界に向けて あっと驚く製品、アプリをリリースしようぜ!