+ All Categories
Home > Technology > Introduzione alla tecnologia iBeacon

Introduzione alla tecnologia iBeacon

Date post: 17-Jul-2015
Category:
Upload: stefano-sanna
View: 1,709 times
Download: 1 times
Share this document with a friend
Popular Tags:
35
Stefano Sanna Introduzione alla tecnologia iBeacon Open Reply ROME 27-28 marzo 2015
Transcript
Page 1: Introduzione alla tecnologia iBeacon

Stefano Sanna Introduzione alla tecnologia iBeacon Open Reply

ROME 27-28 marzo 2015

Page 2: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

Presentazioni Localizzazioni e prossimità

Bluetooth Low Energy in due slide iBeacon in due slide iBeacon nel dettaglio

Hands-on con Android Referenze e conclusioni

Agenda

Bluetooth Low Energy device by Nordic Semiconductor

Page 3: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

Manager @

Passionate mobile developer since 1999 It all began with a Psion 5MX…

Technical writer Android Programmazione Avanzata Java Micro Edition “network programming”

Loyal JIPDay/JavaDay/Codemotion speaker!

Speaker

2013201320122005 2006 2007 2009 2010

Page 4: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

iBeacons è una tecnologia proprietaria sviluppata da Apple, le cui specifiche sono coperte da accordi di riservatezza con terze parti che producono dispositivi compatibili

Questa presentazione non è basata su reverse-engineering di componenti software proprietari di Apple né sull’attacco a componenti cifrate, ma sull’analisi dei pacchetti in chiaro trasmessi dai beacon stessi

Le informazioni contenute in questa presentazione hanno puro scopo divulgativo e non sono da considerarsi un riferimento tecnico alla specifica di Apple. Si invita il lettore a contattare per eventuali partnership: Becoming a Licensee - Get access to resources for developing or manufacturing hardware that integrates iBeacon technology using the iBeacon Proximity Specification. As a Licensee, you’ll receive: iBeacon Logo and Identity Guidelines, iBeacon technical specifications, Hardware technical support. To become an iBeacon Licensee you will need to create or register a business Apple ID, submit an enrollment form, complete a credit review, and execute an iBeacon License.

Proprietà intellettuale e licenze

https://developer.apple.com/ibeacon/

Logo ufficiale iBeacons, il cui utilizzo è concesso esclusivamente licenziatari della tecnologia.

Page 5: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

• •

Page 6: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

Location & Proximity

GeofenceRegion

Page 7: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

WiFi Nasce per essere tutt’altro che a corto raggio! Alta velocità, alti consumi

Bluetooth Classic Inefficace in ambienti affollati (di device) Tempi di scansione inadeguati (sino a 15-20s)

Infrared Oltre che obsoleto, funziona solo con ricezione a vista (letteralmente)

NFC + Accelerometro/Giroscopio Affascinante, ma difficile attuazione

Localizzazione a corto raggio e prossimità

Page 8: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

WWDC 2013, lancio di iOS7

“iBeacons for Bluetooth LE micro location” (Craig Federighi)

Page 9: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

Accelerazione

Fonte: Google Trends per “Bluetooth Low Energy”

WWDC 2013

Page 10: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

Specializzazione a basso consumo del Bluetooth Fa parte della specifica Bluetooth 4.0 (e successive) Utilizza parte dello stack di Bluetooth Classic Richiede hardware dedicato (non basta update software) Definisce due ruoli (central vs peripheral) non interscambiabili

Caratteristiche comunicazione ridottissima complessità bassa velocità corto raggio bassa potenza … al fine di avere consumi irrisori e dimensioni minuscole

Bluetooth Low Energy in due slide

Page 11: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

Bluetooth Classic Il dispositivo che effettua la scansione (inquirer) invia un messaggio broadcast per rilevare i dispositivi limitrofi Se configurati come “visibili”, i dispositivi prossimi rispondono con un messaggio di presenza in un tempo variabile L’intero processo può richiedere molti secondi In caso di sovraffollamento, il processo fallisce (senza errori!)

Bluetooth Low Energy Se configurati come “visibili”, i dispositivi (peripheral) emettono spontaneamente un messaggio periodico di advertising Il pacchetto di advertising può contenere informazioni utili, evitando connessioni superflue La scansione avviene in pochi secondi e il sovraffollamento ègestito correttamente

Discovery e advertising

Page 12: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

Un iBeacon è un device BLE Peripheral che emette periodicamente un pacchetto di advertising contenente, su campo custom (Manufacturer Specific), un identificativo (UUID) e due variabili (major e minor)

Un valore indica il livello di segnale ad un metro di distanza: il ricevente, confrontando il livello di segnale ricevuto e quello dichiarato dal beacon, è in grado di stimare la distanza (immediate, near, far)

L’app resta dormiente finché l’utente non entra nella regione di un beacon, ovvero un apposito servizio (di sistema o custom) rileva il beacon con UUID desiderato, risvegliandola e attirando l’attenzione dell’utente

iBeacon in due slide

Page 13: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

Caso d’uso tipico

Page 14: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

Regioni

immediate

near

far

Page 15: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

Il payload del pacchetto di advertising in BLE

Field 1 Field 2 Field n Field N…

31 byte (max 2 pacchetti)

Field nLunghezza (1 byte)

ID Campo (1 byte)

Payload

Page 16: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

Il field “Manufacturer Specific” di un iBeacon

0x1A (26 byte)

0xFF (Man. Spec.)

0x4C00 (Man ID: Apple 0x004C, little endian)

0x02 (beacon?)

0x15 (length?) UUID UUID

UUID UUID UUID UUID

UUID UUID UUID UUID

UUID UUID UUID UUID

UUID UUID Major

Minor Power

Page 17: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

UUID diversi indicano servizi/provider diversi

Dato un UUID, il Major indica la classe di appartenenza del beacon

Dati UUID e Major, il Minor indica lo specifico beacon all’interno di una classe

UUID, Major, Minor

Page 18: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

UUID, Major e Minor

Policlinico Umberto I

Policlinico Gemelli

Bambin Gesù

UUID 02FF12CC..23

02FF12CC..23

02FF12CC..23

Major 1 2 3

Minor

Pronto soccorso 45 45 45

Pediatria 46 46 46

Ortopedia 47 47 47

Page 19: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

Chip compatibile Bluetooth 4.0 peripheral Più diffusi: Texas Instruments, Nordic Semiconductor, Broadcom Spesso con funzionalità di microcontrollore Antenna miniaturizzata su PCB Batteria a bottone integrata

Programmazione Via BLE (agendo su Characteristic apposite) Via USB

Installazione “a muro” o “a soffitto” Solitamente sono autoalimentati Muri, strutture e arredi determinano la morfologia della regione

Anatomia di un beacon

Bluetooth Low Energy device by Nordic Semiconductor

Page 20: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

Estimote Pionieri nella produzione di beacon particolarmente accattivanti nel design e potenti per tool e SDK Tra i primi certificati Apple, hanno recentemente lanciato i microscopici “stickers” da attaccare a singoli oggetti.

Kontact Meno curati come design, risultano più affidabili e di più facile manutenzione Le recenti estensioni “cloud beacon” consentono la programmazione remota. Attualmente certificati Apple

“Senza infamia, senza lode” su eBay È sufficiente cercare “iBeacon” per trovare soluzioni moltoeconomiche per iniziare la sperimentazione

Prodotti commerciali

Page 21: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

iOS È la piattaforma di riferimento: API e doc standard da iOS 7 https://developer.apple.com/ibeacon/

Android Dipende dal supporto BLE, introdotto in Android 4.3 Meglio lavorare direttamente su Lollipop (potendo scegliere) Sviluppo custom o con librerie di terze parti

Windows Il supporto BLE completo arriverà su Windows 10

Linux Bluetooth Low Energy supportato da Bluez 5.1 in poi

BLE & iBeacon per sistema operativo

Page 22: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

È sufficiente una installazione di Linux “piccola a piacere” (compresi Arduino Yun o Raspbian su Raspberry PI) per farsi un iBeacon in casa

iBeacon “fai da te”

hciconfig hci0 up

hciconfig hci0 leadv 3

hcitool -i hci0 cmd 0x08 0x0008 1e 02 01 1a 1a ff 4c 00 02 15 UUID MAJOR MINOR POWER

HCI_LE_Set_Advertising_DataHCI_LE_Set_Advertising_Data

seguono 30 byte

hcitool -i hci0 cmd 0x08 0x0008 1e 02 01 1a 1a ff 4c 00 02 15 76 6f 72 72 65 69 75 6e 61 70 6f 72 73 63 68 65 00 00 00 00 c5

Page 23: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

Hardware Solo dispositivi con chipset Bluetooth 4.0

API Android 4.2.x solo con librerie proprietarie (Samsung, HTC, Broadcom…) API standard a partire da Android 4.3 API standard “affidabile” da KitKat API standard “completa” da Lollipop Esistono diverse librerie ed SDK open, ma vale la pena sperimentare!

Variabilità Il comportamento dipende davvero dal dispositivo (povero Nexus 5!)

iBeacon su Android

Page 24: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

Tipica architettura su Android

Page 25: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

Scansione BLE su KitKat

BluetoothManager manager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);

adapter = manager.getAdapter();

boolean started = adapter.startLeScan(mLeScanCallback);

BluetoothAdapter.LeScanCallback mLeScanCallback = new BluetoothAdapter.LeScanCallback() {

@Override

public void onLeScan(final BluetoothDevice device, int rssi, final byte[] scanRecord) {

// trovato un qualsiasi device BLE

}

};

La callback è invocata per qualsiasi tipo di device BLE trovato

Occorre decodificare lo scanRecord per capire di che oggettosi tratti (beacon, wearable, gadget…)

Page 26: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

È possibile restringere la ricerca ai soli device con un certo Manufacturer ID È consentito indicare una maschera per il payload

Scansione BLE su Lollipop

final int MANUFACTURER_ID = 0x004c;

byte[] MAN_DATA = new byte[]{0x02, 0x15, 0x76, 0x6f, 0x72, 0x72, 0x65, 0x69, 0x75, 0x6e, 0x61, 0x70, 0x6f, 0x72, 0x73, 0x63, 0x68, 0x65, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};

byte[] MASK = new byte[] {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0,0,0,0,0}

Beacon Service UUID Major Minor Power

4 byte 16 byte 2 byte 2 byte 1 byte

1,1,1,1 1,1, […], 1,1 0, 0 0, 0 0

Assegnato Assegnato Arbitrario Arbitrario Arbitrario

beacon service

major, minor, pwr

Page 27: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

Scansione BLE su Lollipop

BluetoothLeScanner scanner = BluetoothAdapter.getDefaultAdapter().getBluetoothLeScanner();

ScanFilter.Builder builder = new ScanFilter.Builder();

ScanFilter filter = builder.setManufacturerData(MANUFACTURER_ID, MAN_DATA, MASK).build();

ScanSettings.Builder ssbuilder = new ScanSettings.Builder();

ssbuilder.setScanMode(ScanSettings.SCAN_MODE_LOW_POWER).setReportDelay(1000);

ArrayList<ScanFilter> filters = new ArrayList<>();

filters.add(filter);

scanner.startScan(filters, ssbuilder.build(), scanCallback);

Non supportato su Nexus 5!!!

Nota: la scansione è continua

Page 28: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

Scansione BLE su LollipopScanCallback scanCallBack = new ScanCallback() {

@Override

public void onScanResult(int callbackType, ScanResult result) {

}

@Override

public void onBatchScanResults(List<ScanResult> results) {

}

@Override

public void onScanFailed(int errorCode) {

}

}

Contiene tutte le informazioni di basso (BluetoothDevice) e alto livello (Payload) del device trovato

Page 29: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

Il calcolo distanza smartphone-beacon dipende dalla frequenza operativa (2.4GHz), dalle caratteristiche dell’ambiente e dei due apparati

Il pathloss (attenuazione lungo il percorso) è: PL = PWR - RSSI

La distanza approssimata è: se PL < 0 (c’è un guadagno): D = (RSSI/PWR) ^ 10 se PL > 0 (attenuazione): D = 0.89976 * ratio^7.7095 + 0.111;

Valutazione della distanza

http://developer.radiusnetworks.com/2014/12/04/fundamentals-of-beacon-ranging.html

Page 30: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

Device as a beacon Lo smartphone opera come un beacon, tracciabile da altri

Security App vs beacon: è un beacon autentico o un clone? Beacon vs app: si stanno abilitando app della concorrenza?

Privacy Fixed beacon: quale app sta tracciando i beacon?

Progetti alternativi Google Physical Web: http://google.github.io/physical-web/ AltBeacon: https://github.com/AltBeacon

Altri temi interessanti

Page 31: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

La tecnologia iBeacon ha dato nuovo impulso alla localizzazione indoor e all’erogazione di servizi in prossimità

L’industria IoT sta adottando massicciamente BLE come infrastruttura di comunicazione e le nuove evoluzioni del protocollo renderanno ancora più diffusi i servizi di localizzazione a cortissimo raggio

Si aprono delicate problematiche di sicurezza e privacy, che devono essere affrontate con urgenza ma con la dovuta lucidità

Conclusioni

Page 32: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

Apple: iBeacon for Developers https://developer.apple.com/ibeacon/

Bluetooth Low Energy: The Developer's Handbook by Robin Heydon http://www.amazon.it/dp/013288836X

Learning iBeacon by Craig Gilchrist https://www.packtpub.com/application-development/learning-ibeacon

Letture utili

Page 33: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

Introduzione a Bluetooth Low Energy Codemotion 2013 Milano http://www.slideshare.net/gerdavax/bluetooth-low-energy-28763173

Augmented Smartphone Droidcon IT 2014 Torino http://www.slideshare.net/gerdavax/augmented-smartphone

Bluetooth Low Energy & Geofence

Page 34: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

email gerdavax AT “la posta di google”

twitter @gerdavax

slideshare http://www.slideshare.net/gerdavax

Contatti

Grazie

Page 35: Introduzione alla tecnologia iBeacon

ROME 27-28 marzo 2015 – Introduzione alla tecnologia iBeacon [Stefano Sanna]

Leave your feedback on Joind.in!

https://joind.in/event/view/3347


Recommended