ibeacon #yidev

53
iBeacon @nolili #yidev

Upload: nolili

Post on 05-Jul-2015

14.696 views

Category:

Technology


2 download

DESCRIPTION

yidev第十四回勉強会で発表した、iBeaconの基本と、その背後にある技術の解説資料です。詳細のTranscriptは後日blogで公開を予定しています。

TRANSCRIPT

Page 1: iBeacon #yidev

iBeacon@nolili #yidev

Page 2: iBeacon #yidev

http://gigazine.net/news/20130911-ibeacon/

Page 3: iBeacon #yidev
Page 4: iBeacon #yidev

次世代の!無線通信技術

Page 5: iBeacon #yidev

_人人 人人_> 結局何だ<‾Y^Y^Y^Y‾

Page 6: iBeacon #yidev

3行でまとめると

Page 7: iBeacon #yidev

Bluetooth LEを使用した!マイクロ・ロケーションサービス!

(iOSのサポートつき)

Page 8: iBeacon #yidev
Page 9: iBeacon #yidev

ID 100

ID 200

ID 300

Page 10: iBeacon #yidev

UUID

UUID

UUID

Page 11: iBeacon #yidev

UUID!7A1275A4-78B1-4A18-888E-21F550CFB0FE

Page 12: iBeacon #yidev

RegionMonitoring

Ranging

Configure

Page 13: iBeacon #yidev

RegionMonitoring

Ranging

Configure

今いる場所はUUID xxxx のBeaconのエリア?

UUID xxxx Beaconとの距離は?

そうだ、iPhoneをBeaconにしよう

Page 14: iBeacon #yidev

RegionMonitoring今いる場所はUUID xxxx のBeaconのエリア?

Page 15: iBeacon #yidev

CLLocationManager -(void)startMonitoringForRegion:(CLRegion *)region

Page 16: iBeacon #yidev

CLBeaconRegion - (id)initWithProximityUUID:(NSUUID *)proximityUUID identifier:(NSString *)identifier;

NSUUID!7A1275A4-78B1-4A18-888E-21F550CFB0FE

Page 17: iBeacon #yidev

$ uuidgen7A1275A4-78B1-4A18-888E-21F550CFB0FE

Page 18: iBeacon #yidev

NSUUID!7A1275A4-78B1-4A18-888E-21F550CFB0FE

CLLocationManagerDelegate - (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region - (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region

didEnterRegion didExitRegion

Page 19: iBeacon #yidev

NSUUID!7A1275A4-78B1-4A18-888E-21F550CFB0FE

CLLocationManager - (void)requestStateForRegion:(CLRegion *)region !CLLocationManagerDelegate - (void)locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region

CLRegionStateOutside

CLRegionStateInside

Page 20: iBeacon #yidev

ブロック 会場 UUID

北海道

会場A B5ECF8B9-01D7-4EAE-8D53-2486DA493F62

会場B 191D6287-2135-4538-97BF-E2FA04B8781A

会場C AB1FFEB8-4020-43C2-9509-A6D4C514ADBA

東北

会場A EB5F75E4-EF03-405F-A543-C930B53AB3D9

会場B …

会場C …

会場D …

東京 会場A …

横浜会場A …

会場B …

Page 21: iBeacon #yidev

CLBeaconRegion - (id)initWithProximityUUID:(NSUUID *)proximityUUID identifier:(NSString *)identifier; !- (id)initWithProximityUUID:(NSUUID *)proximityUUID major:(CLBeaconMajorValue)major identifier:(NSString *)identifier; !- (id)initWithProximityUUID:(NSUUID *)proximityUUID major:(CLBeaconMajorValue)major minor:(CLBeaconMinorValue)minor identifier:(NSString *)identifier;

NSUUID!7A1275A4-78B1-4A18-888E-21F550CFB0FE

CLBeaconMajorValue!

CLBeaconMinorValue!

Page 22: iBeacon #yidev

Proximity UUID Major Number Minor Number

iOS 勉強会 7A1275A4-78B1-4A18-888E-21F550C

FB0FE

北海道:0

会場A:0

会場B:1

会場C:2

東北:1

会場A:0

会場B:1

会場C:2

会場D:3

東京:2 会場A:0

横浜:3会場A:0

会場B:1

Page 23: iBeacon #yidev

Proximity UUID Major Number Minor Number

iOS 勉強会 7A1275A4-78B1-4A18-888E-21F550C

FB0FE

北海道:0

会場A:0

会場B:1

会場C:2

東北:1

会場A:0

会場B:1

会場C:2

会場D:3

東京:2 会場A:0

横浜:3会場A:0

会場B:1

Page 24: iBeacon #yidev

CLBeaconRegion - (id)initWithProximityUUID:(NSUUID *)proximityUUID identifier:(NSString *)identifier; !- (id)initWithProximityUUID:(NSUUID *)proximityUUID major:(CLBeaconMajorValue)major identifier:(NSString *)identifier; !- (id)initWithProximityUUID:(NSUUID *)proximityUUID major:(CLBeaconMajorValue)major minor:(CLBeaconMinorValue)minor identifier:(NSString *)identifier;

NSUUID!7A1275A4-78B1-4A18-888E-21F550CFB0FE

CLBeaconMajorValue!3

CLBeaconMinorValue!1

Page 25: iBeacon #yidev

Proximity UUID Major Number Minor Number

iOS 勉強会 7A1275A4-78B1-4A18-888E-21F550C

FB0FE

北海道:0

会場A:0

会場B:1

会場C:2

東北:1

会場A:0

会場B:1

会場C:2

会場D:3

東京:2 会場A:0

横浜:3会場A:0

会場B:1

Page 26: iBeacon #yidev

RangingUUID xxxx Beaconとの距離は?

Page 27: iBeacon #yidev

NSUUID!7A1275A4-78B1-4A18-888E-21F550CFB0FE

CLBeaconMajorValue!3

CLBeaconMinorValue!1

iOS!Device

Page 28: iBeacon #yidev

NSUUID!7A1275A4-78B1-4A18-888E-21F550CFB0FE

CLBeaconMajorValue!3

CLBeaconMinorValue!1

iOS!Device

CLLocationManager - (void)startRangingBeaconsInRegion:(CLBeaconRegion *)region; - (void)stopRangingBeaconsInRegion:(CLBeaconRegion *)region;

CLProximityUnknown,! CLProximityImmediate,! CLProximityNear,! CLProximityFar

Page 29: iBeacon #yidev

proximityUUID!major!minor!

proximity!accuracy!

rssi!

CLLocationManager - (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region

CLBeaconNSUUID!

7A1275A4-78B1-4A18-888E-21F550CFB0FE

CLBeaconMajorValue!3

CLBeaconMinorValue!1

Page 30: iBeacon #yidev

CLLocationManager - (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region

!typedef {! CLProximityUnknown,! CLProximityImmediate,! CLProximityNear,! CLProximityFar!} CLProximity;!

proximityUUID!major!minor!

proximity!accuracy!

rssi!

CLBeacon

Page 31: iBeacon #yidev

Configureそうだ、iPhoneをBeaconにしよう

Page 32: iBeacon #yidev

Estimoteうってない!どうしよう

Page 33: iBeacon #yidev

iPhoneをビーコンにすればいいよね

Page 34: iBeacon #yidev

iOS!Device

CLBeaconRegion - (NSMutableDictionary *)peripheralDataWithMeasuredPower:(NSNumber *)measuredPower; !CBPeripheralManager - (void)startAdvertising:(NSDictionary *)advertisementData;

Page 35: iBeacon #yidev

NFCと!同様に決済機能

次世代の!無線通信技術

データ転送可能!な範囲が広い

iBeacon

Page 36: iBeacon #yidev

Bluetooth LEを使用した!マイクロ・ロケーションサービス!

(iOSのサポートつき)

Page 37: iBeacon #yidev

本プレゼンテーションは独立したものであり、Apple Inc.が認定、後援、その他承認したものではありません。!本プレゼンテーションの内容は著者が独自に調査した結果を記したものです。!社名、製品名、システム名などは一般に各社の商標または登録商標です。

Page 38: iBeacon #yidev

おまけ

Page 39: iBeacon #yidev

Passbook

Page 40: iBeacon #yidev

https://developer.apple.com/library/ios/documentation/UserExperience/Reference/PassKit_Bundle/Chapters/LowerLevel.html#//apple_ref/doc/uid/TP40012026-CH3-SW4

Page 41: iBeacon #yidev

UUID!7A1275A4-78B1-4A18-888E-21F550CFB0FE

Page 42: iBeacon #yidev

HW specificationは見当たらないよ

Page 43: iBeacon #yidev

Bluetooth 4.0 LE

Page 44: iBeacon #yidev

Bluetooth 4.0!Low Energy

Bluetooth 2.0,3.0!Classic

キーボード・マウス!ヘッドセット

HRセンサなど!ANT+に近い!名前は似ているが別物

全部入りDualmodeのチップもあるよ

Page 45: iBeacon #yidev

Bluetooth 4.0!Low Energy

Page 46: iBeacon #yidev

Bluetooth 4.0!Low Energy

Service, Device Name, UUID…

Page 47: iBeacon #yidev

Scanner Advertiser

ADV_INDADV_IND

ADV_IND

ADV_INDADV_IND

ADV_IND

LE Advertisement Data

LE Advertisement Data

Bluetooth LE Advertisement Packet

Page 48: iBeacon #yidev

Preamble

Advertising Access Address

Header

Payload Length

AdvA

Advertising Data!…

CRC

Adv

ertis

emen

t Pac

ket

Page 49: iBeacon #yidev

Preamble

Advertising Access Address

Header

Payload Length

AdvA

Advertising Data!…

CRC

length

manufacture flag

connectable/nonconnectable

UUID Major Minor Power

Adv

ertis

emen

t Pac

ket

Page 50: iBeacon #yidev

Index データ 補足

0 0x02 ad field length

1 0x01 ad field type

2 0x06 connectable/undirect

3 0x1A ad field length

4 0xFF manufacturer data flag

5 0x4Cmanufacturer(Apple)

6 0x00

7 0x02Magic Number

8 0x15

9 0x99

proximityUUID (任意の128bitデータ) … 0x99

24 0x99

25 0x01Major Number 16bit (任意の16bitデータ Little Endian)

26 0x01

27 0x01Minor Number 16bit (任意の16bitデータ Little Endian)

28 0x01

29 0xCA Power (iBeaconから1メートル離れてiOSデバイスで計測したRSSI 2の補数)

Page 51: iBeacon #yidev

Robin Heydon Bluetooth Low Energy: The Developer's Handbook, p.85

Page 52: iBeacon #yidev

AP通信:Apple、米Apple Retail Storeで、iOS 7のiBeaconを使用した店内ガイドサービスの提供を開始 Macお宝鑑定団 blog(羅針盤) http://www.macotakara.jp/blog/apple_store/entry-21958.html

Page 53: iBeacon #yidev

本プレゼンテーションは独立したものであり、Apple Inc.が認定、後援、その他承認したものではありません。!本プレゼンテーションの内容は著者が独自に調査した結果を記したものです。!社名、製品名、システム名などは一般に各社の商標または登録商標です。