20131026 i beaconワークショップ

38,830 views
38,645 views

Published on

iBeaconの体験と、SDKの解説。iOSアプリとPassbook連携について。

Published in: Technology
0 Comments
23 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
38,830
On SlideShare
0
From Embeds
0
Number of Embeds
24,480
Actions
Shares
0
Downloads
123
Comments
0
Likes
23
Embeds 0
No embeds

No notes for slide

20131026 i beaconワークショップ

  1. 1. iBeacon体験講座(iOS):iOS開発者向け ドリームコア 1F モバイル・コア 10月25日 ! (合)わふう 上原 昭宏 (有)トリガーデバイス 佐藤 忠彦
  2. 2. 目次 • iBeaconのデモンストレーション • Bluetooth Low Energyって? • iOSアプリのビーコンの発信と受信 • Passbookとの連携
  3. 3. デモンストレーション • Passbookとの連携 • サンプルiOSアプリケーションを動かす
  4. 4. 今回の資料 • サンプルソースコード • https://github.com/reinforce-lab/ CoreBluetooth_samples • スライド • http://www.slideshare.net/reinforcelab/ • 解説(ブログ記事) • http://reinforce-lab.github.io/blog/2013/10/21/ibeacon/
  5. 5. Passbookとの連携 • できること • ロック画面表示時にパスを表示 • デモンストレーション • パスを入手 • ビーコンの表示
  6. 6. iPhoneの設定
  7. 7. iPhoneの設定
  8. 8. iPhoneの設定
  9. 9. Passbookの入手(1/2) パス発行URL https://pass.is/1B7fvaX1VrrZMqn
  10. 10. Passbookの入手(1/2) パス発行URL https://pass.is/1B7fvaX1VrrZMqn
  11. 11. Passbookの入手(1/2) パス発行URL https://pass.is/1B7fvaX1VrrZMqn
  12. 12. Passbookの入手(2/2)
  13. 13. Passbookの入手(2/2)
  14. 14. Passbookの入手(2/2)
  15. 15. Passbookの入手(2/2)
  16. 16. Passbookの入手(2/2)
  17. 17. Passbookの入手(2/2)
  18. 18. Passbookの入手(2/2)
  19. 19. Passbookの入手(2/2)
  20. 20. Passbookの入手(2/2)
  21. 21. Passbookの入手(2/2)
  22. 22. Passbookの入手(2/2)
  23. 23. Passbookの入手(2/2)
  24. 24. Passbookの入手(2/2)
  25. 25. 表示確認
  26. 26. 表示確認 位置アイコンが表示されます
  27. 27. 表示確認 位置アイコンが表示されます
  28. 28. iOSアプリケーション • 役割とできること • 発信、ビーコン • 受信、領域監視と距離推定 • デモンストレーション • アプリケーションを起動
  29. 29. アプリのインストール • ソースコード • https://db.tt/S0Wp3U8q (Dropbox zip形式) • http://goo.gl/8DqaVK (Github) • インストール • iBeacon/simpleBeacon.xcodeproj • Xcode5でシミュレータのBLEサポートなくなる
  30. 30. ビーコン(発信) ビーコンの受信 Bluetooth LE のアドバタイズメント のダンプ
  31. 31. メソッド呼び出しのダンプ ビーコン(発信) ビーコンの受信 Bluetooth LE のアドバタイズメント のダンプ
  32. 32. パスを入手は、パスのリンク先 ビーコンのSWで、ビーコン発信 ビーコン(発信)
  33. 33. パスを入手は、パスのリンク先 ビーコンのSWで、ビーコン発信 ビーコン(発信)
  34. 34. パスを入手は、パスのリンク先 ビーコンのSWで、ビーコン発信 ビーコン(発信)
  35. 35. パスを入手は、パスのリンク先 ビーコンのSWで、ビーコン発信 ビーコン(発信)
  36. 36. ビーコン(発信) ビーコンの受信 Bluetooth LE のアドバタイズメント のダンプ
  37. 37. • ReginをON • 位置の利用を許可 • RangingをON • どなたか、ビーコン発信? ! ビーコンの受信 • ビーコン:UUID/Major/Minor • Proximity:おおよその距離 • RSSI 受信信号(対数 dBm) • Accuracy:だいたいの精度(m)
  38. 38. • ReginをON • 位置の利用を許可 • RangingをON • どなたか、ビーコン発信? ! ビーコンの受信 • ビーコン:UUID/Major/Minor • Proximity:おおよその距離 • RSSI 受信信号(対数 dBm) • Accuracy:だいたいの精度(m)
  39. 39. • ReginをON • 位置の利用を許可 • RangingをON • どなたか、ビーコン発信? ! ビーコンの受信 • ビーコン:UUID/Major/Minor • Proximity:おおよその距離 • RSSI 受信信号(対数 dBm) • Accuracy:だいたいの精度(m)
  40. 40. • ReginをON • 位置の利用を許可 • RangingをON • どなたか、ビーコン発信? ! ビーコンの受信 • ビーコン:UUID/Major/Minor • Proximity:おおよその距離 • RSSI 受信信号(対数 dBm) • Accuracy:だいたいの精度(m)
  41. 41. • ReginをON • 位置の利用を許可 • RangingをON • どなたか、ビーコン発信? ! ビーコンの受信 • ビーコン:UUID/Major/Minor • Proximity:おおよその距離 • RSSI 受信信号(対数 dBm) • Accuracy:だいたいの精度(m)
  42. 42. • ReginをON • 位置の利用を許可 • RangingをON • どなたか、ビーコン発信? ! ビーコンの受信 • ビーコン:UUID/Major/Minor • Proximity:おおよその距離 • RSSI 受信信号(対数 dBm) • Accuracy:だいたいの精度(m)
  43. 43. ビーコン(発信) ビーコンの受信 Bluetooth LE のアドバタイズメント のダンプ
  44. 44. • Bluetooth LEの生パケット • ビーコンの情報はフィルタ • 30ミリ秒ごとにでているので Bluetooth LE のアドバタイズメント のダンプ
  45. 45. • Bluetooth LEの生パケット • ビーコンの情報はフィルタ • 30ミリ秒ごとにでているので Bluetooth LE のアドバタイズメント のダンプ
  46. 46. Bluetooth Low Energy
  47. 47. Bluetoothの歴史
  48. 48. Bluetoothの歴史
  49. 49. Bluetoothの歴史 2007 V2.1 EDR

  50. 50. Bluetoothの歴史 2007 V2.1 EDR
 2009 V3.0 High Speed

  51. 51. Bluetoothの歴史 2007 V2.1 EDR
 2009 V3.0 High Speed
 2010 V4.0 Low Energy

  52. 52. Bluetoothの歴史 2007 V2.1 EDR
 2004 Bluetooth Low End Extension
 2009 V3.0 High Speed
 2010 V4.0 Low Energy

  53. 53. Bluetoothの歴史 2007 V2.1 EDR
 2004 Bluetooth Low End Extension
 2009 V3.0 High Speed
 2006 Wibree 2010 V4.0 Low Energy

  54. 54. Bluetoothの歴史 2007 V2.1 EDR
 2009 V3.0 High Speed
 2010 V4.0 Low Energy
 V4.0 Low Energy ! = 3.0 + LE 2004 Bluetooth Low End Extension
 2006 ! ! ! ! ! Wibree 

  55. 55. Bluetoothの歴史 2007 V2.1 EDR
 2009 V3.0 High Speed
 2010 V4.0 Low Energy
 V4.0 Low Energy ! = 3.0 + LE 2004 Bluetooth Low End Extension
 2006 Wibree ! ! ! ! ! Low Energy 

  56. 56. Bluetooth SMART ロゴ • SMART / SMART READY
  57. 57. ペリフェラルの発見 Ad Ad Ad Ad • アドバタイズメント • パケットを送信 • 20ミリ秒~1.3秒周期 • デバイス名などの情報
  58. 58. ペリフェラル セントラル Ad t t Ad Ad Ad Ad
  59. 59. ペリフェラル セントラル Ad 受信 t t Ad Ad Ad Ad
  60. 60. ペリフェラル セントラル Ad Ad 受信 t t Ad Ad Ad Ad
  61. 61. ペリフェラル セントラル Ad Ad 受信 t t Ad Ad Ad Ad
  62. 62. ペリフェラル セントラル Ad Ad 受信 接続 t 処理 t Ad Ad Ad Ad
  63. 63. ペリフェラル セントラル Ad Ad 受信 接続 t 処理 t Ad • 消費電力 Ad Ad Ad
  64. 64. ペリフェラル セントラル Ad Ad 受信 接続 t 処理 t Ad Ad Ad Ad • 消費電力 • 受信はとても食う
  65. 65. ペリフェラル セントラル Ad Ad 受信 接続 t 処理 t Ad Ad Ad Ad • 消費電力 • 受信はとても食う • 受信の時間が長い
  66. 66. ペリフェラル セントラル Ad Ad 受信 接続 t 処理 t Ad Ad Ad Ad • 消費電力 • 受信はとても食う • 受信の時間が長い • セントラルの役目
  67. 67. CoreLocation
  68. 68. バックグラウンド・モード
  69. 69. UUIDの生成 • Mac OSで、uuidgen コマンド
  70. 70. リージョン監視 DetectorViewController.m
  71. 71. リージョン監視 DetectorViewController.m
  72. 72. リージョン監視 • 監視対象 • • UUIDでフィルタリング、major/minorは任意 アプリあたり20が上限値 (iOS 7.0.2) • 監視開始時にビーコン範囲内 → in通知がこない • 通知は、領域を”またいだ時”に発生する • ビーコンの領域からでると、exit通知 • 20秒以上、200m以上のエリア移動、実際35∼50秒位
  73. 73. バックグラウンド動作 • バックグラウンド・モード • 領域に入る/出るの通知 (10秒の処理時間) • 電力を消費し続ける (4sだと1日で50%) • ビーコン領域監視のスタート • 地理的な領域監視 (最も荒いモードで) • Passbook連携、アプリがフォアグラウンド
  74. 74. レンジング DetectorViewController.m
  75. 75. レンジング • 監視対象 • • UUIDおよびmajor/minorでフィルタリング 上限は不明(180は登録できた) • 振る舞い • 1秒ごとに、検出したビーコンの配列を通知 • 同じビーコンでも、1秒後のインスタンスは別物 • 同じビーコンの通知が2つあることが稀にあるらしい • ランダムアドレスでアドレス値が変更するため
  76. 76. start/stopの呼び出し順番 • レンジングの通知が止まらない • リージョン監視の開始 → (リージョンに入る) → レンジン グの開始 → レンジングの停止 → リージョン監視の停止 • 問題ない • リージョン監視、レンジングを、どちらかだけ利用 • リージョン監視の開始 → (リージョンに入る) → レンジン グの開始 → リージョン監視の停止 → レンジングの停止
  77. 77. Passbook
  78. 78. Passbookでの利用 • Passbook Package Format Reference • https://developer.apple.com/library/ios/documentation/UserExperience/ Reference/PassKit_Bundle/Chapters/Introduction.html
  79. 79. 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
  80. 80. ビーコン
  81. 81. パケット構造
  82. 82. パケット構造
  83. 83. パケット構造
  84. 84. パケット構造 • 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)
  85. 85. パケット構造 ! • • 1A FF • UUID, major, minor, RSSIはビッグエンディアン • RSSIはデフォルト値-59dBm (1m離れたところでのRSSI) 4C 00 02 15 AD Type|会社ID | 不明 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EC 4A 17 A5 C5 UUID |major| minior|RSSI
  86. 86. バックグラウンド動作 • 無理
  87. 87. ハードウェア http://estimote.com https://www.sticknfind.com

×