integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

31
J Carter / Glimworm IT BV and.. Glimworm Beacons 12th Feb 2014 Appsterdam Lunchtime Lecture integrating iBeacons into your project Friday, 14 February 14

Upload: jonathan-carter

Post on 08-May-2015

643 views

Category:

Technology


2 download

DESCRIPTION

This presentation was given at the Appsterdam Lunchtime Lecture on 12th Feb 2014 by Jonathan Carter of GlimwormBeacons. It explains some background about iBeacons and some practical tips about using them in your projects. It also gives some product details of GlimwormBeacons which are Apple iBeacon compatible sensors manufactured in the Netherlands.

TRANSCRIPT

Page 1: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

J Carter / Glimworm IT BVand.. Glimworm Beacons

12th Feb 2014Appsterdam Lunchtime Lecture

integrating iBeaconsinto yourproject

Friday, 14 February 14

Page 2: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

Concepts

•Monitoring

•Ranging

•Advertising

Friday, 14 February 14

Page 3: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

Monitoring

Friday, 14 February 14

Page 4: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

MonitoringInside

Inside

InsideInside

InsideInsideInside

Friday, 14 February 14

Page 5: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

Monitoring

Friday, 14 February 14

Page 6: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

Friday, 14 February 14

Page 7: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

#import <UIKit/UIKit.h>#import <CoreLocation/CoreLocation.h>

@interface glimbeaconViewController : UIViewController <CLLocationManagerDelegate>

@end

Friday, 14 February 14

Page 8: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

@implementation glimbeaconViewController{ NSMutableDictionary *_beacons; CLLocationManager *_locationManager; NSMutableArray *_rangedRegions; CLBeaconRegion *_region;

}...

- (void)viewDidLoad{ [super viewDidLoad]; _locationManager = [[CLLocationManager alloc] init]; _locationManager.delegate = self;}

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

if ([beacons count] > 0) {

// Handle your found beacons here CLBeacon *beacon = [beacons objectAtIndex:0]; NSString *_cnt = [[NSString alloc] initWithFormat:@"Number of beacons is : %lu and the first one is %f away from you",(unsigned long)[beacons count],beacon.accuracy]; NSLog(_cnt); } else { NSLog(@"there are no beacons in range"); }}

-(void)viewDidAppear:(BOOL)animated{ NSUUID *proximityUUID = [[NSUUID alloc] initWithUUIDString:@"74278bda-b644-4520-8f0c-720eaf059935"]; _region = [[CLBeaconRegion alloc] initWithProximityUUID:proximityUUID identifier:@"Glimworm iBeacon"]; [_locationManager startRangingBeaconsInRegion:_region];

}-(void) viewDidDisappear:(BOOL)animated{ [_locationManager stopRangingBeaconsInRegion:_region];

}

Friday, 14 February 14

Page 9: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

-(void)viewDidAppear:(BOOL)animated{ NSUUID *proximityUUID = [[NSUUID alloc] initWithUUIDString:@"74278bda-b644-4520-8f0c-720eaf059935"]; _region = [[CLBeaconRegion alloc] initWithProximityUUID:proximityUUID identifier:@"Glimworm iBeacon"]; [_locationManager startMonitoringForRegion:_region];}

- (void) locationManager:(CLLocationManager *)manager didStartMonitoringForRegion:(CLRegion *)region{ [_locationManager requestStateForRegion:region];}

- (void) locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region{ switch (state) { case CLRegionStateInside: /* it would be smart to start ranging beacons here */ break; case CLRegionStateOutside: case CLRegionStateUnknown: default: /* beacons will typically be on a low refresh */ /* so they will probably flip flop a bit when you are in range */ /* I would advise to stop ranging on a timer */ NSLog(@"Region unknown"); }}

Friday, 14 February 14

Page 10: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

Inside

Inside

InsideInside

InsideInsideInside

Outside

Friday, 14 February 14

Page 11: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

Ranging

Friday, 14 February 14

Page 12: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

Hyper Local ContentFriday, 14 February 14

Page 13: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

Near

Far

low = 5m , default = 50m, high = 100mFriday, 14 February 14

Page 14: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

Friday, 14 February 14

Page 15: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

Friday, 14 February 14

Page 16: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

From Monitoring{

identifier : “......”,regionState : “inside”

}

From Ranging

{beacons : [ {

UUID : “0000-0000-0000-0000”,major : 1,minor : 1,accuracy : 20.4,proximity : ‘near’

},{ ...}]}

Friday, 14 February 14

Page 17: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

Topology

Friday, 14 February 14

Page 18: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

UUID : “A”major : 1minor : 1

UUID : “A”major : 1minor : 2

UUID : “A”major : 1minor : 3

UUID : “B”major : 1minor : 1UUID : “A”

major : 2minor : 1

UUID : “A”major : 2minor : 2

Friday, 14 February 14

Page 19: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

UUID : “A”major : 1minor : 1

UUID : “A”major : 1minor : 2

UUID : “A”major : 1minor : 3

UUID : “B”major : 1minor : 1UUID : “A”

major : 2minor : 1

UUID : “A”major : 2minor : 2

Friday, 14 February 14

Page 20: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

On a Glimworm Beacon you can set:

UUID: “0000-0000-000-0000”major : 0 - 63335minor : 0 - 65535power : 5m / 50m / 100mInterval : 100ms, 1.2s , 2.4sPincode : 000000

Friday, 14 February 14

Page 21: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

Over the air configuration

Friday, 14 February 14

Page 22: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

USP

Friday, 14 February 14

Page 23: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

USP

Friday, 14 February 14

Page 24: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

Android

Friday, 14 February 14

Page 25: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

Radius Networks

Friday, 14 February 14

Page 26: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

Friday, 14 February 14

Page 27: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

Friday, 14 February 14

Page 28: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

Friday, 14 February 14

Page 29: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

Friday, 14 February 14

Page 30: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

Radius Networks

Friday, 14 February 14

Page 31: Integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014

It’s the endof the worldas we know it

Friday, 14 February 14