115
Bluetooth Low Energy + スマートフォン勉強会@関西 11月2日 (合)わふう 上原 昭宏

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

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

!11月2日

!(合)わふう 上原 昭宏

Page 2: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

目次

• Bluetooth Low Energyって?

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

• iBeacon, Passbook

• Apple Notification Service Center

Page 3: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Bluetooth LE

Page 4: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Bluetooth LE

Page 5: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Bluetooth LE

Page 6: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Bluetoothの歴史

2007 V2.1 EDR

2009 V3.0 High Speed

Page 7: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Bluetoothの歴史

2007 V2.1 EDR

2009 V3.0 High Speed

2004 Bluetooth Low End Extension

2006 Wibree

Page 8: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Bluetoothの歴史

2007 V2.1 EDR

2009 V3.0 High Speed

2010 V4.0 Low Energy

2004 Bluetooth Low End Extension

2006 Wibree

Page 9: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

Page 10: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

後方互換性

Page 11: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

後方互換性

2010 V4.0 Low Energy

!= 3.0 + LE

!!!!!

Page 12: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

後方互換性

2010 V4.0 Low Energy

!= 3.0 + LE

!!!!!

Low Energy

Page 13: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

後方互換性

2010 V4.0 Low Energy

!= 3.0 + LE

!!!!!

Low Energy

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

Page 14: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

後方互換性

2010 V4.0 Low Energy

!= 3.0 + LE

!!!!!

Low Energy

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

Page 15: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

後方互換性

2010 V4.0 Low Energy

!= 3.0 + LE

!!!!!

Low Energy

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

Page 16: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

後方互換性

2010 V4.0 Low Energy

!= 3.0 + LE

!!!!!

Low Energy

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

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

Page 17: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

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

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

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

• スマフォ向き

Page 18: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

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

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

• iOS7 iBeacon, Apple Notification Center Service …

Page 19: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

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

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

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

• iBeacon、雰囲気エリア系

Page 20: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

• 所有者

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

• 接続形式

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

Page 21: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

http://flip.it/HQWy9

Page 22: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

Page 23: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

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

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

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

Page 24: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

カスタムなハードウェア

Page 25: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

カスタムなハードウェア

あきらめろ

Page 26: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

カスタムなハードウェア

あきらめろ

Page 27: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

カスタムなハードウェア

あきらめろ

Objective-Cに染まれ

Page 28: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

iBeacon

Page 29: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

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

• スライド

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

• 解説(ブログ記事)

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

Page 30: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)
Page 31: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)
Page 32: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)
Page 33: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)
Page 34: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)
Page 35: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

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

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

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

Page 36: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

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

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

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

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

Page 37: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Ad

Ad

Ad

Ad

Ad

ペリフェラル

セントラル

Page 38: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Ad

受信

Ad

Ad

Ad

Ad

ペリフェラル

セントラル

Page 39: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Ad Ad

受信

Ad

Ad

Ad

Ad

ペリフェラル

セントラル

Page 40: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Ad Ad

受信

Ad

Ad

Ad

Ad

ペリフェラル

セントラル

Page 41: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Ad Ad

受信

Ad

Ad

Ad

Ad

接続処理

ペリフェラル

セントラル

Page 42: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

Ad Ad

受信

Ad

Ad

Ad

Ad

接続処理

ペリフェラル

セントラル

Page 43: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

• 受信は電力を食う

Ad Ad

受信

Ad

Ad

Ad

Ad

接続処理

ペリフェラル

セントラル

Page 44: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

• アプリができること

• 発信、ビーコン

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

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

Page 45: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Passbookとの連携

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

• 128-bit UUIDでマッチング

Page 46: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Passbookのデモ

Page 47: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

iPhoneの設定

Page 48: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

iPhoneの設定

Page 49: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

https://pass.is/1B7fvaX1VrrZMqn

Page 50: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

https://pass.is/1B7fvaX1VrrZMqn

Page 51: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

https://pass.is/1B7fvaX1VrrZMqn

Page 52: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Passbookの入手(2/2)

Page 53: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Passbookの入手(2/2)

Page 54: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Passbookの入手(2/2)

Page 55: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Passbookの入手(2/2)

Page 56: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Passbookの入手(2/2)

Page 57: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Passbookの入手(2/2)

Page 58: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Passbookの入手(2/2)

Page 59: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Passbookの入手(2/2)

Page 60: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Passbookの入手(2/2)

Page 61: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Passbookの入手(2/2)

Page 62: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Passbookの入手(2/2)

Page 63: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Passbookの入手(2/2)

Page 64: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Passbookの入手(2/2)

Page 65: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

表示確認

Page 66: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

Page 67: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

Page 68: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)
Page 69: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

iBeacon+iOSアプリ

Page 70: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

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

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

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

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

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

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

Page 71: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

リージョン監視DetectorViewController.m

Page 72: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

リージョン監視DetectorViewController.m

Page 73: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

UUIDの生成

• Mac OSで、uuidgen コマンド

Page 74: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

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

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

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

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

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

Page 75: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

Page 76: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

レンジング• 監視対象

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

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

• 振る舞い

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

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

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

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

Page 77: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

レンジングDetectorViewController.m

Page 78: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

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

• 問題ない

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

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

Page 79: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Passbookでの利用• Passbook Package Format Reference

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

Page 80: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

Page 81: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)
Page 82: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

ビーコン

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

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

Page 83: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

バックグラウンド動作

• 無理

Page 84: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

パケット構造

Page 85: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

パケット構造

Page 86: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

パケット構造

Page 87: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

パケット構造

• 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)

Page 88: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

パケット構造

!

• 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)

Page 89: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

ハードウェア

http://estimote.com

https://www.sticknfind.com

Page 90: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

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

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

• インストール

• iBeacon/simpleBeacon.xcodeproj

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

Page 91: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)
Page 92: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)
Page 93: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)
Page 94: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)
Page 95: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

のダンプ

Page 96: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

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

のダンプ

Page 97: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

ビーコンの受信

• ReginをON

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

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

!

• ビーコン:UUID/Major/Minor

• Proximity:おおよその距離

• RSSI 受信信号(対数 dBm)

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

Page 98: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

ビーコンの受信

• ReginをON

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

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

!

• ビーコン:UUID/Major/Minor

• Proximity:おおよその距離

• RSSI 受信信号(対数 dBm)

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

Page 99: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

ビーコンの受信

• ReginをON

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

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

!

• ビーコン:UUID/Major/Minor

• Proximity:おおよその距離

• RSSI 受信信号(対数 dBm)

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

Page 100: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

ビーコンの受信

• ReginをON

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

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

!

• ビーコン:UUID/Major/Minor

• Proximity:おおよその距離

• RSSI 受信信号(対数 dBm)

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

Page 101: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

ビーコンの受信

• ReginをON

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

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

!

• ビーコン:UUID/Major/Minor

• Proximity:おおよその距離

• RSSI 受信信号(対数 dBm)

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

Page 102: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

ビーコンの受信

• ReginをON

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

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

!

• ビーコン:UUID/Major/Minor

• Proximity:おおよその距離

• RSSI 受信信号(対数 dBm)

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

Page 103: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

ビーコン(発信)

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

Page 104: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

ビーコン(発信)

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

Page 105: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

ビーコン(発信)

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

Page 106: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

ビーコン(発信)

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

Page 107: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

のダンプ

• Bluetooth LEの生パケット

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

Page 108: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

のダンプ

• Bluetooth LEの生パケット

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

Page 109: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

Apple Notification Center Service !

ANCS

Page 110: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)
Page 111: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)
Page 112: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

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

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

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

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

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

Page 113: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

資料

• 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/

Page 114: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

試作

• 周辺機器の試作

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

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

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

Page 115: Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)

まとめ

• iPhoneとBluetooth LE

• iOS5、iOS6、そしてiOS7

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

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