integrating i beacons into your project appsterdam lunchtime lecture 12 feb 2014
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
J Carter / Glimworm IT BVand.. Glimworm Beacons
12th Feb 2014Appsterdam Lunchtime Lecture
integrating iBeaconsinto yourproject
Friday, 14 February 14
Concepts
•Monitoring
•Ranging
•Advertising
Friday, 14 February 14
Monitoring
Friday, 14 February 14
MonitoringInside
Inside
InsideInside
InsideInsideInside
Friday, 14 February 14
Monitoring
Friday, 14 February 14
Friday, 14 February 14
#import <UIKit/UIKit.h>#import <CoreLocation/CoreLocation.h>
@interface glimbeaconViewController : UIViewController <CLLocationManagerDelegate>
@end
Friday, 14 February 14
@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
-(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
Inside
Inside
InsideInside
InsideInsideInside
Outside
Friday, 14 February 14
Ranging
Friday, 14 February 14
Hyper Local ContentFriday, 14 February 14
Near
Far
low = 5m , default = 50m, high = 100mFriday, 14 February 14
Friday, 14 February 14
Friday, 14 February 14
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
Topology
Friday, 14 February 14
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
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
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
Over the air configuration
Friday, 14 February 14
USP
Friday, 14 February 14
USP
Friday, 14 February 14
Android
Friday, 14 February 14
Radius Networks
Friday, 14 February 14
Friday, 14 February 14
Friday, 14 February 14
Friday, 14 February 14
Friday, 14 February 14
Radius Networks
Friday, 14 February 14
It’s the endof the worldas we know it
Friday, 14 February 14