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

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

Post on 08-May-2015

643 views

Category:

Technology

2 download

Embed Size (px)

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

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

2. Concepts Monitoring Ranging AdvertisingFriday, 14 February 14 3. MonitoringFriday, 14 February 14 4. Monitoring Inside InsideInside InsideFriday, 14 February 14InsideInsideInside 5. MonitoringFriday, 14 February 14 6. Friday, 14 February 14 7. #import #import @interface glimbeaconViewController : UIViewController @endFriday, 14 February 14 8. @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:@"74278bdab644-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 9. -(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 10. Inside InsideOutsideInside InsideFriday, 14 February 14InsideInsideInside 11. RangingFriday, 14 February 14 12. Hyper Local Content Friday, 14 February 14 13. NearFarlow = 5m , default = 50m, high = 100m Friday, 14 February 14 14. Friday, 14 February 14 15. Friday, 14 February 14 16. 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 17. TopologyFriday, 14 February 14 18. UUID : A major : 1 minor : 1UUID : A major : 1 minor : 2UUID : A major : 2 minor : 1 Friday, 14 February 14UUID : A major : 1 minor : 3 UUID : B major : 1 UUID : A minor : 1 major : 2 minor : 2 19. UUID : A major : 1 minor : 1UUID : A major : 1 minor : 2UUID : A major : 2 minor : 1 Friday, 14 February 14UUID : A major : 1 minor : 3 UUID : B major : 1 UUID : A minor : 1 major : 2 minor : 2 20. On a Glimworm Beacon you can set: UUID: 0000-0000-000-0000 major : 0 - 63335 minor : 0 - 65535 power : 5m / 50m / 100m Interval : 100ms, 1.2s , 2.4s Pincode : 000000Friday, 14 February 14 21. Over the air congurationFriday, 14 February 14 22. USPFriday, 14 February 14 23. USPFriday, 14 February 14 24. AndroidFriday, 14 February 14 25. Radius NetworksFriday, 14 February 14 26. Friday, 14 February 14 27. Friday, 14 February 14 28. Friday, 14 February 14 29. Friday, 14 February 14 30. Radius NetworksFriday, 14 February 14 31. Its the end of the world as we know itFriday, 14 February 14