Intro to iBeacon and Bluetooth Low Energy
-
Upload
kurt-mcintire -
Category
Technology
-
view
5.245 -
download
1
description
Transcript of Intro to iBeacon and Bluetooth Low Energy
Introduction to iBeacon and BLE @KurtMcIntire
#iBeacon @VektorDigital @KurtMcIntire
Source: aim.org
Source: aim.org
Source: starhooks.blogspot.com
Source: starhooks.blogspot.com
Source: starhooks.blogspot.com
three minutes elapse
Source: starhooks.blogspot.com
Overview 1. What is BLE? 2. What is iBeacon? 3. How to detect iBeacons 4. How make your iOS device an iBeacon 5. Demos & Real-world Applications
Bluetooth Low Energy Optimized for small bursts of data Impressive battery life Ideal for sensors
Sensors & Wearables
Photo Sources: ewf.sm, macrumors.com,
cdn.macrumors.com
Joke and Photo Source: Punch Through Design
#iBacon
Photo Source: Beekn.net
#iBeacon
UUID B9407F30-
F5F8- 466E- AFF9-
25556B57FE6D
34956
58549 Major
Minor
Photo Sources: QualCom, Estimote, PunchThrough, Roximity
manufacturers
manufacturers
Battery Life 2 mo - 2 yr
Cost ~0 - $99
Dashboards and Beacon Management Tools
iBeacon
BLUETOOTH LE SIGNAL
Phones and tablets As iBeacons
250,000,000 Bluetooth low energy
Phones and tablets
1. User needs your app 2. User must have app-on (does not need to
be “open”) 3. User needs Bluetooth BLE compatible
device 4. User needs Bluetooth on 5. User must allow you to push messages
Requirements
You’re not wrong You’re just an asshole
Photo Source: blog.estately.com
The dude says,
Photo Source: blog.estately.com
1. Don’t spam the s**t out of people 2. Don’t send repeat messages 3. Provide value
Photo Source: blog.estately.com
Detect Beacons
Framework #import <CoreLocation/CoreLocation.h>!
Delegate <CLLocationManagerDelegate>!
Set up a
Region
Set up a Region
- (id)initWithProximityUUID:(NSUUID *)proximityUUID major:(CLBeaconMajorValue)major minor:(CLBeaconMinorValue)minor identifier:(NSString *)identifier;!
- (id)initWithProximityUUID:(NSUUID *)proximityUUID identifier:(NSString *)identifier;!
OR
!CLBeaconRegion *beaconRegion!
Set up a Region
static NSString *const kUUID = @"B9407F30-F5F8-466E-AFF9-25556B57FE6D";!!static NSString *const kIdentifier = @"EstimoteBeacon”;!
Location manager CLLocationManager *locationManager!
1. Monitoring 2. Ranging
Monitoring
Inside or Outside Works when phone asleep
Monitoring - (void)locationManager:(CLLocationManager *)manager!
!didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region!
if (state == CLRegionStateInside) {!! !// do something !!}!
else if (state == CLRegionStateOutside) {!! !// do something!!}!
Monitoring
- (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region!
- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region!!
Monitoring
App State Distance (ft) Active 50 Asleep 18
Ranging 1 / second Proximity Works when app active
Ranging - (void)locationManager:(CLLocationManager *)manager!!didRangeBeacons:(NSArray *)beacons
inRegion:(CLBeaconRegion *)region!
Ranging
NSArray *detectedBeacons!CLBeacon *closestBeacon!
Closest Beacon _closestBeacon = [_detectedBeacons firstObject];!
Ranging typedef {! CLProximityUnknown,! CLProximityImmediate,! CLProximityNear,! CLProximityFar!} CLProximity;!
Ranging
2014-01-16 14:51:33.611 BeaconDemo[591:60b] (! "CLBeacon (uuid:<__NSConcreteUUID 0x17003c800> B9407F30-F5F8-466E-AFF9-25556B57FE6D, major:34956, minor:46961, proximity:2 +/- 1.20m, rssi:-73)",! "CLBeacon (uuid:<__NSConcreteUUID 0x17003c340> B9407F30-F5F8-466E-AFF9-25556B57FE6D, major:43680, minor:8490, proximity:3 +/- 6.49m, rssi:-86)",! "CLBeacon (uuid:<__NSConcreteUUID 0x17003d360> B9407F30-F5F8-466E-AFF9-25556B57FE6D, major:22222, minor:58549, proximity:3 +/- 8.61m, rssi:-85)"!)!
Ranging
Beacon Proximity RSSI Beacon 1 2 +/- 1.20m -73 Beacon 2 3 +/- 6.49m -86 Beacon 3 3 +/- 8.61m -85
Do Something! - (void)checkProximity {! switch (_closestBeacon.proximity) {!
! ! case CLProximityImmediate:! self.view.backgroundColor = [UIColor redColor];! [self beaconIsImmediate];! break;! case CLProximityNear:! self.view.backgroundColor = [UIColor yellowColor];! break;! case CLProximityFar:! self.view.backgroundColor = [UIColor blueColor];! break;! default:! break;! }!}!
Make your device an iBeacon
Frameworks #import <CoreBluetooth/CoreBluetooth.h>!
Delegate <CBPeripheralManagerDelegate>!
The PlayerS CBPeripheralManager *peripheralManager!
NSDictionary *beaconPeripheralData!
Set up a Region
- (id)initWithProximityUUID:(NSUUID *)proximityUUID major:(CLBeaconMajorValue)major minor:(CLBeaconMinorValue)minor identifier:(NSString *)identifier;!
- (id)initWithProximityUUID:(NSUUID *)proximityUUID identifier:(NSString *)identifier;!
OR
Set up a Region
static NSString *const kUUID = @"DE8F8D67-4914-4B25-A9F2-EE0C624117CE";!!static NSString *const kIdentifier = @”MyiPhone”;!
Advertising
[self.peripheralManager stopAdvertising];!
[self.peripheralManager startAdvertising:beaconPeripheralData];!
Advertising
- (void)peripheralManagerDidUpdateState:(CBPeripheralManager *)peripheralManager!
BEEKN.net Raywenderlich.com HiBeacons App – Github Radius Networks – iBeacon Monitoring in the Background and Foreground
resources
Beer demo
Coupon Redeem with Parse demo
PKPKT
PKPKT
h#p://pkpkt.com/
Photo Source: insidemobileapps.com
Apple Store ALL 254 Retail Locations
Photo Source: insidemobileapps.com
MLB At the Ballpark
Photo Source: CNET News : MLB tests Apple's iBeacon at Citi Field
NFL Mobile app
Photo Source: nytimes.com
Safeway Stores
Photo Source: idownloadblog.com
What will you make? iBeacon
@VektorDigital @KurtMcIntire