I possibili casi d'uso e i modelli di business per il beacon, che consente l'interazione con l'utente in base alla posizione anche all'interno degli edifici, sono attualmente oggetto di un acceso dibattito. Pubblicità e sconti in negozio, pagamenti tramite dispositivi mobili, navigazione, trasporto pubblico, localizzazione in edifici pubblici e musei e domotica sono solo la punta dell'iceberg. Senza dimenticare, naturalmente, l'onnipresente raccolta di dati, ora nuova e con informazioni precise sulla posizione. Prima di approfondire la tecnologia iBeacon, nell'articolo menzioneremo anche l'iBeacon SDK.
Il protocollo iBeacon sviluppato da Apple basato su Bluetooth Low Energy è supportato da una varietà di dispositivi. L'articolo illustra iBeacon e il Bluetooth Low Energy e utilizza l'esempio dello sviluppo di un'app Android per liste della spesa basate sulla posizione per mostrare l'interazione di un'app con iBeacon in base alla posizione. L'implementazione si basa sull'SDK iBeacon di MOKOSmart.
La tecnologia di base per iBeacon è il Bluetooth. Il Bluetooth Low Energy (BLE), spesso definito il marchio di marketing Bluetooth Smart, è stato incluso nella versione 4.0 dello standard Bluetooth. Il BLE non è retrocompatibile con le versioni precedenti chiamate Bluetooth Classic. Il Bluetooth 4.0 specifica che i dispositivi conformi allo standard devono implementare una o entrambe le varianti, ovvero Low Energy o Classic.
BLE è implementato su quasi tutti gli smartphone attuali come l'iPhone 4+ e il Samsung Galaxy 3+. Un iPhone può funzionare sia come ricevitore di segnali iBeacon che, a differenza di Android, come faro Android include driver BLE dalla versione API 18, ovvero Android 4.3. Tra l'altro, anche i computer attuali supportano BLE. In Windows, tuttavia, i driver sono integrati solo a partire da Windows 8 e da circa la metà del 2011, BLE è disponibile sui computer Apple.
BLE continua a supportare una varietà di dispositivi periferici, come cardiofrequenzimetri ed elicotteri giocattolo, termometri, attrezzature per il fitness e spazzolini da denti, sì, spazzolini da denti e scarpe da ginnastica.
Tag di Texas Instruments, che oltre alla sua funzione di iBeacon può anche misurare temperatura, umidità, pressione e accelerazione. Il Sensor Tag è inoltre dotato di un giroscopio, un magnetometro e due pulsanti hardware. Il dispositivo ideale per controllare a distanza le presentazioni, trasmettendo e visualizzando l'umidità e la temperatura delle mani di chi parla. Credo che il mio prossimo progetto "sandpit" sarà Stage Fright-O-Mat. Potete trovare un elenco dettagliato dei dispositivi sul sito web ufficiale di Bluetooth.
Il modello di comunicazione utilizzato dai dispositivi per lo scambio di dati è chiamato GATT – Generic Attribute Profile. Il GATT definisce i ruoli del client e del server. Il client richiede i dati al server tramite servizi. Un servizio raggruppa diverse coppie chiave/valore atomiche, chiamate caratteristiche. Sia i servizi che le caratteristiche sono identificati tramite UUID e possono contenere anche ulteriori descrizioni. I servizi e le loro caratteristiche sono catalogati sotto forma di profili; la specifica ne definisce un'ampia gamma, dai settori dell'assistenza sanitaria, dello sport e del fitness e – nel nostro caso interessante – del rilevamento di prossimità. I singoli profili, i relativi servizi e le relative caratteristiche sono disponibili sul portale per sviluppatori Bluetooth, alla sezione Specifiche GATT.
Cosa sono gli iBeacon? iBeacon è una tecnologia molto semplice (e un marchio registrato di Apple) che consente l'interazione con le applicazioni in base alla posizione. Un beacon invia un segnale che può essere ricevuto da dispositivi compatibili con BLE ed elaborato dalle applicazioni installate su di esso. Il segnale contiene l'identificazione del beacon e la potenza di ricezione. Gli iBeacon stessi, quindi, contrariamente a dichiarazioni inesatte riportate dalla stampa, non sono in grado di fornire contenuti o tracciare il comportamento dei clienti. Questa è responsabilità delle applicazioni riceventi e quindi degli sviluppatori.
L'implementazione su larga scala degli iBeacon in Germania richiederà probabilmente molto tempo, ma ci sono alcuni esempi dagli Stati Uniti e dai Paesi Bassi. Ad esempio, la Major League Baseball ha dotato 28 stadi di iBeacon e li utilizza, tra le altre cose, per il check-in nell'app MLB "At the Ballpark".
Nella Casa di Rubens ad Anversa è stata allestita una vetrina che offre ai visitatori informazioni di base, come radiografie di dipinti e giochi di geocaching.
L'esempio più significativo in termini di dimensioni proviene da Apple stessa. Oltre 250 Apple Store sono stati dotati di iBeacon. In combinazione con l'app Apple Store, vengono inviati messaggi in base alla posizione agli acquirenti presenti nel negozio. Tuttavia, le possibili interazioni sembrano attualmente piuttosto limitate: le prime recensioni riportano solo due messaggi diversi (e piuttosto generici) che avrebbero ricevuto. Non sono state fornite offerte speciali o informazioni specifiche su singoli prodotti nelle vicinanze.
L'iBeacon SDK non utilizza un profilo BLE separato, bensì pacchetti pubblicitari Bluetooth, ovvero pacchetti broadcast, utilizzati per rilevare i dispositivi Bluetooth. Se siete interessati alla struttura esatta del pacchetto, potete leggere questo articolo, ad esempio, sul blog di Adam Warski.
Tale pacchetto viene inviato a intervalli regolari, configurabili tramite GATT. Contiene l'UUID del beacon, che in genere è preconfigurato dal produttore. Pertanto, tutti i beacon MOKOSmart inviano lo stesso UUID. Anche gli ID principali e secondari vengono utilizzati per identificare i singoli beacon. Gli ID principali possono rappresentare, ad esempio, una filiale di un negozio o un ristorante in una catena in franchising, mentre gli ID secondari un singolo scaffale o un tavolo.
Inoltre, la potenza del segnale è inclusa nel pacchetto pubblicitario, e può essere utilizzata per misurare la distanza tra il ricevitore e il beacon. Tuttavia, non è possibile aspettarsi un'elevata precisione, poiché il segnale può essere ostacolato da ostacoli spaziali come mobili o persone.
L'SDK iBeacon offre due concetti per l'interazione di un'app con queste informazioni: il calcolo della distanza (ranging) e il monitoraggio della regione. Durante il calcolo della distanza (ranging), viene determinata la distanza dal beacon. A causa dell'imprecisione sopra menzionata, questo avviene in sole tre fasi. "Immediato" è una distanza di pochi centimetri, "Vicino" è di pochi metri e "Lontano" è una distanza di oltre dieci metri. Il calcolo della distanza è possibile solo se l'app ricevente è attiva.
Questo non è necessario per il monitoraggio regionale. In questa modalità, anche un'app inattiva può essere avvisata quando entra o esce da una zona definita da uno o più beacon. Al più tardi ora sta diventando chiaro cosa rende questa tecnologia interessante per la pubblicità e il commercio al dettaglio. Inoltre, per la maggior parte dei beacon, la potenza di trasmissione e l'intervallo possono essere configurati per ottimizzare la durata della batteria in base alle condizioni locali.
"La maggior parte dei beacon" implica che sul mercato esista più di un produttore di iBeacon. In realtà, ce ne sono diversi: MOKOSmart, Kontakt.io, Gelo, Estimote e Gimbal. Oltre all'hardware, questi produttori offrono anche il servizio SDK per iBeacon e soluzioni cloud per la gestione dei beacon. Gli appassionati tra noi possono configurare autonomamente i trasmettitori iBeacon con relativamente poco sforzo utilizzando Raspberry Pi o Arduino.
Ipotizziamo la seguente situazione per l'esempio di implementazione: lo sviluppatore è al supermercato sabato mattina. I bambini affamati lo aspettano a casa e nel pomeriggio c'è una vendita di dolci a scuola. Solo allora inizierà davvero il fine settimana. Quindi, ottime ragioni per affrettarsi. Purtroppo, la lista della spesa è lunga e non adatta alla disposizione del supermercato. Se il supermercato fosse dotato di iBeacon nei diversi reparti, un'app per la lista della spesa potrebbe evidenziare le voci appropriate e ridurre significativamente il livello di stress dello sviluppatore (ovviamente del tutto fittizio).
Poiché la nostra app deve comunicare tramite Bluetooth, richiediamo innanzitutto le autorizzazioni BLUETOOTH e BLUETOOTH_ADMIN nel manifest di Android. Per poter utilizzare il servizio offerto dall'API Estimote per interagire con gli iBeacon, dobbiamo anche renderlo noto e inserire l'API scaricata nella nostra directory libs/.
Il nostro prototipo è costituito da un semplice elenco precompilato e da regioni predefinite, ovvero i reparti del nostro supermercato. Ogni voce dell'elenco sa a quale regione è assegnata. Nel nostro esempio, assegniamo un solo beacon a ciascuna regione. È anche possibile combinare un elenco di beacon in un'unica regione. L'attività principale è responsabile del riconoscimento della regione corrente e inoltra queste informazioni a un adattatore, che si occupa di evidenziare le voci dell'elenco. Inoltre, aggiungiamo l'opzione per selezionare la regione attiva senza beacon per rendere la nostra interfaccia utente testabile senza hardware aggiuntivo.
Nel metodo on Create dell'attività, istanziamo un Beacon Manager di MOKOSmart per la nostra app. Utilizziamo un listener per il monitoraggio della regione, rendendo nota la regione corrente al nostro adattatore e definendo l'intervallo per le scansioni dei beacon. Nell'esempio, definiamo che la scansione debba durare un secondo e che l'attesa debba essere di 250 ms. Questi valori sono scelti in modo relativamente aggressivo per ottenere risultati rapidi nei test. In realtà, il difficile equilibrio tra reattività e durata della batteria è difficile da raggiungere. In questo prototipo, riempiamo anche la nostra lista della spesa con valori fittizi. Avviamo o interrompiamo il monitoraggio nel metodo on() Start o onStop() dell'attività principale.
L'adattatore è implementato come derivato dell'adattatore android.widget.Array e sovrascrive il metodo getView(), che viene chiamato per ogni riga da visualizzare. Il titolo dell'articolo viene scritto nella prima riga della recensione definita nel layout, nella seconda riga nella regione assegnata.
Come si può vedere nel Listato 1, la regione inserita viene trasferita all'adattatore tramite il callback on Entered Region() del MonitoringListener, che è assegnato al nostro BeaconManager: item list Adapter. segregation(region). Quando si chiama getView(), questo verifica se la regione della voce nella riga corrisponde alla regione corrente. In tal caso, colora lo sfondo della riga. In alternativa, è anche possibile posizionare le voci per la zona corrente all'inizio ordinando l'elenco.
Il codice dell'applicazione è chiaro; non richiede molto sforzo di implementazione per ricevere i segnali iBeacon e gestirli nell'app. I concetti di telemetria e monitoraggio iBeacon sono mappati nell'SDK iBeacon di MOKOSmart, in modo da poter essere utilizzati in modo intuitivo. Il codice sorgente completo dell'app è disponibile su GitHub.
Abbiamo visto che interagire con gli iBeacon utilizzando l'SDK iBeacon di MOKOSmart è semplice. Quindi non prevedo grossi ostacoli nella tecnologia di implementazione, ma piuttosto nell'implementazione dei beacon e nella regolazione della potenza di trasmissione. Questi parametri hanno un impatto diretto sulla reattività dell'applicazione al variare della posizione. In ogni caso, il bilanciamento dovrebbe essere difficile.
Per un'applicazione particolarmente interessante, ad esempio nel settore della domotica, considero la combinazione di iBeacon con sensori, come nel caso del Sensor Tag di Texas Instruments menzionato in precedenza. Estimote lancerà sul mercato anche beacon mobili con sensori di movimento e temperatura, insieme agli adesivi Estimote. Le prime anteprime per sviluppatori avrebbero dovuto essere consegnate a fine ottobre 2014, ma nessun kit è stato spedito entro la fine del 2014.
Resta da vedere se l'area di applicazione della "Navigazione Indoor" possa essere mappata in modo affidabile con questa tecnologia. Data la sensibilità del segnale Bluetooth alle interferenze, sarebbe necessaria un'illuminazione intensa con segnali iBeacon dell'area corrispondente e calcoli di posizione mediante triangolazione con planimetrie. Soluzioni appropriate sono offerte da MOKOSmart (SDK per la Navigazione Indoor con iBeacon) e da diversi altri produttori come LabWerk, ma l'autore non è a conoscenza di studi pratici.
Nello sviluppo di un'app che interagisce con gli iBeacon, è necessario tenere conto anche degli aspetti di sicurezza e protezione dei dati. Data la semplicità del segnale, gli iBeacon sono soggetti a spoofing, un fattore da non trascurare in fase di sviluppo. Anche dati come la posizione attuale e il profilo di movimento, che possono essere raccolti in base al comportamento dell'utente, necessitano di un'elevata protezione.
Il motore è il componente principale di una macchina, che influisce direttamente sulla potenza operativa e…
Negli ultimi decenni, il ritmo dell'innovazione nell'IoT non ha mai smesso di stupirci. Abbiamo…
Nel settore della logistica, la sicurezza e la visibilità dei prodotti trasportati rivestono grande importanza…
Da oltre un decennio, i magazzini si affidano a soluzioni di sistemi di localizzazione in tempo reale (RTLS) per…
La sicurezza è di grande importanza nei luoghi di lavoro. Questa parola è solitamente usata in contesti difficili e…
Quando si parla di gateway Bluetooth, l'obiettivo è connettere i dispositivi finali basati su Bluetooth a...