This thesis shows the design and development of a framework that combines various technologies, such as Bluetooth Low Energy, iBeacon and sensors of a modern smartphone (compass, accelerometer, pedometer) to create social communities in outdoors and indoors environments. In particular, the framework is able to detect nearby people and smart devices with better accuracy and lower battery consumption compared to the more traditional GPS. The framework is designed to create location based communities, for instance with this technology you can notify nearby people having the same interests, or alerting the user about nearby friends. Alternatively, you can use the framework to exchange messages with people around you. The tool can also be used to engage people with interactive monitors by providing personalized content, since it provides the position and orientation of each user. Peculiarity of the framework is to provide location and interaction capabilities between users at almost no costs for the organizer. In fact, when deploying solutions based on traditional beacons (like Expo Milano 2015), specific hardware must be installed in strategic points. In particular, the implementation of such an infrastructure requires mapping and design processes, and, in addition to hardware costs, the organizer has to sustain high installation costs. With the proposed solution, localization can be done in specific strategic points through interactive monitors or similar devices, while discovery and communication between users can be achieved without additional cost. Beacons are no longer device installed and managed by the organizer, but they are user’s smartphones, which act like antennas. The framework has been structured in a way that it became highly customizable and easy for a third party developer. In particular, it was developed using a vertical and a horizontal layering. In fact, the framework has been developed starting from classes that manage the low-level hardware, by interacting with the operating system, but exposing to the developer only simpler classes. A horizontal structure was then adopted to allow a developer to enable only some of the provided features. For example, a developer might decide to use only one feature given by the Bluetooth service and not those given by the compass or the pedometer. In this way, the framework became extremely flexible. In the second part of the thesis, I exposed an analysis of performances degradation in two different cases. The first considering the lack of specific technologies on a single smartphone and the second considering the adjustment in a set of users, analyzing how to engage people in a mixed iOS and Android environment. In addition to an iOS client and an Android prototype, I realized the server counterpart with the classic REST approach using NodeJS and MongoDB. In addition, the communication between various devices was managed via MQTT protocol. To test the framework in a real-world application, I developed a Cordova plugin to allow a possible integration in the FuoriSalone 2016 mobile app. This implementation will be useful to get data and statistics about the actual usage of the provided features. At the moment of writing, the developer of the Fuorisalone application is evaluating how to integrate the framework. All the described applications were developed using the framework as a layer between the technologies and the applications themselves. Using the framework greatly simplifies the development, eliminating the majority of costs when building applications which needs similar solutions. Having built the final product as a framework, the key could be the solution of geo- localized communities’ issues with a single standard. Thanks to the framework’s flexibility, the framework is able to solve different problems in a simple and cost-effective way.

Questa tesi presenta la progettazione e lo sviluppo di un framework in grado di combinare varie tecnologie, quali Bluetooth Low Energy, iBeacon e vari sensori di un moderno smartphone (bussola, accelerometro, pedometro) per creare social communities sia in spazi aperti che in ambienti chiusi. In particolare, il framework è in grado di stabilire, con un grado di precisione migliore e un minor consumo di batteria rispetto al tradizionale GPS, le persone e l’hardware smart a noi vicino. Il framework è stato pensato per creare comunità basate sulla posizione, è a discrezione poi dello sviluppatore poter scegliere come aggregare e creare interazioni: si può infatti decider di segnalare all’utente persone con gli stessi interessi oppure gli amici di altri social network che sono nelle vicinanze. In alternative si può usare il framework per scambiare messaggi con le persone che si trovano in uno stesso luogo. Lo strumento può anche essere utilizzato per interagire con monitor interattivi, che possono fornire informazioni personalizzate per l’utente che sta osservando gli stessi, essendo il framework in grado di stabilire la posizione e l’orientamento di ogni utenza. Peculiarità del framework è quella di fornire localizzazione e funzionalità di interazione tra gli utenti in uno stesso luogo senza costi aggiuntivi per l’organizzatore. Infatti, quando si implementano soluzioni basate su beacons per la localizzazione in un determinato luogo (pensiamo ad Expo Milano 2015) è necessario installare, in punti strategici, vari trasmettitori per fornire all’utente contenuti contestualizzati in base alla posizione. In particolare, la messa in opera di tale infrastruttura richiede risorse per la progettazione e la mappatura, in maniera che venga garantita una buona copertura in tutte le aree espositive e, oltre al costo dell’hardware, anche costi d’installazione. Con la soluzione proposta, la localizzazione indoor può essere fatta in punti strategici specifici tramite monitor interattivi connessi ad Apple TV o strumenti similari, mentre la discovery e la comunicazione tra utenti in uno stesso luogo può essere realizzata senza costi aggiuntivi. Infatti, con il software realizzato in questa tesi, i beacon non sono più device dedicati a carico dell’organizzatore, ma sono gli smartphone degli utenti stessi, che agiscono come antenne e creano una sorta di community basata sulla posizione. È facile immaginare come diverse applicazioni possano essere costruite aldilà dei progetti che sono stati realizzati come prototipi per testare il framework. Per esempio, in un museo si potrebbero creare, a basso costo, delle mostre interattive per aumentare l’esperienza dei visitatori basandosi sulla loro posizione e fornendo contenuti sia sugli smartphone che su schermi condivisi da vari spettatori. Un'altra interessante applicazione potrebbe essere quella della smart-home, dove per esempio, conoscendo quante persone ci sono nelle varie stanze, il framework potrebbe fornire indicazioni utili per controllare le luci o il termostato di casa. Il framework potrebbe anche essere utilizzato per fornire dati e informazioni aggiuntive rispetto a quelle date dal GPS, per esempio, avvisando l’utente di particolari offerte di negozi che sono presenti all’interno di un centro commerciale non appena l’utente si avvicinasse ad essi. Tutto il lavoro è stato scritto per piattaforma iOS in quanto garantiva prestazioni migliori a livello tecnologico, in quanto solo su iOS è possibile utilizzare il Bluetooth Low Energy ed iBeacon in modalità di advertising (ovvero è possibile agire come trasmittente) mentre su Android la funzionalità è ancora ristretta a pochi device e solo alle ultime versioni del sistema operativo. Il framework è stato strutturato in maniera che fosse altamente integrabile e personalizzabile da uno sviluppatore terzo. In particolare, ci sono due tipi di organizzazione: verticale e orizzontatale. L’organizzazione verticale è data dal fatto che il framework è stato sviluppato dal basso verso l’alto, partendo dalle classi che gestiscono l’hardware a basso livello, interagendo direttamente con le chiamate del sistema operativo, andando via via verso classi molto più semplici e comode da utilizzare per l’utilizzo di uno sviluppatore di app. In particolare, mentre nelle classi che gestiscono le varie tecnologie ci sono metodi difficili e complessi da maneggiare, le classi a livello più alto hanno metodi come start, stop e reset che permettono con una chiamata fare tutte le operazioni necessarie sui vari servizi. Una struttura orizzontale è stata invece impiegata per permettere ad uno sviluppatore di utilizzare solo alcune delle funzionalità fornite a seconda delle proprie esigenze. Per esempio, uno sviluppatore potrebbe decidere di utilizzare solo le funzionalità date dal servizio Bluetooth e non quelle date dalla bussola o dal pedometro. In questo modo, il framework diventa estremamente duttile e è utilizzabile anche in applicazioni che non richiedono tutta la miriade di funzionalità fornite dallo stesso. È stata realizzata un’analisi di degradazione delle performance in due casi diversi. Il primo, considera una degradazione delle tecnologie disponibili sul singolo smartphone, quindi si considera un’utenza che non abbia abilitato l’hardware necessario nelle impostazioni del proprio telefono. In questo caso per risolvere la situazione si ricorre ad escamotage e tecnologie alternative quali Wi-Fi e GPS per fornire comunque un’esperienza appagante all’utente. Il secondo, considera la degradazione in una cerchia di utenti, analizzando dapprima il funzionamento del framework nel caso ottimo in cui tutti gli utenti siano iOS, in un caso pessimo di tutti utenti Android e in ultimo, decisamente più simile ad un caso reale, di un ambiente misto di dispositivi sia iOS che Android. In ogni caso, dopo aver progettato un sistema che permettesse al framework di funzionare anche in ambienti misti, è stata sviluppato un’estensione che permettesse a tutti gli utenti (anche Android, per cui è stata realizzata una versione prototipale del framework) di comunicare e di far parte della stessa community. Oltre ad aver realizzato un client per iOS e un prototipo su Android, è stata realizzata la controparte server con il classico approccio REST in NodeJS e MongoDB, necessaria per l’autenticazione delle app che implementassero il framework, per registrare i vari device e se necessario delle utenze associate. La parte di comunicazione tra i vari dispositivi è invece stata gestita tramite il protocollo MQTT, originariamente pensato come protocollo per l’internet delle cose. Sono poi state realizzate, oltre al prototipo su piattaforma Android, un’applicazione nativa iOS e un plugin per applicazioni sviluppate con Cordova. In particolare, l’applicazione nativa per iOS permette di scoprire quali professionalità abbiamo intorno, collegandosi con LinkedIn. In questo modo, ogni utente può cercare professionisti, che si trovano in una stessa conferenza o evento, in base agli interessi e alle competenze. Il plugin Cordova, sviluppato per permettere una possibile integrazione del framework nell’applicazione del FuoriSalone 2016, è stato concepito come wrapper attorno al framework nativo, fornendo chiamate e metodi Javascript ai metodi implementati nativamente. È stata poi realizzata una semplice applicazione prototipale per testare le varie funzionalità del plugin prima di poterlo inserire in produzione nell’applicazione del FuoriSalone. Al momento della scrittura della tesi, l’azienda che sviluppa l’applicazione dell’evento sta ancora valutando l’integrazione del framework. Le applicazioni descritte sono state realizzate utilizzando il framework come un layer tra le tecnologie abilitanti e le applicazioni stesse. Allo stesso modo, per sviluppatori di terze parti, l’utilizzo del framework semplifica notevolmente lo sviluppo di soluzioni analoghe, eliminando la necessità di creare soluzioni custom molto costose che impiegherebbero la maggior parte del tempo di sviluppo di una nuova app. L’approccio di aver costruito il prodotto finale come un framework, implementabile in ogni applicazione, potrebbe essere la chiave di volta per risolvere problemi di localizzazione e di creazione di comunità geolocalizzate. Riuscendo a risolvere problematiche anche molto diverse tra loro, risultato ottenuto grazie alla duttilità con il quale è stato sviluppato, il framework potrà per esempio essere distribuito per l’utilizzo in diversi contesti e settori.

Bluetooth low energy, iBeacon and sensors enabled communities

ZERBINATI, FRANCESCO
2014/2015

Abstract

This thesis shows the design and development of a framework that combines various technologies, such as Bluetooth Low Energy, iBeacon and sensors of a modern smartphone (compass, accelerometer, pedometer) to create social communities in outdoors and indoors environments. In particular, the framework is able to detect nearby people and smart devices with better accuracy and lower battery consumption compared to the more traditional GPS. The framework is designed to create location based communities, for instance with this technology you can notify nearby people having the same interests, or alerting the user about nearby friends. Alternatively, you can use the framework to exchange messages with people around you. The tool can also be used to engage people with interactive monitors by providing personalized content, since it provides the position and orientation of each user. Peculiarity of the framework is to provide location and interaction capabilities between users at almost no costs for the organizer. In fact, when deploying solutions based on traditional beacons (like Expo Milano 2015), specific hardware must be installed in strategic points. In particular, the implementation of such an infrastructure requires mapping and design processes, and, in addition to hardware costs, the organizer has to sustain high installation costs. With the proposed solution, localization can be done in specific strategic points through interactive monitors or similar devices, while discovery and communication between users can be achieved without additional cost. Beacons are no longer device installed and managed by the organizer, but they are user’s smartphones, which act like antennas. The framework has been structured in a way that it became highly customizable and easy for a third party developer. In particular, it was developed using a vertical and a horizontal layering. In fact, the framework has been developed starting from classes that manage the low-level hardware, by interacting with the operating system, but exposing to the developer only simpler classes. A horizontal structure was then adopted to allow a developer to enable only some of the provided features. For example, a developer might decide to use only one feature given by the Bluetooth service and not those given by the compass or the pedometer. In this way, the framework became extremely flexible. In the second part of the thesis, I exposed an analysis of performances degradation in two different cases. The first considering the lack of specific technologies on a single smartphone and the second considering the adjustment in a set of users, analyzing how to engage people in a mixed iOS and Android environment. In addition to an iOS client and an Android prototype, I realized the server counterpart with the classic REST approach using NodeJS and MongoDB. In addition, the communication between various devices was managed via MQTT protocol. To test the framework in a real-world application, I developed a Cordova plugin to allow a possible integration in the FuoriSalone 2016 mobile app. This implementation will be useful to get data and statistics about the actual usage of the provided features. At the moment of writing, the developer of the Fuorisalone application is evaluating how to integrate the framework. All the described applications were developed using the framework as a layer between the technologies and the applications themselves. Using the framework greatly simplifies the development, eliminating the majority of costs when building applications which needs similar solutions. Having built the final product as a framework, the key could be the solution of geo- localized communities’ issues with a single standard. Thanks to the framework’s flexibility, the framework is able to solve different problems in a simple and cost-effective way.
CERI, STEFANO
ING - Scuola di Ingegneria Industriale e dell'Informazione
27-apr-2016
2014/2015
Questa tesi presenta la progettazione e lo sviluppo di un framework in grado di combinare varie tecnologie, quali Bluetooth Low Energy, iBeacon e vari sensori di un moderno smartphone (bussola, accelerometro, pedometro) per creare social communities sia in spazi aperti che in ambienti chiusi. In particolare, il framework è in grado di stabilire, con un grado di precisione migliore e un minor consumo di batteria rispetto al tradizionale GPS, le persone e l’hardware smart a noi vicino. Il framework è stato pensato per creare comunità basate sulla posizione, è a discrezione poi dello sviluppatore poter scegliere come aggregare e creare interazioni: si può infatti decider di segnalare all’utente persone con gli stessi interessi oppure gli amici di altri social network che sono nelle vicinanze. In alternative si può usare il framework per scambiare messaggi con le persone che si trovano in uno stesso luogo. Lo strumento può anche essere utilizzato per interagire con monitor interattivi, che possono fornire informazioni personalizzate per l’utente che sta osservando gli stessi, essendo il framework in grado di stabilire la posizione e l’orientamento di ogni utenza. Peculiarità del framework è quella di fornire localizzazione e funzionalità di interazione tra gli utenti in uno stesso luogo senza costi aggiuntivi per l’organizzatore. Infatti, quando si implementano soluzioni basate su beacons per la localizzazione in un determinato luogo (pensiamo ad Expo Milano 2015) è necessario installare, in punti strategici, vari trasmettitori per fornire all’utente contenuti contestualizzati in base alla posizione. In particolare, la messa in opera di tale infrastruttura richiede risorse per la progettazione e la mappatura, in maniera che venga garantita una buona copertura in tutte le aree espositive e, oltre al costo dell’hardware, anche costi d’installazione. Con la soluzione proposta, la localizzazione indoor può essere fatta in punti strategici specifici tramite monitor interattivi connessi ad Apple TV o strumenti similari, mentre la discovery e la comunicazione tra utenti in uno stesso luogo può essere realizzata senza costi aggiuntivi. Infatti, con il software realizzato in questa tesi, i beacon non sono più device dedicati a carico dell’organizzatore, ma sono gli smartphone degli utenti stessi, che agiscono come antenne e creano una sorta di community basata sulla posizione. È facile immaginare come diverse applicazioni possano essere costruite aldilà dei progetti che sono stati realizzati come prototipi per testare il framework. Per esempio, in un museo si potrebbero creare, a basso costo, delle mostre interattive per aumentare l’esperienza dei visitatori basandosi sulla loro posizione e fornendo contenuti sia sugli smartphone che su schermi condivisi da vari spettatori. Un'altra interessante applicazione potrebbe essere quella della smart-home, dove per esempio, conoscendo quante persone ci sono nelle varie stanze, il framework potrebbe fornire indicazioni utili per controllare le luci o il termostato di casa. Il framework potrebbe anche essere utilizzato per fornire dati e informazioni aggiuntive rispetto a quelle date dal GPS, per esempio, avvisando l’utente di particolari offerte di negozi che sono presenti all’interno di un centro commerciale non appena l’utente si avvicinasse ad essi. Tutto il lavoro è stato scritto per piattaforma iOS in quanto garantiva prestazioni migliori a livello tecnologico, in quanto solo su iOS è possibile utilizzare il Bluetooth Low Energy ed iBeacon in modalità di advertising (ovvero è possibile agire come trasmittente) mentre su Android la funzionalità è ancora ristretta a pochi device e solo alle ultime versioni del sistema operativo. Il framework è stato strutturato in maniera che fosse altamente integrabile e personalizzabile da uno sviluppatore terzo. In particolare, ci sono due tipi di organizzazione: verticale e orizzontatale. L’organizzazione verticale è data dal fatto che il framework è stato sviluppato dal basso verso l’alto, partendo dalle classi che gestiscono l’hardware a basso livello, interagendo direttamente con le chiamate del sistema operativo, andando via via verso classi molto più semplici e comode da utilizzare per l’utilizzo di uno sviluppatore di app. In particolare, mentre nelle classi che gestiscono le varie tecnologie ci sono metodi difficili e complessi da maneggiare, le classi a livello più alto hanno metodi come start, stop e reset che permettono con una chiamata fare tutte le operazioni necessarie sui vari servizi. Una struttura orizzontale è stata invece impiegata per permettere ad uno sviluppatore di utilizzare solo alcune delle funzionalità fornite a seconda delle proprie esigenze. Per esempio, uno sviluppatore potrebbe decidere di utilizzare solo le funzionalità date dal servizio Bluetooth e non quelle date dalla bussola o dal pedometro. In questo modo, il framework diventa estremamente duttile e è utilizzabile anche in applicazioni che non richiedono tutta la miriade di funzionalità fornite dallo stesso. È stata realizzata un’analisi di degradazione delle performance in due casi diversi. Il primo, considera una degradazione delle tecnologie disponibili sul singolo smartphone, quindi si considera un’utenza che non abbia abilitato l’hardware necessario nelle impostazioni del proprio telefono. In questo caso per risolvere la situazione si ricorre ad escamotage e tecnologie alternative quali Wi-Fi e GPS per fornire comunque un’esperienza appagante all’utente. Il secondo, considera la degradazione in una cerchia di utenti, analizzando dapprima il funzionamento del framework nel caso ottimo in cui tutti gli utenti siano iOS, in un caso pessimo di tutti utenti Android e in ultimo, decisamente più simile ad un caso reale, di un ambiente misto di dispositivi sia iOS che Android. In ogni caso, dopo aver progettato un sistema che permettesse al framework di funzionare anche in ambienti misti, è stata sviluppato un’estensione che permettesse a tutti gli utenti (anche Android, per cui è stata realizzata una versione prototipale del framework) di comunicare e di far parte della stessa community. Oltre ad aver realizzato un client per iOS e un prototipo su Android, è stata realizzata la controparte server con il classico approccio REST in NodeJS e MongoDB, necessaria per l’autenticazione delle app che implementassero il framework, per registrare i vari device e se necessario delle utenze associate. La parte di comunicazione tra i vari dispositivi è invece stata gestita tramite il protocollo MQTT, originariamente pensato come protocollo per l’internet delle cose. Sono poi state realizzate, oltre al prototipo su piattaforma Android, un’applicazione nativa iOS e un plugin per applicazioni sviluppate con Cordova. In particolare, l’applicazione nativa per iOS permette di scoprire quali professionalità abbiamo intorno, collegandosi con LinkedIn. In questo modo, ogni utente può cercare professionisti, che si trovano in una stessa conferenza o evento, in base agli interessi e alle competenze. Il plugin Cordova, sviluppato per permettere una possibile integrazione del framework nell’applicazione del FuoriSalone 2016, è stato concepito come wrapper attorno al framework nativo, fornendo chiamate e metodi Javascript ai metodi implementati nativamente. È stata poi realizzata una semplice applicazione prototipale per testare le varie funzionalità del plugin prima di poterlo inserire in produzione nell’applicazione del FuoriSalone. Al momento della scrittura della tesi, l’azienda che sviluppa l’applicazione dell’evento sta ancora valutando l’integrazione del framework. Le applicazioni descritte sono state realizzate utilizzando il framework come un layer tra le tecnologie abilitanti e le applicazioni stesse. Allo stesso modo, per sviluppatori di terze parti, l’utilizzo del framework semplifica notevolmente lo sviluppo di soluzioni analoghe, eliminando la necessità di creare soluzioni custom molto costose che impiegherebbero la maggior parte del tempo di sviluppo di una nuova app. L’approccio di aver costruito il prodotto finale come un framework, implementabile in ogni applicazione, potrebbe essere la chiave di volta per risolvere problemi di localizzazione e di creazione di comunità geolocalizzate. Riuscendo a risolvere problematiche anche molto diverse tra loro, risultato ottenuto grazie alla duttilità con il quale è stato sviluppato, il framework potrà per esempio essere distribuito per l’utilizzo in diversi contesti e settori.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
2016_04_Zerbinati.pdf

non accessibile

Descrizione: Elaborato tesi
Dimensione 4.83 MB
Formato Adobe PDF
4.83 MB Adobe PDF   Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/120786