SlideShare une entreprise Scribd logo
1  sur  35
Télécharger pour lire hors ligne
St. Pölten University of Applied Sciences
Platzhalter für möglichen
Bildeinsatz
Bluetooth Beacons
Bluetooth 5, iBeacon, Eddystone, Arduino,
Windows 10 Creators Update & More
Version 2.0 – June 21st, 2017
Andreas Jakl, Twitter: @andijakl, Blog: andreasjakl.com
Lecturer, Digital Healthcare, FH St. Pölten
Platzhalter für möglichen
Bildeinsatz
BLUETOOTH BEACON OVERVIEW
Bluetooth & The Very Latest Windows – Andreas Jakl
Bluetooth & The Very Latest Windows – Andreas Jakl
Transmit small packets of data
e.g., ID & transmission power
Up to ~70m
No back communication channel
Wake up listening device.
Notification / app launch based on ID.
Calculate distance through signal power.
Your App
Bluetooth & The Very Latest Windows – Andreas Jakl
Battery
1-4 years
Bluetooth chipset
Beacon Use Cases
Bluetooth & The Very Latest Windows – Andreas Jakl
Indoor navigation & localization
- Industry (e.g., maintenance)
- Airports, shopping malls
- Automated check-ins
Augment shopping experience
- Ads relevant to location, coupons
- Open customer card when
approaching cash register
Museums & Events
- Location info
- Welcome note
Asset tracking
- Security monitoring: tool
not allowed to leave room
- Locate (misplaced) tools
Public transport
departure information
Bluetooth & The Very Latest Windows – Andreas Jakl
GPS
▪ Worldwide, outdoors
▪ Uni-directional
▪ Localization
Beacons
▪ Also indoors, 0-70 m
▪ Uni-directional
▪ Proximity information
NFC
▪ Contact
▪ Bi-directional
▪ Pay, Access, Trigger
Now with iPhone support!
Bluetooth LE ->
▪ New
▪ 2x Bandwidth (2 Mbps) without increased energy consumption
▪ 4x Range (allows whole home wireless)
▪ 8x Broadcasting Message Capacity
▪ Beacon frame size: 31 bytes -> 255 bytes
▪ Bluetooth 4 LE = feature within Bluetooth 5
▪ Bluetooth LE / Smart is no more!
▪ Backwards Compatible
Bluetooth & The Very Latest Windows – Andreas Jakl
Samsung Galaxy S8
Bluetooth & The Very Latest Windows – Andreas Jakl
0.00
1,000.00
2,000.00
3,000.00
4,000.00
5,000.00
6,000.00
2016 2017 2018 2019 2020 2021
Bluetooth enabled device shipments (in Millions)
Cellular PCs/Peripherals Mobile Devices Networking Connected Home Smart Home Automotive Wearables and Healthcare Devices Beacons
Source: Bluetooth e-Guide “Rethinking the future: Bluetooth 5,
beacon technology and the Internet of Things”, https://www.bluetooth.com/bluetooth-5-guide
Based on ABI Research
8.2 Million
beacons
565.3 Million
beacons
BEACON FLAVORS
iBeacons, Eddystone, Web Blueooth, Physical Web & more!
Bluetooth & The Very Latest Windows – Andreas Jakl
iBeacon™ & Eddystone™
iBeacon
UUID, major &
minor ID
Proprietary specification
https://developer.apple.com/ibeacon/
Bluetooth & The Very Latest Windows – Andreas Jakl
Eddystone
Beacon
Eddystone-UID
Beacon ID, Tx power
level
Eddystone-TLM
Battery, temperature,
sent frames, time
running
Eddystone-URL
URL, Tx power level
Open beacon format from Google
https://github.com/google/eddystone
Eddystone-EID
Ephemeral Identifier,
Tx power level
LOW LEVEL BEACON INFO
Arduino / Genuino 101
Bluetooth & The Very Latest Windows – Andreas Jakl
Bluetooth & The Very Latest Windows – Andreas Jakl
Arduino / Genuino 101
Integrated
Bluetooth
Bluetooth & The Very Latest Windows – Andreas Jakl
1. Install Curie Board and
CurieBLE Library
Warning: Windows Store version of Arduino IDE does not install all the necessary drivers for Intel Curie boards. Use standalone IDE from https://www.arduino.cc/ instead.
Bluetooth & The Very Latest Windows – Andreas Jakl
2. Open CurieBLE > Central >
Scan example
Bluetooth & The Very Latest Windows – Andreas Jakl
3. Extend code to print
manufacturer data
Bluetooth & The Very Latest Windows – Andreas Jakl
4. Run and test
FEAA = Eddystone service UUID
4C = Apple Manufacturer ID
iBeacon UUID
https://play.google.com/store/apps/details?id=net.alea.beaconsimulator
BEACON APP DEVELOPMENT
Windows 10
Bluetooth & The Very Latest Windows – Andreas Jakl
Universal Beacon Library
https://github.com/andijakl/universal-beacon
Parse & create
Beacon frames
Assigns received
frames to individual
beacons
Fully documented.
Includes Windows 10 example app.
Open Source license
Bluetooth & The Very Latest Windows – Andreas Jakl
Windows 10 Example
_beaconManager = new BeaconManager();
_watcher = new BluetoothLEAdvertisementWatcher();
_watcher.Received += WatcherOnReceived;
_watcher.Start();
1 Initialize Beacon scanning
API documentation: bit.ly/ProximityAPI
private async void WatcherOnReceived(
BluetoothLEAdvertisementWatcher sender,
BluetoothLEAdvertisementReceivedEventArgs eventArgs)
{
await _dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() => _beaconManager.ReceivedAdvertisement(eventArgs));
}
2 Beacon advertisement frame received callback
Bluetooth & The Very Latest Windows – Andreas Jakl
Example
foreach (var bluetoothBeacon in _beaconManager.BluetoothBeacons.ToList())
{
Debug.WriteLine("Beacon: " + bluetoothBeacon.BluetoothAddressAsString);
Debug.WriteLine("Type: " + bluetoothBeacon.BeaconType);
foreach (var beaconFrame in bluetoothBeacon.BeaconFrames.ToList())
{
// Print a small sample of the available data parsed by the library
if (beaconFrame is UrlEddystoneFrame)
{
Debug.WriteLine("Eddystone URL Frame");
Debug.WriteLine("URL: " + ((UrlEddystoneFrame) beaconFrame).CompleteUrl);
} // ...
}}
3 Access Beacon Info
Bluetooth & The Very Latest Windows – Andreas Jakl
Bluetooth Beacon Interactor
Bluetooth & The Very Latest Windows – Andreas Jakl
Windows 10 Library Example App = Free Bluetooth Beacon Interactor
https://www.microsoft.com/store/apps/9NBLGGH1Z24K
(Also available on HoloLens!)
Buying Bluetooth Beacons
Bluetooth & The Very Latest Windows – Andreas Jakl
Starting at $60 (3 pcs)
BLUETOOTH GATT
Communication Without Pairing
Bluetooth & The Very Latest Windows – Andreas Jakl
Bluetooth Advertising
Bluetooth & The Very Latest Windows – Andreas Jakl
Peripheral
Device
(e.g., beacon)
GAP = Generic Access Profile: makes devices visible, defines device interactions
Central
Device
(e.g., phone)
Central
Device
Central
Device
Central
Device
Peripheral is broadcasting.
Beacons: advertising package contains all data
(= 31 bytes for Bluetooth LE < 5)
Bluetooth Communication
Bluetooth & The Very Latest Windows – Andreas Jakl
Central /
GATT Client
(e.g., phone)
GATT = Generic Attribute Profile, data transfer through services and characteristics
Peripheral /
GATT Server
(e.g. sensors, smart
home components)
Peripheral /
GATT Server
Peripheral /
GATT Server
Peripheral /
GATT Server
After established connection: 2-way
communication.
(connection != pairing)
Profiles / Services / Characteristics
▪ Profile
▪ Pre-defined collection of services
▪ E.g., heart rate profile, blood pressure profile
▪ https://www.bluetooth.com/specifications/adopted-
specifications#GATT
Bluetooth & The Very Latest Windows – Andreas Jakl
Profile
Profiles / Services / Characteristics
▪ Service
▪ Data broken up into logical entities
▪ E.g., heart rate service, battery service
▪ https://www.bluetooth.com/specifications/gatt/servic
es
Bluetooth & The Very Latest Windows – Andreas Jakl
Profile
Service
Service
Profiles / Services / Characteristics
▪ Characteristic
▪ Single data point
▪ E.g., Heart rate service
▪ Measurement
▪ Body sensor location
▪ Control point
▪ E.g., Battery service
▪ Battery level (read), percentage 0 – 100%
▪ Read & write access
Bluetooth & The Very Latest Windows – Andreas Jakl
Profile
Service
Characteristic
Characteristic
Characteristic
Service
Characteristic
Windows 10 Creators Update
Bluetooth & The Very Latest Windows – Andreas Jakl
https://blogs.windows.com/buildingapps/2017/01/13/new-bluetooth-features-in-creators-update-gatt-server-bluetooth-le/
NEW!
Support?
Bluetooth & The Very Latest Windows – Andreas Jakl
var localAdapter = await BluetoothAdapter.GetDefaultAsync();
Debug.WriteLine("Low energy supported? -> " +
localAdapter.IsLowEnergySupported);
Debug.WriteLine("Central role supported? -> " +
localAdapter.IsCentralRoleSupported);
Debug.WriteLine("Peripheral role supported? -> " +
localAdapter.IsPeripheralRoleSupported);
Support?
Bluetooth & The Very Latest Windows – Andreas Jakl
var localAdapter = await BluetoothAdapter.GetDefaultAsync();
Debug.WriteLine("Low energy supported? -> " +
localAdapter.IsLowEnergySupported);
Debug.WriteLine("Central role supported? -> " +
localAdapter.IsCentralRoleSupported);
Debug.WriteLine("Peripheral role supported? -> " +
localAdapter.IsPeripheralRoleSupported);New APIs!
Read Battery Level of Bluetooth Beacon
Bluetooth & The Very Latest Windows – Andreas Jakl
using (var bluetoothLeDevice =
await BluetoothLEDevice.FromBluetoothAddressAsync(bluetoothAddress))
Access Bluetooth device1
Query GATT services2
var gattServices = await bluetoothLeDevice.GetGattServicesAsync();
00001800-0000-1000-8000-00805f9b34fb
00001801-0000-1000-8000-00805f9b34fb
0000180a-0000-1000-8000-00805f9b34fb
0000180f-0000-1000-8000-00805f9b34fb
[…]
https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.battery_service.xml
foreach (var curService in gattServices.Services)
{
var gattCharacteristics = await curService.GetCharacteristicsAsync();
Read Battery Level of Bluetooth Beacon
Bluetooth & The Very Latest Windows – Andreas Jakl
Query characteristics3
Characteristic Handle: 20
UUID: 00002a19-0000-1000-8000-00805f9b34fb
https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.characteristic.battery_level.xml
Read Battery Level of Bluetooth Beacon
Bluetooth & The Very Latest Windows – Andreas Jakl
Process characteristics4
foreach (var curCharacteristic in gattCharacteristics.Characteristics)
{
if (curCharacteristic.CharacteristicProperties.HasFlag(
GattCharacteristicProperties.Read))
{
var result = await curCharacteristic.ReadValueAsync();
64 (Hex) -> 100% (Decimal)
THANK YOU!
Andreas Jakl
@andijakl
andreasjakl.com
Bluetooth & The Very Latest Windows – Andreas Jakl

Contenu connexe

Similaire à Bluetooth Beacons - Bluetooth 5, iBeacon, Eddystone, Arduino, Windows 10 & More

Better With Friends: Android+NFC+Arduino
Better With Friends: Android+NFC+ArduinoBetter With Friends: Android+NFC+Arduino
Better With Friends: Android+NFC+ArduinoPearl Chen
 
Kseniia Shumelchyk - Android iBeacon development
Kseniia Shumelchyk - Android iBeacon developmentKseniia Shumelchyk - Android iBeacon development
Kseniia Shumelchyk - Android iBeacon developmentCodemotion
 
Nio100 product guide 20150520
Nio100 product guide 20150520Nio100 product guide 20150520
Nio100 product guide 20150520和得 王
 
Architecting io t solutions with microisoft azure ignite tour version
Architecting io t solutions with microisoft azure ignite tour versionArchitecting io t solutions with microisoft azure ignite tour version
Architecting io t solutions with microisoft azure ignite tour versionAlon Fliess
 
VIA IOT Presentation
VIA IOT PresentationVIA IOT Presentation
VIA IOT PresentationAlex Lau
 
Fiware IoT Proposal & Community
Fiware IoT Proposal & Community Fiware IoT Proposal & Community
Fiware IoT Proposal & Community TIDChile
 
Build embedded and IoT solutions with Microsoft Windows IoT Core (BRK30077)
Build embedded and IoT solutions with Microsoft Windows IoT Core (BRK30077)Build embedded and IoT solutions with Microsoft Windows IoT Core (BRK30077)
Build embedded and IoT solutions with Microsoft Windows IoT Core (BRK30077)Callon Campbell
 
s2c-success-story-actt.pdf
s2c-success-story-actt.pdfs2c-success-story-actt.pdf
s2c-success-story-actt.pdfS2C Limited
 
IoThings you don't even need to hack
IoThings you don't even need to hackIoThings you don't even need to hack
IoThings you don't even need to hackSlawomir Jasek
 
Can we build an Azure IoT controlled device in less than 40 minutes that cost...
Can we build an Azure IoT controlled device in less than 40 minutes that cost...Can we build an Azure IoT controlled device in less than 40 minutes that cost...
Can we build an Azure IoT controlled device in less than 40 minutes that cost...Codemotion Tel Aviv
 
Make the Smartcard great again
Make the Smartcard great againMake the Smartcard great again
Make the Smartcard great againEric Larcheveque
 
20151117 IoT를 위한 서비스 구성과 개발
20151117 IoT를 위한 서비스 구성과 개발20151117 IoT를 위한 서비스 구성과 개발
20151117 IoT를 위한 서비스 구성과 개발영욱 김
 
The Physical World meets the Web
The Physical World meets the WebThe Physical World meets the Web
The Physical World meets the WebMaximiliano Firtman
 
IEEE Computer Society Phoenix Chapter - Internet of Things Innovations & Mega...
IEEE Computer Society Phoenix Chapter - Internet of Things Innovations & Mega...IEEE Computer Society Phoenix Chapter - Internet of Things Innovations & Mega...
IEEE Computer Society Phoenix Chapter - Internet of Things Innovations & Mega...Mark Goldstein
 
Windows iot barone
Windows iot baroneWindows iot barone
Windows iot baroneDotNetCampus
 
MICROSOFT E IL MONDO IOT
MICROSOFT E IL MONDO IOTMICROSOFT E IL MONDO IOT
MICROSOFT E IL MONDO IOTDotNetCampus
 
IoT Sensor Sensibility - Hull Digital - C4Di - Feb 2016
IoT Sensor Sensibility - Hull Digital - C4Di - Feb 2016IoT Sensor Sensibility - Hull Digital - C4Di - Feb 2016
IoT Sensor Sensibility - Hull Digital - C4Di - Feb 2016Glynn Bird
 

Similaire à Bluetooth Beacons - Bluetooth 5, iBeacon, Eddystone, Arduino, Windows 10 & More (20)

IoT on azure
IoT on azureIoT on azure
IoT on azure
 
Better With Friends: Android+NFC+Arduino
Better With Friends: Android+NFC+ArduinoBetter With Friends: Android+NFC+Arduino
Better With Friends: Android+NFC+Arduino
 
Kseniia Shumelchyk - Android iBeacon development
Kseniia Shumelchyk - Android iBeacon developmentKseniia Shumelchyk - Android iBeacon development
Kseniia Shumelchyk - Android iBeacon development
 
Nio100 product guide 20150520
Nio100 product guide 20150520Nio100 product guide 20150520
Nio100 product guide 20150520
 
Architecting io t solutions with microisoft azure ignite tour version
Architecting io t solutions with microisoft azure ignite tour versionArchitecting io t solutions with microisoft azure ignite tour version
Architecting io t solutions with microisoft azure ignite tour version
 
VIA IOT Presentation
VIA IOT PresentationVIA IOT Presentation
VIA IOT Presentation
 
Fiware IoT Proposal & Community
Fiware IoT Proposal & Community Fiware IoT Proposal & Community
Fiware IoT Proposal & Community
 
Build embedded and IoT solutions with Microsoft Windows IoT Core (BRK30077)
Build embedded and IoT solutions with Microsoft Windows IoT Core (BRK30077)Build embedded and IoT solutions with Microsoft Windows IoT Core (BRK30077)
Build embedded and IoT solutions with Microsoft Windows IoT Core (BRK30077)
 
s2c-success-story-actt.pdf
s2c-success-story-actt.pdfs2c-success-story-actt.pdf
s2c-success-story-actt.pdf
 
IoThings you don't even need to hack
IoThings you don't even need to hackIoThings you don't even need to hack
IoThings you don't even need to hack
 
Can we build an Azure IoT controlled device in less than 40 minutes that cost...
Can we build an Azure IoT controlled device in less than 40 minutes that cost...Can we build an Azure IoT controlled device in less than 40 minutes that cost...
Can we build an Azure IoT controlled device in less than 40 minutes that cost...
 
Make the Smartcard great again
Make the Smartcard great againMake the Smartcard great again
Make the Smartcard great again
 
20151117 IoT를 위한 서비스 구성과 개발
20151117 IoT를 위한 서비스 구성과 개발20151117 IoT를 위한 서비스 구성과 개발
20151117 IoT를 위한 서비스 구성과 개발
 
The Physical World meets the Web
The Physical World meets the WebThe Physical World meets the Web
The Physical World meets the Web
 
IEEE Computer Society Phoenix Chapter - Internet of Things Innovations & Mega...
IEEE Computer Society Phoenix Chapter - Internet of Things Innovations & Mega...IEEE Computer Society Phoenix Chapter - Internet of Things Innovations & Mega...
IEEE Computer Society Phoenix Chapter - Internet of Things Innovations & Mega...
 
Windows iot barone
Windows iot baroneWindows iot barone
Windows iot barone
 
MICROSOFT E IL MONDO IOT
MICROSOFT E IL MONDO IOTMICROSOFT E IL MONDO IOT
MICROSOFT E IL MONDO IOT
 
SIGFOX Makers Tour - Porto
SIGFOX Makers Tour - PortoSIGFOX Makers Tour - Porto
SIGFOX Makers Tour - Porto
 
IoT Sensor Sensibility - Hull Digital - C4Di - Feb 2016
IoT Sensor Sensibility - Hull Digital - C4Di - Feb 2016IoT Sensor Sensibility - Hull Digital - C4Di - Feb 2016
IoT Sensor Sensibility - Hull Digital - C4Di - Feb 2016
 
Google wi fi
Google wi fiGoogle wi fi
Google wi fi
 

Plus de Andreas Jakl

Create Engaging Healthcare Experiences with Augmented Reality
Create Engaging Healthcare Experiences with Augmented RealityCreate Engaging Healthcare Experiences with Augmented Reality
Create Engaging Healthcare Experiences with Augmented RealityAndreas Jakl
 
AR / VR Interaction Development with Unity
AR / VR Interaction Development with UnityAR / VR Interaction Development with Unity
AR / VR Interaction Development with UnityAndreas Jakl
 
Android Development with Kotlin, Part 3 - Code and App Management
Android Development with Kotlin, Part 3 - Code and App ManagementAndroid Development with Kotlin, Part 3 - Code and App Management
Android Development with Kotlin, Part 3 - Code and App ManagementAndreas Jakl
 
Android Development with Kotlin, Part 2 - Internet Services and JSON
Android Development with Kotlin, Part 2 - Internet Services and JSONAndroid Development with Kotlin, Part 2 - Internet Services and JSON
Android Development with Kotlin, Part 2 - Internet Services and JSONAndreas Jakl
 
Android Development with Kotlin, Part 1 - Introduction
Android Development with Kotlin, Part 1 - IntroductionAndroid Development with Kotlin, Part 1 - Introduction
Android Development with Kotlin, Part 1 - IntroductionAndreas Jakl
 
Android and NFC / NDEF (with Kotlin)
Android and NFC / NDEF (with Kotlin)Android and NFC / NDEF (with Kotlin)
Android and NFC / NDEF (with Kotlin)Andreas Jakl
 
Basics of Web Technologies
Basics of Web TechnologiesBasics of Web Technologies
Basics of Web TechnologiesAndreas Jakl
 
Which new scenarios are enabled by Windows 10 for NFC, Bluetooth LE & Beacons?
Which new scenarios are enabled by Windows 10 for NFC, Bluetooth LE & Beacons?Which new scenarios are enabled by Windows 10 for NFC, Bluetooth LE & Beacons?
Which new scenarios are enabled by Windows 10 for NFC, Bluetooth LE & Beacons?Andreas Jakl
 
Mobile Test Automation
Mobile Test AutomationMobile Test Automation
Mobile Test AutomationAndreas Jakl
 
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Andreas Jakl
 
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows PhoneWinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows PhoneAndreas Jakl
 
Nokia New Asha Platform Developer Training
Nokia New Asha Platform Developer TrainingNokia New Asha Platform Developer Training
Nokia New Asha Platform Developer TrainingAndreas Jakl
 
Windows Phone 8 NFC Quickstart
Windows Phone 8 NFC QuickstartWindows Phone 8 NFC Quickstart
Windows Phone 8 NFC QuickstartAndreas Jakl
 
Windows (Phone) 8 NFC App Scenarios
Windows (Phone) 8 NFC App ScenariosWindows (Phone) 8 NFC App Scenarios
Windows (Phone) 8 NFC App ScenariosAndreas Jakl
 
Windows 8 Platform NFC Development
Windows 8 Platform NFC DevelopmentWindows 8 Platform NFC Development
Windows 8 Platform NFC DevelopmentAndreas Jakl
 
NFC Development with Qt - v2.2.0 (5. November 2012)
NFC Development with Qt - v2.2.0 (5. November 2012)NFC Development with Qt - v2.2.0 (5. November 2012)
NFC Development with Qt - v2.2.0 (5. November 2012)Andreas Jakl
 
06 - Qt Communication
06 - Qt Communication06 - Qt Communication
06 - Qt CommunicationAndreas Jakl
 
05 - Qt External Interaction and Graphics
05 - Qt External Interaction and Graphics05 - Qt External Interaction and Graphics
05 - Qt External Interaction and GraphicsAndreas Jakl
 
03 - Qt UI Development
03 - Qt UI Development03 - Qt UI Development
03 - Qt UI DevelopmentAndreas Jakl
 

Plus de Andreas Jakl (20)

Create Engaging Healthcare Experiences with Augmented Reality
Create Engaging Healthcare Experiences with Augmented RealityCreate Engaging Healthcare Experiences with Augmented Reality
Create Engaging Healthcare Experiences with Augmented Reality
 
AR / VR Interaction Development with Unity
AR / VR Interaction Development with UnityAR / VR Interaction Development with Unity
AR / VR Interaction Development with Unity
 
Android Development with Kotlin, Part 3 - Code and App Management
Android Development with Kotlin, Part 3 - Code and App ManagementAndroid Development with Kotlin, Part 3 - Code and App Management
Android Development with Kotlin, Part 3 - Code and App Management
 
Android Development with Kotlin, Part 2 - Internet Services and JSON
Android Development with Kotlin, Part 2 - Internet Services and JSONAndroid Development with Kotlin, Part 2 - Internet Services and JSON
Android Development with Kotlin, Part 2 - Internet Services and JSON
 
Android Development with Kotlin, Part 1 - Introduction
Android Development with Kotlin, Part 1 - IntroductionAndroid Development with Kotlin, Part 1 - Introduction
Android Development with Kotlin, Part 1 - Introduction
 
Android and NFC / NDEF (with Kotlin)
Android and NFC / NDEF (with Kotlin)Android and NFC / NDEF (with Kotlin)
Android and NFC / NDEF (with Kotlin)
 
Basics of Web Technologies
Basics of Web TechnologiesBasics of Web Technologies
Basics of Web Technologies
 
Which new scenarios are enabled by Windows 10 for NFC, Bluetooth LE & Beacons?
Which new scenarios are enabled by Windows 10 for NFC, Bluetooth LE & Beacons?Which new scenarios are enabled by Windows 10 for NFC, Bluetooth LE & Beacons?
Which new scenarios are enabled by Windows 10 for NFC, Bluetooth LE & Beacons?
 
Mobile Test Automation
Mobile Test AutomationMobile Test Automation
Mobile Test Automation
 
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
 
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows PhoneWinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
 
Nokia New Asha Platform Developer Training
Nokia New Asha Platform Developer TrainingNokia New Asha Platform Developer Training
Nokia New Asha Platform Developer Training
 
Windows Phone 8 NFC Quickstart
Windows Phone 8 NFC QuickstartWindows Phone 8 NFC Quickstart
Windows Phone 8 NFC Quickstart
 
Windows (Phone) 8 NFC App Scenarios
Windows (Phone) 8 NFC App ScenariosWindows (Phone) 8 NFC App Scenarios
Windows (Phone) 8 NFC App Scenarios
 
Windows 8 Platform NFC Development
Windows 8 Platform NFC DevelopmentWindows 8 Platform NFC Development
Windows 8 Platform NFC Development
 
NFC Development with Qt - v2.2.0 (5. November 2012)
NFC Development with Qt - v2.2.0 (5. November 2012)NFC Development with Qt - v2.2.0 (5. November 2012)
NFC Development with Qt - v2.2.0 (5. November 2012)
 
06 - Qt Communication
06 - Qt Communication06 - Qt Communication
06 - Qt Communication
 
05 - Qt External Interaction and Graphics
05 - Qt External Interaction and Graphics05 - Qt External Interaction and Graphics
05 - Qt External Interaction and Graphics
 
04 - Qt Data
04 - Qt Data04 - Qt Data
04 - Qt Data
 
03 - Qt UI Development
03 - Qt UI Development03 - Qt UI Development
03 - Qt UI Development
 

Dernier

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 

Dernier (20)

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Bluetooth Beacons - Bluetooth 5, iBeacon, Eddystone, Arduino, Windows 10 & More

  • 1. St. Pölten University of Applied Sciences Platzhalter für möglichen Bildeinsatz Bluetooth Beacons Bluetooth 5, iBeacon, Eddystone, Arduino, Windows 10 Creators Update & More Version 2.0 – June 21st, 2017 Andreas Jakl, Twitter: @andijakl, Blog: andreasjakl.com Lecturer, Digital Healthcare, FH St. Pölten Platzhalter für möglichen Bildeinsatz
  • 2. BLUETOOTH BEACON OVERVIEW Bluetooth & The Very Latest Windows – Andreas Jakl
  • 3. Bluetooth & The Very Latest Windows – Andreas Jakl Transmit small packets of data e.g., ID & transmission power Up to ~70m No back communication channel Wake up listening device. Notification / app launch based on ID. Calculate distance through signal power. Your App
  • 4. Bluetooth & The Very Latest Windows – Andreas Jakl Battery 1-4 years Bluetooth chipset
  • 5. Beacon Use Cases Bluetooth & The Very Latest Windows – Andreas Jakl Indoor navigation & localization - Industry (e.g., maintenance) - Airports, shopping malls - Automated check-ins Augment shopping experience - Ads relevant to location, coupons - Open customer card when approaching cash register Museums & Events - Location info - Welcome note Asset tracking - Security monitoring: tool not allowed to leave room - Locate (misplaced) tools Public transport departure information
  • 6. Bluetooth & The Very Latest Windows – Andreas Jakl GPS ▪ Worldwide, outdoors ▪ Uni-directional ▪ Localization Beacons ▪ Also indoors, 0-70 m ▪ Uni-directional ▪ Proximity information NFC ▪ Contact ▪ Bi-directional ▪ Pay, Access, Trigger Now with iPhone support!
  • 7. Bluetooth LE -> ▪ New ▪ 2x Bandwidth (2 Mbps) without increased energy consumption ▪ 4x Range (allows whole home wireless) ▪ 8x Broadcasting Message Capacity ▪ Beacon frame size: 31 bytes -> 255 bytes ▪ Bluetooth 4 LE = feature within Bluetooth 5 ▪ Bluetooth LE / Smart is no more! ▪ Backwards Compatible Bluetooth & The Very Latest Windows – Andreas Jakl Samsung Galaxy S8
  • 8. Bluetooth & The Very Latest Windows – Andreas Jakl 0.00 1,000.00 2,000.00 3,000.00 4,000.00 5,000.00 6,000.00 2016 2017 2018 2019 2020 2021 Bluetooth enabled device shipments (in Millions) Cellular PCs/Peripherals Mobile Devices Networking Connected Home Smart Home Automotive Wearables and Healthcare Devices Beacons Source: Bluetooth e-Guide “Rethinking the future: Bluetooth 5, beacon technology and the Internet of Things”, https://www.bluetooth.com/bluetooth-5-guide Based on ABI Research 8.2 Million beacons 565.3 Million beacons
  • 9. BEACON FLAVORS iBeacons, Eddystone, Web Blueooth, Physical Web & more! Bluetooth & The Very Latest Windows – Andreas Jakl
  • 10. iBeacon™ & Eddystone™ iBeacon UUID, major & minor ID Proprietary specification https://developer.apple.com/ibeacon/ Bluetooth & The Very Latest Windows – Andreas Jakl Eddystone Beacon Eddystone-UID Beacon ID, Tx power level Eddystone-TLM Battery, temperature, sent frames, time running Eddystone-URL URL, Tx power level Open beacon format from Google https://github.com/google/eddystone Eddystone-EID Ephemeral Identifier, Tx power level
  • 11. LOW LEVEL BEACON INFO Arduino / Genuino 101 Bluetooth & The Very Latest Windows – Andreas Jakl
  • 12. Bluetooth & The Very Latest Windows – Andreas Jakl Arduino / Genuino 101 Integrated Bluetooth
  • 13. Bluetooth & The Very Latest Windows – Andreas Jakl 1. Install Curie Board and CurieBLE Library Warning: Windows Store version of Arduino IDE does not install all the necessary drivers for Intel Curie boards. Use standalone IDE from https://www.arduino.cc/ instead.
  • 14. Bluetooth & The Very Latest Windows – Andreas Jakl 2. Open CurieBLE > Central > Scan example
  • 15. Bluetooth & The Very Latest Windows – Andreas Jakl 3. Extend code to print manufacturer data
  • 16. Bluetooth & The Very Latest Windows – Andreas Jakl 4. Run and test FEAA = Eddystone service UUID 4C = Apple Manufacturer ID iBeacon UUID https://play.google.com/store/apps/details?id=net.alea.beaconsimulator
  • 17. BEACON APP DEVELOPMENT Windows 10 Bluetooth & The Very Latest Windows – Andreas Jakl
  • 18. Universal Beacon Library https://github.com/andijakl/universal-beacon Parse & create Beacon frames Assigns received frames to individual beacons Fully documented. Includes Windows 10 example app. Open Source license Bluetooth & The Very Latest Windows – Andreas Jakl
  • 19. Windows 10 Example _beaconManager = new BeaconManager(); _watcher = new BluetoothLEAdvertisementWatcher(); _watcher.Received += WatcherOnReceived; _watcher.Start(); 1 Initialize Beacon scanning API documentation: bit.ly/ProximityAPI private async void WatcherOnReceived( BluetoothLEAdvertisementWatcher sender, BluetoothLEAdvertisementReceivedEventArgs eventArgs) { await _dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => _beaconManager.ReceivedAdvertisement(eventArgs)); } 2 Beacon advertisement frame received callback Bluetooth & The Very Latest Windows – Andreas Jakl
  • 20. Example foreach (var bluetoothBeacon in _beaconManager.BluetoothBeacons.ToList()) { Debug.WriteLine("Beacon: " + bluetoothBeacon.BluetoothAddressAsString); Debug.WriteLine("Type: " + bluetoothBeacon.BeaconType); foreach (var beaconFrame in bluetoothBeacon.BeaconFrames.ToList()) { // Print a small sample of the available data parsed by the library if (beaconFrame is UrlEddystoneFrame) { Debug.WriteLine("Eddystone URL Frame"); Debug.WriteLine("URL: " + ((UrlEddystoneFrame) beaconFrame).CompleteUrl); } // ... }} 3 Access Beacon Info Bluetooth & The Very Latest Windows – Andreas Jakl
  • 21. Bluetooth Beacon Interactor Bluetooth & The Very Latest Windows – Andreas Jakl Windows 10 Library Example App = Free Bluetooth Beacon Interactor https://www.microsoft.com/store/apps/9NBLGGH1Z24K (Also available on HoloLens!)
  • 22. Buying Bluetooth Beacons Bluetooth & The Very Latest Windows – Andreas Jakl Starting at $60 (3 pcs)
  • 23. BLUETOOTH GATT Communication Without Pairing Bluetooth & The Very Latest Windows – Andreas Jakl
  • 24. Bluetooth Advertising Bluetooth & The Very Latest Windows – Andreas Jakl Peripheral Device (e.g., beacon) GAP = Generic Access Profile: makes devices visible, defines device interactions Central Device (e.g., phone) Central Device Central Device Central Device Peripheral is broadcasting. Beacons: advertising package contains all data (= 31 bytes for Bluetooth LE < 5)
  • 25. Bluetooth Communication Bluetooth & The Very Latest Windows – Andreas Jakl Central / GATT Client (e.g., phone) GATT = Generic Attribute Profile, data transfer through services and characteristics Peripheral / GATT Server (e.g. sensors, smart home components) Peripheral / GATT Server Peripheral / GATT Server Peripheral / GATT Server After established connection: 2-way communication. (connection != pairing)
  • 26. Profiles / Services / Characteristics ▪ Profile ▪ Pre-defined collection of services ▪ E.g., heart rate profile, blood pressure profile ▪ https://www.bluetooth.com/specifications/adopted- specifications#GATT Bluetooth & The Very Latest Windows – Andreas Jakl Profile
  • 27. Profiles / Services / Characteristics ▪ Service ▪ Data broken up into logical entities ▪ E.g., heart rate service, battery service ▪ https://www.bluetooth.com/specifications/gatt/servic es Bluetooth & The Very Latest Windows – Andreas Jakl Profile Service Service
  • 28. Profiles / Services / Characteristics ▪ Characteristic ▪ Single data point ▪ E.g., Heart rate service ▪ Measurement ▪ Body sensor location ▪ Control point ▪ E.g., Battery service ▪ Battery level (read), percentage 0 – 100% ▪ Read & write access Bluetooth & The Very Latest Windows – Andreas Jakl Profile Service Characteristic Characteristic Characteristic Service Characteristic
  • 29. Windows 10 Creators Update Bluetooth & The Very Latest Windows – Andreas Jakl https://blogs.windows.com/buildingapps/2017/01/13/new-bluetooth-features-in-creators-update-gatt-server-bluetooth-le/ NEW!
  • 30. Support? Bluetooth & The Very Latest Windows – Andreas Jakl var localAdapter = await BluetoothAdapter.GetDefaultAsync(); Debug.WriteLine("Low energy supported? -> " + localAdapter.IsLowEnergySupported); Debug.WriteLine("Central role supported? -> " + localAdapter.IsCentralRoleSupported); Debug.WriteLine("Peripheral role supported? -> " + localAdapter.IsPeripheralRoleSupported);
  • 31. Support? Bluetooth & The Very Latest Windows – Andreas Jakl var localAdapter = await BluetoothAdapter.GetDefaultAsync(); Debug.WriteLine("Low energy supported? -> " + localAdapter.IsLowEnergySupported); Debug.WriteLine("Central role supported? -> " + localAdapter.IsCentralRoleSupported); Debug.WriteLine("Peripheral role supported? -> " + localAdapter.IsPeripheralRoleSupported);New APIs!
  • 32. Read Battery Level of Bluetooth Beacon Bluetooth & The Very Latest Windows – Andreas Jakl using (var bluetoothLeDevice = await BluetoothLEDevice.FromBluetoothAddressAsync(bluetoothAddress)) Access Bluetooth device1 Query GATT services2 var gattServices = await bluetoothLeDevice.GetGattServicesAsync(); 00001800-0000-1000-8000-00805f9b34fb 00001801-0000-1000-8000-00805f9b34fb 0000180a-0000-1000-8000-00805f9b34fb 0000180f-0000-1000-8000-00805f9b34fb […] https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.battery_service.xml
  • 33. foreach (var curService in gattServices.Services) { var gattCharacteristics = await curService.GetCharacteristicsAsync(); Read Battery Level of Bluetooth Beacon Bluetooth & The Very Latest Windows – Andreas Jakl Query characteristics3 Characteristic Handle: 20 UUID: 00002a19-0000-1000-8000-00805f9b34fb https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.characteristic.battery_level.xml
  • 34. Read Battery Level of Bluetooth Beacon Bluetooth & The Very Latest Windows – Andreas Jakl Process characteristics4 foreach (var curCharacteristic in gattCharacteristics.Characteristics) { if (curCharacteristic.CharacteristicProperties.HasFlag( GattCharacteristicProperties.Read)) { var result = await curCharacteristic.ReadValueAsync(); 64 (Hex) -> 100% (Decimal)
  • 35. THANK YOU! Andreas Jakl @andijakl andreasjakl.com Bluetooth & The Very Latest Windows – Andreas Jakl