bluetooth le +スマートフォン勉強会@関西(2013年11月2日)

Post on 22-May-2015

40.163 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

iPhoneとBluetooth LEのこれまでの流れと、iOS7から統合されたiBeaconとANCSについてのプレゼンテーションです。

TRANSCRIPT

Bluetooth Low Energy + スマートフォン勉強会@関西

!11月2日

!(合)わふう 上原 昭宏

目次

• Bluetooth Low Energyって?

• アクセサリ、アクセサリ、アクセサリ

• iBeacon, Passbook

• Apple Notification Service Center

Bluetooth LE

Bluetooth LE

Bluetooth LE

Bluetoothの歴史

2007 V2.1 EDR

2009 V3.0 High Speed

Bluetoothの歴史

2007 V2.1 EDR

2009 V3.0 High Speed

2004 Bluetooth Low End Extension

2006 Wibree

Bluetoothの歴史

2007 V2.1 EDR

2009 V3.0 High Speed

2010 V4.0 Low Energy

2004 Bluetooth Low End Extension

2006 Wibree

Bluetoothの歴史

2007 V2.1 EDR

2009 V3.0 High Speed

2004 Bluetooth Low End Extension

2006 Wibree

2010 V4.0 Low Energy

!= 3.0 + LE

!!!!!

Low Energy

後方互換性

後方互換性

2010 V4.0 Low Energy

!= 3.0 + LE

!!!!!

後方互換性

2010 V4.0 Low Energy

!= 3.0 + LE

!!!!!

Low Energy

後方互換性

2010 V4.0 Low Energy

!= 3.0 + LE

!!!!!

Low Energy

シングルモード・デバイス

後方互換性

2010 V4.0 Low Energy

!= 3.0 + LE

!!!!!

Low Energy

シングルモード・デバイスクラシックBTと接続不可

後方互換性

2010 V4.0 Low Energy

!= 3.0 + LE

!!!!!

Low Energy

シングルモード・デバイスクラシックBTと接続不可

後方互換性

2010 V4.0 Low Energy

!= 3.0 + LE

!!!!!

Low Energy

シングルモード・デバイスクラシックBTと接続不可

デュアルモード・デバイス (iPhoneとか)

BLEまとめ• Bluetooth4.0で規格統合、別の技術

• 低頻度、少量データ通信、超低消費電力無線通信

• コイン型電池1つで年単位の無線通信

• 電池交換の頻度↓、使い捨て可能な製造コスト

• スマフォ向き

iOSとBLE• 2011年 iPhone4s 世界初のBLE対応機種

• iOS5 CoreBluetoothフレームワーク公開

• iOS6 ペリフェラル・モードもサポート

• iOS7 iBeacon, Apple Notification Center Service …

BLEと利用場面• 個人持ち、フィットネスとか時計的な

• ソーシャル系、鍵とか自転車の共有とか

• 業務系、なんかあったっけ…

• IO拡張系、フィジカルコンピューティングとか

• iBeacon、雰囲気エリア系

BLEと利用場面• ハブデバイス(スマートフォン)ありき

• 所有者

• 個人、一般に共有(店舗設置、公共物)

• 接続形式

• 接続(読み書き)、ビーコン(ブロードキャスト)

http://flip.it/HQWy9

ハードウェア? サービス?

カスタムなハードウェア• 構成要素: アプリ+ファームウェア+ハードウェア

• ハードウェア→Arduino、ブレッドボード的な

• ファームウェア→ RFduino, konashi, SBBLE(http://sbble.micutil.com)

• アプリ → ドライバ的な…

カスタムなハードウェア

カスタムなハードウェア

あきらめろ

カスタムなハードウェア

あきらめろ

カスタムなハードウェア

あきらめろ

Objective-Cに染まれ

iBeacon

iBeaconの資料• サンプルソースコード

• https://github.com/reinforce-lab/CoreBluetooth_samples

• スライド

• http://www.slideshare.net/reinforcelab/

• 解説(ブログ記事)

• http://reinforce-lab.github.io/blog/2013/10/21/ibeacon/

iBeaconってなに?• Bluetooth LEを利用した、領域と近接検出

• iOSが監視してくれる(アプリを起こしてくれる)

• 位置をトリガにしたサービスに汎用に使える

• イメージ的にオレオレGPSを設置できる感じ

iBeaconはそれじゃない• 金融、決済の仕組みではない

• NFC(電磁誘導,負荷変調方式)、関係ない

• 工夫で、そういう使い方は実現できるけど

• “いまは"、常時モニタは無理(電池的に)

• ユーザの行動をトリガにするとか

Ad

Ad

Ad

Ad

Ad

ペリフェラル

セントラル

Ad

受信

Ad

Ad

Ad

Ad

ペリフェラル

セントラル

Ad Ad

受信

Ad

Ad

Ad

Ad

ペリフェラル

セントラル

Ad Ad

受信

Ad

Ad

Ad

Ad

ペリフェラル

セントラル

Ad Ad

受信

Ad

Ad

Ad

Ad

接続処理

ペリフェラル

セントラル

• デバイス発見の仕組み利用

Ad Ad

受信

Ad

Ad

Ad

Ad

接続処理

ペリフェラル

セントラル

• デバイス発見の仕組み利用

• 受信は電力を食う

Ad Ad

受信

Ad

Ad

Ad

Ad

接続処理

ペリフェラル

セントラル

iOSアプリケーション• CoreLocationフレームワークに統合

• アプリができること

• 発信、ビーコン

• 受信、領域監視と距離推定

• 128-bitの識別子、16ビットのmajor/minor番号

Passbookとの連携

• ロック画面表示時に該当するパスを表示

• 128-bit UUIDでマッチング

Passbookのデモ

iPhoneの設定

iPhoneの設定

Passbookの入手(1/2)パス発行URL

https://pass.is/1B7fvaX1VrrZMqn

Passbookの入手(1/2)パス発行URL

https://pass.is/1B7fvaX1VrrZMqn

Passbookの入手(1/2)パス発行URL

https://pass.is/1B7fvaX1VrrZMqn

Passbookの入手(2/2)

Passbookの入手(2/2)

Passbookの入手(2/2)

Passbookの入手(2/2)

Passbookの入手(2/2)

Passbookの入手(2/2)

Passbookの入手(2/2)

Passbookの入手(2/2)

Passbookの入手(2/2)

Passbookの入手(2/2)

Passbookの入手(2/2)

Passbookの入手(2/2)

Passbookの入手(2/2)

表示確認

表示確認位置アイコンが表示されます

表示確認位置アイコンが表示されます

iBeacon+iOSアプリ

リージョン監視• 監視対象

• UUIDでフィルタリング、major/minorは任意

• アプリあたりUUID20が上限値 (iOS 7.0.2)

• 監視開始時にビーコン範囲内 → in通知がこない

• 通知は、領域を”またいだ時”に発生する

• ビーコンの領域からでると、exit通知

• 20秒以上、200m以上のエリア移動、実際35~50秒位

リージョン監視DetectorViewController.m

リージョン監視DetectorViewController.m

UUIDの生成

• Mac OSで、uuidgen コマンド

バックグラウンド動作• バックグラウンド・モード

• 領域に入る/出るの通知 (10秒の処理時間)

• 電力を消費し続ける (4sだと1日で50%)

• ビーコン領域監視のスタート

• 地理的な領域監視 (最も荒いモードで)

• Passbook連携、アプリがフォアグラウンド

バックグラウンド・モード

レンジング• 監視対象

• UUIDおよびmajor/minorでフィルタリング

• 上限は不明(180は登録できた)

• 振る舞い

• 1秒ごとに、検出したビーコンの配列を通知

• 同じビーコンでも、1秒後のインスタンスは別物

• 同じビーコンの通知が2つあることが稀にあるらしい

• ランダムアドレスでアドレス値が変更するため

レンジングDetectorViewController.m

start/stopの呼び出し順番• レンジングの通知が止まらない

• リージョン監視の開始 → (リージョンに入る) → レンジングの開始 → レンジングの停止 → リージョン監視の停止

• 問題ない

• リージョン監視、レンジングを、どちらかだけ利用

• リージョン監視の開始 → (リージョンに入る) → レンジングの開始 → リージョン監視の停止 → レンジングの停止

Passbookでの利用• Passbook Package Format Reference

• https://developer.apple.com/library/ios/documentation/UserExperience/Reference/PassKit_Bundle/Chapters/Introduction.html

Passbookでの利用• Passbook Package Format Reference

• https://developer.apple.com/library/ios/documentation/UserExperience/Reference/PassKit_Bundle/Chapters/Introduction.html

• UUID/major/minor

• ロック画面表示名

• いくつでも

!

• http://passkit.com

ビーコン

• CoreBluetoothフレームワークを使う

• パケットのデータは、CLBeaconRegionで生成

バックグラウンド動作

• 無理

パケット構造

パケット構造

パケット構造

パケット構造

• 02 01 1A

• AD Type 0x01, flag,

• General Discoverable Mode,

• Simultaneous LE and BR/EDR to Same Device Capable (Controller)

• Simultaneous LE and BR/EDR to Same Device Capable (Host)

パケット構造

!

• 1A FF 4C 00 02 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EC 4A 17 A5 C5

• AD Type|会社ID | 不明 | UUID |major| minior|RSSI

• UUID, major, minor, RSSIはビッグエンディアン

• RSSIはデフォルト値-59dBm (1m離れたところでのRSSI)

ハードウェア

http://estimote.com

https://www.sticknfind.com

アプリのインストール• ソースコード

• https://db.tt/S0Wp3U8q (Dropbox zip形式)

• http://goo.gl/8DqaVK (Github)

• インストール

• iBeacon/simpleBeacon.xcodeproj

• Xcode5でシミュレータのBLEサポートなくなる

ビーコン(発信) ビーコンの受信 Bluetooth LE のアドバタイズメント

のダンプ

メソッド呼び出しのダンプ

ビーコン(発信) ビーコンの受信 Bluetooth LE のアドバタイズメント

のダンプ

ビーコンの受信

• ReginをON

• 位置の利用を許可 • RangingをON

• どなたか、ビーコン発信?

!

• ビーコン:UUID/Major/Minor

• Proximity:おおよその距離

• RSSI 受信信号(対数 dBm)

• Accuracy:だいたいの精度(m)

ビーコンの受信

• ReginをON

• 位置の利用を許可 • RangingをON

• どなたか、ビーコン発信?

!

• ビーコン:UUID/Major/Minor

• Proximity:おおよその距離

• RSSI 受信信号(対数 dBm)

• Accuracy:だいたいの精度(m)

ビーコンの受信

• ReginをON

• 位置の利用を許可 • RangingをON

• どなたか、ビーコン発信?

!

• ビーコン:UUID/Major/Minor

• Proximity:おおよその距離

• RSSI 受信信号(対数 dBm)

• Accuracy:だいたいの精度(m)

ビーコンの受信

• ReginをON

• 位置の利用を許可 • RangingをON

• どなたか、ビーコン発信?

!

• ビーコン:UUID/Major/Minor

• Proximity:おおよその距離

• RSSI 受信信号(対数 dBm)

• Accuracy:だいたいの精度(m)

ビーコンの受信

• ReginをON

• 位置の利用を許可 • RangingをON

• どなたか、ビーコン発信?

!

• ビーコン:UUID/Major/Minor

• Proximity:おおよその距離

• RSSI 受信信号(対数 dBm)

• Accuracy:だいたいの精度(m)

ビーコンの受信

• ReginをON

• 位置の利用を許可 • RangingをON

• どなたか、ビーコン発信?

!

• ビーコン:UUID/Major/Minor

• Proximity:おおよその距離

• RSSI 受信信号(対数 dBm)

• Accuracy:だいたいの精度(m)

ビーコン(発信)

パスを入手は、パスのリンク先 ビーコンのSWで、ビーコン発信

ビーコン(発信)

パスを入手は、パスのリンク先 ビーコンのSWで、ビーコン発信

ビーコン(発信)

パスを入手は、パスのリンク先 ビーコンのSWで、ビーコン発信

ビーコン(発信)

パスを入手は、パスのリンク先 ビーコンのSWで、ビーコン発信

Bluetooth LE のアドバタイズメント

のダンプ

• Bluetooth LEの生パケット

• ビーコンの情報はフィルタ • 30ミリ秒ごとにでているので

Bluetooth LE のアドバタイズメント

のダンプ

• Bluetooth LEの生パケット

• ビーコンの情報はフィルタ • 30ミリ秒ごとにでているので

Apple Notification Center Service !

ANCS

ANCSとは• Bluetooth LEを利用した通知技術

• iOSの通知をBLEデバイスに伝える汎用の仕組み

• 電話やメール着信、位置変化、ファイナンス…

• 意味付けは拡張/変更どんどんありそう

• あきらかにiWatch自社向け開発してますな…

資料

• Apple公式 https://developer.apple.com/library/ios/documentation/CoreBluetooth/Reference/AppleNotificationCenterServiceSpecification/

• ブログ http://reinforce-lab.github.io/blog/2013/10/28/ancs/

• サンプルコード https://github.com/reinforce-lab/CoreBluetooth_samples/tree/master/ANCS/

試作

• 周辺機器の試作

• いきなりカスタムハードは辛い、iOSで試作

• iOS7はiOSが管轄、アプリはさわれない

• iOS6なら触れる、これで試作するのがいい

まとめ

• iPhoneとBluetooth LE

• iOS5、iOS6、そしてiOS7

• 周辺機器、ハード利用サービス、クラウド

• モバイルから、気配、雰囲気、センサークラウド

top related