SlideShare a Scribd company logo
Indoor Location in Mobile Applications using iBeacons
-- Simon Guest, Distinguished Engineer. Neudesic, LLC
GPS IS GREAT!
WHEN YOU ARE OUTDOORS
INDOOR LOCATION IS A DIFFERENT STORY
ISSUES
▸ GPS signal rarely works indoors
▸ When it does, it's often inaccurate
▸ No concept of indoor space, such as multiple floors
MANY COMPANIES HAVE TRIED TO SOLVE THIS!
WIFI SOLUTIONS
NFC BASED SOLUTIONS
MAGNETOMETER
LESS THAN IDEAL RESULTS
▸ Expensive
▸ Custom
▸ Too heavy on power
▸ Unpredictable requirements (e.g. WiFi)
▸ Don't run in background
DEMOCRATIZATION
IBEACONS
GOAL OF THIS SESSION
▸ What are iBeacons?
▸ Developing iOS and Android applications
▸ Pushing the boundaries
Indoor location in mobile applications using iBeacons
CLASSIC
BLUETOOTH LOW ENERGY (BLE)
BLUETOOTH LE/SMART
▸ Designed for low power
consumption
▸ Secure, simple pairing
w/ multiple profiles
▸ Wide range of hardware
vendor support
HOW DOES IBEACON RELATE?
IBEACON SPECIFICATION
▸ Apple Specification and Trademark on using Bluetooth
LE/Smart for indoor proximity
▸ Similar to a Bluetooth profile, except Apple are driving it
▸ Implementing specification is free, subject to Apple
NDA
REDBEAR BEACON
▸ RedBear BLE Mini
▸ TI CC2540
▸ 5v USB or 3.4v cell
battery input
▸ Around $30 USD
HOW DO IBEACONS WORK?
IBEACONS IN USE
▸ iBeacon broadcasts
signal using a UUID
▸ UUID is unique to a
group of iBeacons, not
an individual
IBEACONS IN USE
▸ Beacon identifies itself
in the group using a
Major and Minor number
▸ For example, Major: 1,
Minor 2
IBEACONS IN USE
▸ Devices can find
iBeacons nearby that
match a particular UUID
▸ This is known as
ranging for beacons
IBEACONS IN USE
▸ Once found, device can
detemine power level of
signal from the beacon
▸ Which in turn can
approximate the
distance
IBEACONS IN USE
▸ Three enumerated
ranges supported in the
specification
▸ IMMEDIATE, NEAR, and
FAR
EXAMPLE SCENARIOS
RETAIL STORE: PRODUCT PROMOTION AND LOCATION
EDUCATION: MUSEUM INFORMATION SYSTEM
OIL & GAS: PERSONNEL SAFETY SYSTEM
REAL ESTATE: OPEN HOUSE WALKTHROUGH
REMEMBER, IBEACONS ARE NOT SMART!
REMEMBER, IBEACONS ARE NOT SMART!
▸ No network connectivity
▸ No concept of devices that have discovered them
▸ No storage or additional information beyond UUID,
Major, Minor
DEVICE COMPATIBILITY
DEVICE COMPATIBILITY
▸ iPhone 4S / iPad 3 and upwards, running iOS 7+
▸ Android 4.3 and upwards, running Linux Kernel 3.4+
▸ Macs with Bluetooth 4 hardware, running Mavericks
▸ Hardware vendors
-- Radius, Redbear, Estimote, and others
DEVELOPING APPLICATIONS THAT SUPPORT IBEACONS
IOS
▸ Support for iBeacons in CoreLocation in iOS 7.x
▸ Create new CLBeaconRegion using UUID
▸ DidRangeBeacons event used to detect nearby beacons
▸ Returns array of beacons
IOS (XAMARIN)
private CLLocationManager locationManager;
private NSUuid beaconUUID = new NSUuid ("E2C56DB5-DFFB-48D2-B060-D0F5A71096E0");
private CLBeaconRegion beaconRegion;
public void StartListeningForBeacons ()
{
beaconRegion = new CLBeaconRegion (beaconUUID, "0");
locationManager = new CLLocationManager ();
locationManager.DidRangeBeacons += (object sender, CLRegionBeaconsRangedEventArgs args) => {
// args.Beacons contains the array of found beacons
};
locationManager.StartRangingBeacons (beaconRegion);
locationManager.StartUpdatingLocation ();
}
ANDROID
▸ Apple does not provide iBeacon SDK for Android
▸ Radius Networks open sourced SDK
▸ Extend Activity with IBeaconConsumer
▸ OnIBeaconServiceConnect and RangingBeaconsInRegion
ANDROID (XAMARIN)
private readonly IBeaconManager iBeaconManager;
private readonly Region monitoringRegion;
private readonly Region rangingRegion;
private const string UUID = "e2c56db5dffb48d2b060d0f5a71096e0";
public MainActivity ()
{
iBeaconManager = IBeaconManager.GetInstanceForApplication (this);
monitorNotifier = new MonitorNotifier ();
rangeNotifier = new RangeNotifier ();
monitoringRegion = new Region ("r2MonitoringUniqueId", UUID, null, null);
rangingRegion = new Region ("r2RangingUniqueId", UUID, null, null);
}
ANDROID (XAMARIN)
public void OnIBeaconServiceConnect ()
{
iBeaconManager.SetMonitorNotifier (monitorNotifier);
iBeaconManager.SetRangeNotifier (rangeNotifier);
iBeaconManager.StartMonitoringBeaconsInRegion (monitoringRegion);
iBeaconManager.StartRangingBeaconsInRegion (rangingRegion);
}
private void RangingBeaconsInRegion (object sender, RangeEventArgs e)
{
// beacons returned in e.Beacons
}
DEMO
WHAT DID WE SEE?
▸ Simple application using CLLocationManager to range
for beacons
▸ Relatively accurate line-of-sight proximity detection
▸ Enumerated proximity levels
BEYOND THE BASICS
RUNNING IBEACONS IN THE BACKGROUND
BACKGROUND DETECTION IN IOS
▸ Made possible by iOS 7.1!
▸ Invoke ranging for beacons from AppDelegate (not
ViewController)
▸ Beacon ranging will persist background and even work
when device is locked/standby
BACKGROUND DETECTION IN ANDROID
▸ Default as Radius SDK actually runs as a service
▸ Developer chooses how to handle OnResume, OnPause
events, and invoking application/service on updates
▸ Should consider own service to handle background
notifications
BACKGROUND TIPS
▸ Keeping BLE enabled and ranging will have some effect
on battery
▸ Consider adding sleep time if running in background
▸ Don't make expensive calls (e.g. networking,
computation) on each ranging
DEMO
BETTER ACCURACY OF INDOOR LOCATION
Indoor location in mobile applications using iBeacons
Indoor location in mobile applications using iBeacons
Indoor location in mobile applications using iBeacons
TRILATERATION
TRILATERATION
▸ Similar in concept to triangulation except uses distance
vs. angles
▸ Requires minimum of three beacons
▸ Assuming accurate power signals, can calculate more
accurate position
DEMO
WHAT DID WE SEE?
▸ Position of 3+ beacons sent to NodeJS server
▸ NodeJS server uses cartersian coords to work out
position, broadcast via WebSockets
▸ HTML5 page responds to WebSockets and plots position
on canvas
NOT PERFECT...
NOT PERFECT...
▸ Walls or line-of-sight obstructions will decrease
observed power range, and lead to inaccurate results
▸ But an array of iBeacons in an open area (e.g. retail
store) should provide 1-2m accuracy
WRAPPING UP
IBEACONS
IBEACONS
▸ Apple standard, but supported well on most (latest)
mobile devices
▸ Mix of hardware and software options, easy to develop
▸ Opening up wide opportunity of indoor location
scenarios to any developer at a relatively low cost point
THANK YOU!
Q&A
▸ Simon Guest, Distinguished Engineer, Neudesic LLC
▸ simonguest.com (@simonguest)
▸ http://github.com/simonguest/gids
▸ http://slideshare.net/simonguest
-- http://
www.amazon.com/File-
New-Presentation-
Developers-Professionals/
dp/0615910459

More Related Content

PPTX
Factors effecting positional accuracy of iBeacons
PDF
Bluetooth Smart (Low Energy) for Android
PDF
Whats the best micro-location technology? We compare: ibeacon, ble, nfc, qr a...
PPT
iCon Creates Automotive Internet Technology
PPTX
One Stop iBeacon Solution and Implementation
PPTX
Profile Blaze Automation [Brief]
PPTX
Ibeacon Technology for Modern Mobile Apps
PDF
Cubeacon: iBeacon Bluetooth Low Energy (BLE) Technology
Factors effecting positional accuracy of iBeacons
Bluetooth Smart (Low Energy) for Android
Whats the best micro-location technology? We compare: ibeacon, ble, nfc, qr a...
iCon Creates Automotive Internet Technology
One Stop iBeacon Solution and Implementation
Profile Blaze Automation [Brief]
Ibeacon Technology for Modern Mobile Apps
Cubeacon: iBeacon Bluetooth Low Energy (BLE) Technology

What's hot (19)

PDF
5 pen pc technology
PPTX
Ring mode2
PPTX
Zikit Review on iBeacon Technology (1st Israeli iBeacon Hackathon)
PPTX
Smart surveillance monitoring system using raspberry pi and
PPTX
PDF
IRJET- Smart Mirror using Voice Interface
PDF
Building the world’s biggest iBeacon living lab with WSO2
PPTX
seminar presentation on Digital Jwellery
PDF
EB IoT Device Platform
PDF
Trifork iBeacon Demo Lunch Talk
PDF
10 industries that will be disrupted by iBeacons in 2015
PDF
iBeacon and Bluetooth LE: An Introduction
PDF
0609 products
PDF
Mobile + Cloud + IoT - Case Study
PDF
iBeacon and IoT: Where We're At, Where We're Going
PDF
TechRadar#32 ibeacon
PDF
IoT for Agriculture in a Nutshell: Technical Perspective
PDF
iBeacon security overview
5 pen pc technology
Ring mode2
Zikit Review on iBeacon Technology (1st Israeli iBeacon Hackathon)
Smart surveillance monitoring system using raspberry pi and
IRJET- Smart Mirror using Voice Interface
Building the world’s biggest iBeacon living lab with WSO2
seminar presentation on Digital Jwellery
EB IoT Device Platform
Trifork iBeacon Demo Lunch Talk
10 industries that will be disrupted by iBeacons in 2015
iBeacon and Bluetooth LE: An Introduction
0609 products
Mobile + Cloud + IoT - Case Study
iBeacon and IoT: Where We're At, Where We're Going
TechRadar#32 ibeacon
IoT for Agriculture in a Nutshell: Technical Perspective
iBeacon security overview
Ad

Similar to Indoor location in mobile applications using iBeacons (20)

PPT
Developing context aware applications with iBeacons technology
PPTX
Droid con 2015 - experimenting monitoring and proximity techniques using andr...
PDF
The iBeacon Guide To Success - A comprehensive overview on the technology wit...
PDF
Demystifying iBeacons
PDF
Workshop: Building location-aware mobile apps with iBeacons
PDF
Getting started-with-i beacon
PDF
Building Location Aware Mobile Apps with iBeacons
PDF
Evolve 2014 iBeacons and Contextual Location Awareness in iOS and Android apps
PPTX
What is iBeacon in iOS?
PDF
Mobile development in age of Internet of Things and programming Apple Watch
PDF
iBeacons for Everyone, from iOS to Android - James Montemagno | FalafelCON 2014
PDF
How does iBeacon Work?
PDF
iBeacon-based indoor positioning system: from theory to practical deployment
PDF
iBeacon™ FAQ White Paper
PPT
iBeacons for Everyone, From iOS to Android
PDF
IntenetOfThingsWithBLEAndBeacons
PDF
14 569
PDF
Ibeacons bible
PDF
Cytech iBeacon Primer
PPTX
I beacons 101
Developing context aware applications with iBeacons technology
Droid con 2015 - experimenting monitoring and proximity techniques using andr...
The iBeacon Guide To Success - A comprehensive overview on the technology wit...
Demystifying iBeacons
Workshop: Building location-aware mobile apps with iBeacons
Getting started-with-i beacon
Building Location Aware Mobile Apps with iBeacons
Evolve 2014 iBeacons and Contextual Location Awareness in iOS and Android apps
What is iBeacon in iOS?
Mobile development in age of Internet of Things and programming Apple Watch
iBeacons for Everyone, from iOS to Android - James Montemagno | FalafelCON 2014
How does iBeacon Work?
iBeacon-based indoor positioning system: from theory to practical deployment
iBeacon™ FAQ White Paper
iBeacons for Everyone, From iOS to Android
IntenetOfThingsWithBLEAndBeacons
14 569
Ibeacons bible
Cytech iBeacon Primer
I beacons 101
Ad

More from Simon Guest (20)

PDF
10 Life Hacks for Better Productivity
PDF
Building a Great Engineering Culture
PDF
Interviewing Techniques
PDF
Presentation Anti-Patterns
PDF
10 Life Hacks for Better Productivity
PDF
Automated Web Testing using JavaScript
PDF
Advanced Tips & Tricks for using Angular JS
PPTX
Creating Context-Aware Applications
PPTX
Automated Testing using JavaScript
PDF
Enterprise Social Networking - Myth or Magic?
PPTX
Objective View of MEAPs
PPTX
Top Ten Tips for HTML5/Mobile Web Development
PPTX
Windows Azure Toolkit for iOS
PPTX
Developing Enterprise-Grade Mobile Applications
PPTX
My customers are using iPhone/Android, but I'm a Microsoft Guy.
PPTX
Developing iPhone and iPad apps that leverage Windows Azure
PPTX
iPhone and iPad Security
PPTX
Building solutions on the Microsoft platform that target iPhone, iPad, and An...
PPTX
Future of Mobility
PDF
Patterns for Cloud Computing
10 Life Hacks for Better Productivity
Building a Great Engineering Culture
Interviewing Techniques
Presentation Anti-Patterns
10 Life Hacks for Better Productivity
Automated Web Testing using JavaScript
Advanced Tips & Tricks for using Angular JS
Creating Context-Aware Applications
Automated Testing using JavaScript
Enterprise Social Networking - Myth or Magic?
Objective View of MEAPs
Top Ten Tips for HTML5/Mobile Web Development
Windows Azure Toolkit for iOS
Developing Enterprise-Grade Mobile Applications
My customers are using iPhone/Android, but I'm a Microsoft Guy.
Developing iPhone and iPad apps that leverage Windows Azure
iPhone and iPad Security
Building solutions on the Microsoft platform that target iPhone, iPad, and An...
Future of Mobility
Patterns for Cloud Computing

Recently uploaded (20)

PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
cloud_computing_Infrastucture_as_cloud_p
PPTX
1. Introduction to Computer Programming.pptx
PPTX
Tartificialntelligence_presentation.pptx
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
August Patch Tuesday
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPT
Teaching material agriculture food technology
PDF
Empathic Computing: Creating Shared Understanding
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Spectral efficient network and resource selection model in 5G networks
cloud_computing_Infrastucture_as_cloud_p
1. Introduction to Computer Programming.pptx
Tartificialntelligence_presentation.pptx
Machine learning based COVID-19 study performance prediction
Programs and apps: productivity, graphics, security and other tools
SOPHOS-XG Firewall Administrator PPT.pptx
August Patch Tuesday
Assigned Numbers - 2025 - Bluetooth® Document
Building Integrated photovoltaic BIPV_UPV.pdf
Teaching material agriculture food technology
Empathic Computing: Creating Shared Understanding
Heart disease approach using modified random forest and particle swarm optimi...
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
OMC Textile Division Presentation 2021.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025

Indoor location in mobile applications using iBeacons

  • 1. Indoor Location in Mobile Applications using iBeacons -- Simon Guest, Distinguished Engineer. Neudesic, LLC
  • 3. WHEN YOU ARE OUTDOORS
  • 4. INDOOR LOCATION IS A DIFFERENT STORY
  • 5. ISSUES ▸ GPS signal rarely works indoors ▸ When it does, it's often inaccurate ▸ No concept of indoor space, such as multiple floors
  • 6. MANY COMPANIES HAVE TRIED TO SOLVE THIS!
  • 10. LESS THAN IDEAL RESULTS ▸ Expensive ▸ Custom ▸ Too heavy on power ▸ Unpredictable requirements (e.g. WiFi) ▸ Don't run in background
  • 13. GOAL OF THIS SESSION ▸ What are iBeacons? ▸ Developing iOS and Android applications ▸ Pushing the boundaries
  • 17. BLUETOOTH LE/SMART ▸ Designed for low power consumption ▸ Secure, simple pairing w/ multiple profiles ▸ Wide range of hardware vendor support
  • 18. HOW DOES IBEACON RELATE?
  • 19. IBEACON SPECIFICATION ▸ Apple Specification and Trademark on using Bluetooth LE/Smart for indoor proximity ▸ Similar to a Bluetooth profile, except Apple are driving it ▸ Implementing specification is free, subject to Apple NDA
  • 20. REDBEAR BEACON ▸ RedBear BLE Mini ▸ TI CC2540 ▸ 5v USB or 3.4v cell battery input ▸ Around $30 USD
  • 22. IBEACONS IN USE ▸ iBeacon broadcasts signal using a UUID ▸ UUID is unique to a group of iBeacons, not an individual
  • 23. IBEACONS IN USE ▸ Beacon identifies itself in the group using a Major and Minor number ▸ For example, Major: 1, Minor 2
  • 24. IBEACONS IN USE ▸ Devices can find iBeacons nearby that match a particular UUID ▸ This is known as ranging for beacons
  • 25. IBEACONS IN USE ▸ Once found, device can detemine power level of signal from the beacon ▸ Which in turn can approximate the distance
  • 26. IBEACONS IN USE ▸ Three enumerated ranges supported in the specification ▸ IMMEDIATE, NEAR, and FAR
  • 28. RETAIL STORE: PRODUCT PROMOTION AND LOCATION
  • 30. OIL & GAS: PERSONNEL SAFETY SYSTEM
  • 31. REAL ESTATE: OPEN HOUSE WALKTHROUGH
  • 33. REMEMBER, IBEACONS ARE NOT SMART! ▸ No network connectivity ▸ No concept of devices that have discovered them ▸ No storage or additional information beyond UUID, Major, Minor
  • 35. DEVICE COMPATIBILITY ▸ iPhone 4S / iPad 3 and upwards, running iOS 7+ ▸ Android 4.3 and upwards, running Linux Kernel 3.4+ ▸ Macs with Bluetooth 4 hardware, running Mavericks ▸ Hardware vendors -- Radius, Redbear, Estimote, and others
  • 36. DEVELOPING APPLICATIONS THAT SUPPORT IBEACONS
  • 37. IOS ▸ Support for iBeacons in CoreLocation in iOS 7.x ▸ Create new CLBeaconRegion using UUID ▸ DidRangeBeacons event used to detect nearby beacons ▸ Returns array of beacons
  • 38. IOS (XAMARIN) private CLLocationManager locationManager; private NSUuid beaconUUID = new NSUuid ("E2C56DB5-DFFB-48D2-B060-D0F5A71096E0"); private CLBeaconRegion beaconRegion; public void StartListeningForBeacons () { beaconRegion = new CLBeaconRegion (beaconUUID, "0"); locationManager = new CLLocationManager (); locationManager.DidRangeBeacons += (object sender, CLRegionBeaconsRangedEventArgs args) => { // args.Beacons contains the array of found beacons }; locationManager.StartRangingBeacons (beaconRegion); locationManager.StartUpdatingLocation (); }
  • 39. ANDROID ▸ Apple does not provide iBeacon SDK for Android ▸ Radius Networks open sourced SDK ▸ Extend Activity with IBeaconConsumer ▸ OnIBeaconServiceConnect and RangingBeaconsInRegion
  • 40. ANDROID (XAMARIN) private readonly IBeaconManager iBeaconManager; private readonly Region monitoringRegion; private readonly Region rangingRegion; private const string UUID = "e2c56db5dffb48d2b060d0f5a71096e0"; public MainActivity () { iBeaconManager = IBeaconManager.GetInstanceForApplication (this); monitorNotifier = new MonitorNotifier (); rangeNotifier = new RangeNotifier (); monitoringRegion = new Region ("r2MonitoringUniqueId", UUID, null, null); rangingRegion = new Region ("r2RangingUniqueId", UUID, null, null); }
  • 41. ANDROID (XAMARIN) public void OnIBeaconServiceConnect () { iBeaconManager.SetMonitorNotifier (monitorNotifier); iBeaconManager.SetRangeNotifier (rangeNotifier); iBeaconManager.StartMonitoringBeaconsInRegion (monitoringRegion); iBeaconManager.StartRangingBeaconsInRegion (rangingRegion); } private void RangingBeaconsInRegion (object sender, RangeEventArgs e) { // beacons returned in e.Beacons }
  • 42. DEMO
  • 43. WHAT DID WE SEE? ▸ Simple application using CLLocationManager to range for beacons ▸ Relatively accurate line-of-sight proximity detection ▸ Enumerated proximity levels
  • 45. RUNNING IBEACONS IN THE BACKGROUND
  • 46. BACKGROUND DETECTION IN IOS ▸ Made possible by iOS 7.1! ▸ Invoke ranging for beacons from AppDelegate (not ViewController) ▸ Beacon ranging will persist background and even work when device is locked/standby
  • 47. BACKGROUND DETECTION IN ANDROID ▸ Default as Radius SDK actually runs as a service ▸ Developer chooses how to handle OnResume, OnPause events, and invoking application/service on updates ▸ Should consider own service to handle background notifications
  • 48. BACKGROUND TIPS ▸ Keeping BLE enabled and ranging will have some effect on battery ▸ Consider adding sleep time if running in background ▸ Don't make expensive calls (e.g. networking, computation) on each ranging
  • 49. DEMO
  • 50. BETTER ACCURACY OF INDOOR LOCATION
  • 55. TRILATERATION ▸ Similar in concept to triangulation except uses distance vs. angles ▸ Requires minimum of three beacons ▸ Assuming accurate power signals, can calculate more accurate position
  • 56. DEMO
  • 57. WHAT DID WE SEE? ▸ Position of 3+ beacons sent to NodeJS server ▸ NodeJS server uses cartersian coords to work out position, broadcast via WebSockets ▸ HTML5 page responds to WebSockets and plots position on canvas
  • 59. NOT PERFECT... ▸ Walls or line-of-sight obstructions will decrease observed power range, and lead to inaccurate results ▸ But an array of iBeacons in an open area (e.g. retail store) should provide 1-2m accuracy
  • 62. IBEACONS ▸ Apple standard, but supported well on most (latest) mobile devices ▸ Mix of hardware and software options, easy to develop ▸ Opening up wide opportunity of indoor location scenarios to any developer at a relatively low cost point
  • 64. Q&A ▸ Simon Guest, Distinguished Engineer, Neudesic LLC ▸ simonguest.com (@simonguest) ▸ http://github.com/simonguest/gids ▸ http://slideshare.net/simonguest