ibeacon #yidev

Post on 05-Jul-2015

14.683 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

iBeacon@nolili #yidev

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

次世代の!無線通信技術

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

3行でまとめると

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

(iOSのサポートつき)

ID 100

ID 200

ID 300

UUID

UUID

UUID

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

RegionMonitoring

Ranging

Configure

RegionMonitoring

Ranging

Configure

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

UUID xxxx Beaconとの距離は?

そうだ、iPhoneをBeaconにしよう

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

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

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

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

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

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

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

didEnterRegion didExitRegion

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

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

CLRegionStateOutside

CLRegionStateInside

ブロック 会場 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 …

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!

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

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

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

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

RangingUUID xxxx Beaconとの距離は?

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

CLBeaconMajorValue!3

CLBeaconMinorValue!1

iOS!Device

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

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

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

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

proximityUUID!major!minor!

proximity!accuracy!

rssi!

CLBeacon

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

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

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

iOS!Device

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

NFCと!同様に決済機能

次世代の!無線通信技術

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

iBeacon

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

(iOSのサポートつき)

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

おまけ

Passbook

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

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

HW specificationは見当たらないよ

Bluetooth 4.0 LE

Bluetooth 4.0!Low Energy

Bluetooth 2.0,3.0!Classic

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

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

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

Bluetooth 4.0!Low Energy

Bluetooth 4.0!Low Energy

Service, Device Name, UUID…

Scanner Advertiser

ADV_INDADV_IND

ADV_IND

ADV_INDADV_IND

ADV_IND

LE Advertisement Data

LE Advertisement Data

Bluetooth LE Advertisement Packet

Preamble

Advertising Access Address

Header

Payload Length

AdvA

Advertising Data!…

CRC

Adv

ertis

emen

t Pac

ket

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

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の補数)

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

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

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

top related