• Non ci sono risultati.

Applicazione Android per la geolocalizzazione di strumenti di illuminazione

N/A
N/A
Protected

Academic year: 2021

Condividi "Applicazione Android per la geolocalizzazione di strumenti di illuminazione"

Copied!
91
0
0

Testo completo

(1)

ALMA MATER STUDIORUM – UNIVERSITÀ DI BOLOGNA

SCUOLA DI SCIENZE Corso di Laurea in Informatica

APPLICAZIONE ANDROID PER LA

GEOLOCALIZZAZIONE DI STRUMENTI DI

ILLUMINAZIONE

Relatore: Chiar.mo Prof. VITTORIO GHINI Presentata da: ANDREA MANCINI Sessione II Anno Accademico 2014-2015

(2)
(3)

L’informatica è l’applicazione creativa

di principi scientifici

per realizzare un progetto

(4)
(5)

Indice

1 Introduzione 1

1.1 Motivazioni . . . 2

1.1.1 Cosa offre il mercato . . . 2

1.1.2 Scelta migliore . . . 5

I

Basi teoriche

9

2 Generalità dei sistemi di acquisizione codici a Barre 11 2.1 La storia . . . 11

2.2 Tipologie di codici a barre . . . 13

2.3 Funzionamento . . . 13

2.3.1 Correzione di errore Reed-Solomon . . . 15

3 La geolocalizzazione e la tecnologia GPS 17 3.1 Tecnologie di geolocalizzazione . . . 17

(6)

II

Progetto di tesi

23

4 Studio di fattibilità per il sistema di geolocalizzazione 25 5 Analisi e scelta dei software di sviluppo 29

5.1 Analisi e scelta del software di progettazione e stampa etichette 29

5.2 Analisi e scelta del software di sviluppo Android . . . 35

6 Realizzazione dell’etichetta 37 7 Sviluppo del software 39 7.1 Tecreader: applicazione Android (lato client) . . . 39

7.1.1 Log-in . . . 41

7.1.2 Menù principale . . . 42

7.1.3 Scelta tipologia di scansione . . . 43

7.1.4 Scansione e foto . . . 45

7.1.5 Lista scansioni effettuate . . . 48

7.1.6 Impostazioni . . . 50

7.2 Tecreader: gestione dati (lato server) . . . 52

8 Test di comunicazione 55

III

Studio su sviluppi futuri

59

9 Studio di fattibilità identificazione strumento con richiesta dati al server 61 10 Studio di fattibilità geolocalizzazione in presenza di aree coperte 63 10.1 Localizzazione indoor . . . 64

(7)

10.2 Inserimento manuale coordinate. . . 65

11 Conclusioni 67 A Configurazione software e dispositivi 69 A.1 Configurazione software etichette . . . 69

A.2 Configurazione Eclipse . . . 73

A.3 Configurazione EasyPHP . . . 74

(8)
(9)

Capitolo 1

Introduzione

V

arie aziende vendono soluzioni per il risparmio energetico che pre-vedono sistemi di illuminazione che possono essere controllati a distanza tramite un software che permette di accendere e spegnere luci, fare statistiche su risparmi e consumi e altre funzioni di monitoraggio. I lampioni stradali e strumenti connessi vengono visualizzati su una mappa di controllo che assomiglia all’applicazione Google Map, dove appaiono sotto forma di icone selezionabili. Le icone una volta selezionate, rendono pos-sibile la visualizzazione dei dettagli tecnici e la modifica dell’intensità della luce.

Il progetto di tesi è volto a progettare e realizzare una applicazione An-droid in grado di geolocalizzare strumenti elettronici installati a terra (lam-pioni stradali, quadri elettrici e dispositivi connessi). I dati catalogati sono infine spediti al server e indicizzati in un database dell’azienda che gestisce tali strumenti. Tali dati verranno letti dal database e visualizzati nel software di controllo e le icone dei vari dispositivi installati appariranno sulla mappa determinandone visivamente la posizione.

TecReader è l’applicazione Android che geolocalizza gli strumenti ser-vendosi del codice seriale integrato in un codice a barre 2D di tipo Qr

(10)

Co-CAPITOLO 1. Introduzione

de stampato sulla etichetta con i dati tecnici del dispositivo. L’etichetta è anch’essa progetto di tesi e verrà trattata più avanti nel testo.

L’applicazione è concepita per essere utilizzata dal personale tecnico che si occupa di installare e catalogare i dispositivi su campo. Il semplice utilizzo di TecReader permette ad un personale senza particolari specializzazioni di apprendere codici seriali, scattare foto di riconoscimento dei dispositivi e fotografare liberamente l’area di installazione per avere un riferimento visivo dell’operato. Il materiale appreso viene infine inviato al server aziendale.

Lo sviluppo del progetto di tesi ha permesso di apprendere al meglio le problematiche riguardo la programmazione java Android, la sincroniz-zazione di un dispositivo di geolocalizsincroniz-zazione con un server remoto, l’ela-borazione dei dati ricevuti dai satelliti GPS, la scelta del migliore codice a barre.

Grazie al lavoro svolto è stato possibile apprendere l’utilizzo del soft-ware di sviluppo Android Studio ed Eclipse per la programmazione Android client side, le tecnologie PHP e mysql per la gestione dei dati server side ed il software ScanSoft per per la progettazione delle etichette.

1.1

Motivazioni

1.1.1

Cosa offre il mercato

Le aziende che si occupano di sviluppare sistemi di “illuminazione stradale intelligente”1 attualmente utilizzano due sistemi per la geolocalizzazione dei lampioni stradali:

(11)

CAPITOLO 1. Introduzione

• dispositivo gps installato direttamente sull’impianto: sistema che permette di risparmiare il costo di un tecnico che si occupa della ca-talogazione dei dispositivi ed eliminare il problema dell’errore umano nell’acquisizione della posizione. La possibilità di autolocalizzazio-ne dell’impianto ha d’altra parte il difetto di aumentarautolocalizzazio-ne il costo di progettazione e sviluppo. Varie aziende sviluppano lampioni con mo-duli gps esterni adatti per essere integrati in soluzioni progettuali già presenti. Per esempio l’azienda Inglese Telensa sviluppa un modulo chiamato NEMA2

Figura 1.1: NEMA dispositivo di acquisizione dati gps

che permette di essere installato su un lampada stradale e di essere controllato con il software a corredo fornito dall’azienda stessa che produce il modulo.

• dispositivi mobili proprietari con dispositivo GPS integrato: di-spositivi digitali dotati di display LCD assomiglianti a telefoni ma con

(12)

CAPITOLO 1. Introduzione

funzioni destinate esclusivamente ai fabbisogni dell’azienda. Possono avere tastiera numerica e sistema operativo proprietario. Vengono ven-duti dotati di propria base di caricamento batteria in un pacchetto com-pleto pronto all’uso. Philips presenta nella sua brochure Philips remo-te monitoring and control sysremo-tems3 il dispositivo LRV7310/00 Outd. Configuration Assistant

Figura 1.2: LRV7310/00 Outd. Configuration Assistant

Tale dispositivo utilizza il sistema di comunicazione open LonWorks®4 che permette la costruzione di sistemi di automazione cooperanti uti-lizzando le più comuni connessioni fisiche come doppino telefonico, onde convogliate, fibra ottica, oppure trasmissioni radio e TCP/IP. Un

3vedi: http://www.lighting.philips.com/pwc_li/main/products/Assets/pdf/new/RoadAndStreet_Brochure_FinLR.pdf 4vedi: http://it.wikipedia.org/wiki/LonWorks

(13)

CAPITOLO 1. Introduzione

altro dispositivo multifunzione è il Field Xpert SFX3505 sviluppato da Endress+Hauser Inc.

Figura 1.3: Field Xpert SFX350

Questo dispositivo può essere utilizzato in vari ambiti industriali e non solamente per la geolocalizzazione manuale di strumenti, dato che possiede varie tipologie di connessione (Bluetooth, wifi, UMTS, GPRS, ecc...). Il device è in grado di acquisire RIFD Qr code e barco-de 2D e usa protocollo HART6 uno standard di comunicazione simile a LonWorks.

1.1.2

Scelta migliore

Si è scelto di sviluppare un applicazione Android di geolocalizzazione utiliz-zabile su qualsiasi dispositivo. Esistono tesi che sostengono che l’impianto

(14)

CAPITOLO 1. Introduzione

GPS on-board sia migliore della scansione manuale come per esempio la ricerca Light Pole Localization in a Smart City7 che sostiene che geoloca-lizzare un intera area di illuminazione cittadina servendosi di tecnici che localizzano le lampade con strumenti GPS è dispendioso e c’è il rischio che i dispositivi siano localizzati con un errore non trascurabile. D’altro canto è bene vedere la situazione sotto un differente punto di vista: in caso si voglia geolocalizzare una piccola area urbana con un numero limitato di lampade l’utilizzo di moduli GPS da installare sugli apparecchi non potrebbe esse-re la soluzione ottimale. La durata di vita di un lampione stradale è circa 10 - 20 anni e di conseguenza una volta segnate le posizioni dei dispositivi sulla mappa, non è più necessario che tali strumenti abbiano la possibilità di geolocalizzarsi. Un’altra considerazione da fare è l’acquisto dei moduli che solitamente vengono venduti con un software a corredo. La possibilità di essere slegati da un software proprietario di posizionamento permette di integrare in maniera più semplice la geolocalizzazione nell’intero progetto aziendale. Per quanto riguarda la scelta del dispositivo mobile, si è consi-derato che ogni persona possiede almeno un telefono. I dispositivi presenti in commercio denominati rugged8 vengono prodotti seguendo standard che assicurano qualità e resistenza elevata a urti, polvere e immersione in acqua (IP67 - IP68). L’installatore si potrebbe trovare a scansionare Qr Code su una scala o posizioni scomode quando l’etichetta di riconoscimento prodot-to è applicata sul corpo lampada. Esisprodot-tono vari telefoni e tablet rugged in commercio e quasi tutti montano sistema operativo Android come il Lenovo s7509 o il modello A910 prodotto in collaborazione con Land Rover.

7Mike Holenderski, Richard Verhoeven, Tanir Ozcelebi, Johan J. Lukkien - Eindhoven, Paesi Bassi 8vedi: http://www.digitaltrends.com/mobile/how-rugged-is-your-phone/

9vedi: http://www.gsmarena.com/lenovo_s750-6673.php 10vedi: http://bigrugged.com/rugged-cell-phones/land-rover-a9

(15)

CAPITOLO 1. Introduzione

Figura 1.4: a sinistra Lenovo s750 waterproof e a destra A9 Land Rover rugged phone

TecReader è lo strumento operativo del tecnico installatore per sempli-ficare la catalogazione degli apparecchi e la possibilità di poterli infine mo-strare nel software di controllo remoto in maniera automatica operando a distanza senza bisogno di inserire manualmente i dati nel database dell’ap-plicazione. TecReader tiene traccia delle scansioni effettuate e della sincro-nizzazione dei dati col server remoto di controllo strumenti in tal modo non c’è pericolo che il database con i dati raccolti si popoli di dati sbagliati. Il software prelevando i dati dal database è infine in grado di mostrare la map-pa della città con le foto della strumentazione raccolte dai tecnici e tramite i dati di geolocalizzazione visualizzare sulla mappa dei tag di controllo degli strumenti.

La scelta di acquisire il codice seriale utilizzando un codice a barre di tipo Qr Code è determinata da una questione di semplicità e limita la possi-bilità di errore. Infatti fotografare un codice è più immediato che riscriverlo a mano ed elimina errori di trascrizione. Ad ogni modo l’etichetta, come verrà descritto in seguito, presenta anche il codice scritto a caratteri alfanumerici contenuto nel Qr Code.

(16)
(17)

Parte I

(18)
(19)

Capitolo 2

Generalità dei sistemi di

acquisizione codici a Barre

I

to veloce di un oggetto da catalogare utilizzando uno strumentoI codici a barre sono uno strumento utile per il riconoscimen-automatico di scansione. La possibilità di interpretare un codice alfanumerico attraverso simboli permette alla macchina di avere un hard-ware più semplice e meno costoso. Uno scanner OCR1avrebbe un costo più elevato e superiore complessità.

2.1

La storia

L’idea del codice a barre venne a due studenti della Università di Drexel il 7 ottobre 1948. Norman Joseph Woodland e Bernard Silver sostenevano che il codice a barre potesse velocizzare le operazioni di cassa di un’azienda alimentare. La brillante idea non venne immediatamente messa in pratica a causa di limitazioni tecnologiche. All’epoca la lettura di bande audio

(20)

av-CAPITOLO 2. Generalità dei sistemi di acquisizione codici a Barre

veniva con fotomoltiplicatori ovvero strumenti in grado di rilevare anche un singolo fotone. Utilizzando valvole termoioniche il rumore introdotto nello strumento risultava troppo elevato, inoltre l’unica fonte di luce utilizzabile era generata da lampade allo Xeno estremamente costose in fase di acquisto e in termini di energia utilizzata. Infine, non meno problematico, era il pro-blema della stampa. Successivi esperimenti videro l’utilizzo di codici a barre ovali non leggibili a causa di macchie e sbavature nella stampa. Woodland fu il primo a sviluppare codici a barre utilizzabili. I codici erano a barre lineari e vennero adottati il 3 aprile 1973 con il nome "UPC" (Universal Product Code).

Il codice attualmente più usato e di moda non solo per la logistica dei prodotti ma anche per scopi pubblicitari è il Qr Code (Quick Response code). Tale codice bidimensionale presenta un’area dati grazie alla quale il software di lettura è in grado di recuperare le informazioni contenute anche se il co-dice è stampato male. Le informazioni perse a causa della stampa quindi possono essere facilmente recuperate. Tale peculiarità rende i Qr Code mol-to utili e accattivanti per la pubblicizzazione di prodotti perchè è possibile stampare immagini o loghi aziendali all’interno dell’area dati mantenendo il codice comunque leggibile. Questo codice venne inventato nel 1994 dalla compagnia giapponese Denso Wave che fortunatamente lasciò il codice so-no licenza libera2. Il Qr Code venne inventato per facilitare l’azienda Toyota nel tenere traccia dei pezzi delle automobili. In seguito la compagnia te-lefonica NTT Docomo si servì dei Qr Code per facilitare l’inserimento dei dati nel cellulare per la connessione al web. L’interazione tra web e telefono così divenne sempre più consistente. Nel 2000 apparvero le prime publicità con all’interno Qr Code e tali codici vennero anche stampati su biglietti da

2Particolare tipo di copyright che permette la libera divulgazione:

(21)

CAPITOLO 2. Generalità dei sistemi di acquisizione codici a Barre

visita. Sono state inventate diverse varianti di Qr Code tra cui il Micro Qr, versione del Qr Code con dimensioni ridotte adatta per rappresentare ID di circuiti stampati.

2.2

Tipologie di codici a barre

Nel corso degli anni a partire dal primo UPC sono stati adottati diverse tipo-logie di codici a barre. I codici a barre si dividono in codici lineari e codici bidimensionali (Matrix).

1. Codici lineari: I primi codici ad essere utilizzati, grazie alle loro sem-plicità costruttiva. Sono stati e sono tuttora ampiamente utilizzati in ambito alimentare, dei trasporti e farmaceutico per lo stoccaggio del-la merce. Sono validi per rappresentare codici seriali di inventario, ma sono sconsigliati o non utilizzabili per immagazzinare un testo alfanumerico abbastanza lungo o immagini.

2. Codici bidimensionali: Sono stati inventati nel 1988 dalla Intermec Corporation e consistono di matrici di punti o quadrati sistemati all’in-terno di un area quadrata. Sono venuti di moda a fini pubblicitari solo negli ultimi anni, con l’avvento degli smartphone e tablet che rendono la scansione facile e divertente.

2.3

Funzionamento

La codifica di una serie di caratteri in un codice a barre prevede una mappa-tura dei caratteri alfanumerici in linee e punti seguendo una certa simbologia. In linea generale i caratteri mappati del testo da tradurre sono delimitati dai

(22)

CAPITOLO 2. Generalità dei sistemi di acquisizione codici a Barre

simboli di inizio e fine lettura che permettono al lettore di comprendere dove iniziare e finire di leggere il codice. Alcuni standard prevedono anche una simbologia dedicata al checksum3 per verificare che il codice sia stato letto correttamente e dare al software di scansione il permesso di memorizzarlo. I codici a barre lineari hanno diverse proprietà: possono essere continui o discreti e a barre monodimensionali o multi dimensionali.

Nei codici continui lo scanner legge anche l’area di spazio vuoto che se-para le barre. Quindi ogni simbolo ha l’area compresa tra inizio barra e fine spazio bianco o viceversa. Nei codici discreti invece lo scanner considera solamente la barra e ignora lo spazio tra le barre. Codici continui e discreti hanno pregi e difetti: scrivere un codice letto in maniera continua permette di risparmiare spazio di stampa perchè anche gli spazi vengono letti. Scrive-re un codice a lettura discScrive-reta richiede maggioScrive-re spazio di stampa ma d’al-tro canto permette di stampare con una qualità inferiore e l’aumento della tolleranza di tempo scansione. Questo si traduce in risparmio economico.

Nei codici a barre monodimensionali tutte le barre hanno la stessa di-mensione mentre in quelli multidimensionali le dimensioni delle barre sono modulari ovvero una barra è 2, 3,4 volte più grande. Non è necessario che le barre abbiano dimensioni esatte in spessore ma l’importante è che rispettino i rapporti dimensionali.

I codici a barre monodimensionali possono utilizzare la tecnica di co-difica interleaving. Tale tecnica presuppone la coco-difica del primo carattere utilizzando barre di varie dimensioni e la codifica del secondo tramite la variazione dello spessore degli spazi bianchi ai lati della barra.

I codici a barre bidimensionali, come detto in precedenza, consistono in matrici di punti e permettono di rappresentare un testo o piccole immagini.

3Algoritmo di verifica corretta lettura detto checksum o somma di controllo:

(23)

CAPITOLO 2. Generalità dei sistemi di acquisizione codici a Barre

Questo è possibile grazie ad un aria di stampa maggiore. Infatti la progetta-zione di un 2D Code prevede di espandere l’aria dati nelle due dimensioni, a differenza di quelli monodimensionali. Il Qr code in particolare permette di rappresentare fino ad un massimo di 4296 caratteri alfanumerici e 7089 caratteri numerici. In particolare:

• Solo caratteri numerici: max 7.089 caratteri • Alfanumerici: max 4.296 caratteri

• Codice binario (8 bit): max 2.953 byte • Caratteri Kanji/Kana: max 1.817 caratteri

2.3.1

Correzione di errore Reed-Solomon

Il codice di correzione Reed Solomon permette ai codici nei codici a barre Postbar o nei codici a barre bidimensionali come il Codice Aztec, il Co-dice QR,[3] il Data Matrix, il MaxiCode e il PDF-417 di poter essere letti anche quando la stampa è rovinata. Tale caratteristica ha permesso di uti-lizzare parte dell’area di stampa per loghi pubblicitari. Tale codice viene utilizzato specialmente per la memorizzazione dati e le comunicazioni digi-tali in quanto permette di ricostruire dati persi. Il codice Reed Solomon è un codice ciclico lineare ovvero un codice composto da blocchi di simboli che vengono decodificati utilizzando simboli in più rispetto a quelli contenuti nel messaggio originale. Tale procedura viene chiamata ridondanza. Il codice Reed Solomon consiste nel sovracampionamento di un polinomio, ovvero i dati da riprodurre sono determinati da un polinomio. La matematica insegna che un numero k di punti distinti determinano univocamente un polinomio

(24)

CAPITOLO 2. Generalità dei sistemi di acquisizione codici a Barre

di grado al massimo k-1. Il codice Reed Solomon prevede il calcolo e la tra-smissione di k+n punti. Avendo a disposizione un numero superiore di punti rispetto al necessario, il dispositivo è in grado di ricostruire il polinomio con semplicità anche se perde dei valori (entro un certo limite). In ambito gene-rale il codice Reed Solomon ha una dipendenza debole dal numero di errori infatti è sempre possibile costruire un polinomio verosimile.

Le principali funzioni svolte dal codice Reed Solomon sono: • Emissione dei dati

• Codifica Reed-Solomon

• Trasmissione dei dati (con possibili errori)

• Decodifica Reed-Solomon (rilevazione e correzione d’errore) • Ricezione corretta dei dati

(25)

Capitolo 3

La geolocalizzazione e la

tecnologia GPS

3.1

Tecnologie di geolocalizzazione

La geolocalizzazione consiste nella identificazione della posizione geogra-fica (latitudine e longitudine) di un oggetto nel mondo reale. Esistono vari sistemi di geolocalizzazione basati su sistemi radio, cablati o ibridi. Prin-cipalmente la localizzazione di un dispositivo avviene tramite le seguenti tecnologie:

• GPS: le coordinate sono determinate dai satelliti in orbita attorno alla terra (in seguito saranno spiegate le varie tipologie di GPS)

• Celle rete telefonica: le coordinate vengono calcolate tenendo conto della potenza del segnale tra le celle telefoniche e la stazione radio di base che ha coordinate note. Il dispositivo mobile che si

(26)

geolocaliz-CAPITOLO 3. La geolocalizzazione e la tecnologia GPS

za (telefono, tablet, ecc...) calcola la distanza dalla stazione in base all’attenuazione del segnale radio1.

• Wifi e WLan2: le coordinate vengono calcolate in base ai

segna-li delle varie reti wifi che vengono a loro volta locasegna-lizzate dalla rete internet

• Rete Internet: la geolocalizzazione avviene utilizzando l’indirizzo IP della propria rete Internet, che è registrato all’interno di un database delle connessioni secondo gli schemi di funzionamento classici della connessione internet.

• Localizzazione in loco: il dispositivo viene localizzato tramite i siste-mi ARVA3 o RECCO4 nel caso di persone sepolte da valanghe.

3.2

Cenni riguardo le varie tipologie di GPS

GPS è l’acronimo di Global Positioning System. Tale sistema permette di ottenere le coordinate geografiche di un dispositivo che tenta di localizzarzi e l’ora corrente. Questo è possibile grazie al segnale radio spedito da satelliti per uso civile. Il dispositivo è in grado di localizzarsi grazie al segnale di più satelliti. Tale sistema è gestitito dagli Stati Uniti ed è liberamente accessi-bile a chiunque possieda un dispositivo GPS. Attualmente questa tecnologia permette una geolocalizzazione con una precisione dell’ordine dei metri. La precisione varia a seconda del tipo di tecnologia GPS utilizzata, dall’effi-cienza del ricevitore dalle condizioni atmosferiche e altre condizioni fisiche

1Radiopropagazione di un segnale http://it.wikipedia.org/wiki/Radiopropagazione 2Wireless local area network http://it.wikipedia.org/wiki/Wireless_Local_Area_Network 3Dispositivo ARVA http://it.wikipedia.org/wiki/Apparecchio_di_ricerca_in_valanga 4Sistema RECCO http://it.wikipedia.org/wiki/RECCO

(27)

CAPITOLO 3. La geolocalizzazione e la tecnologia GPS

proprie del nostro pianeta5. Il sistema di posizionamento si compone di tre segmenti: il segmento spaziale (space segment), il segmento di controllo (control segment) ed il segmento utente (user segment). L’aureonautica mi-litare statunintense gestisce il segmento spaziale e di controllo. Il segmanto spaziale si compone di 31 satelliti attivi mentre il segmento di controllo è in grado di monitorare il sistema GPS grazie ad antenne e stazioni. Il segmento utente invece consiste nei ricevitori GPS in mano agli utilizzatori finali.

Lo strumento può essere localizzato grazie alla misura del tempo impie-gato dal segnale radio a raggiungere il ricevitore. La misurazione avviene per trilaterazione, ovvero i segnali emessi dai satelliti possono essere im-maginati come sfere il cui raggio è la distanza tra il satellite e il dispositivo ricevente. Intersecando le sfere con la superficie terrestre, si ottiene un punto di intersezione che definisce la posizione del dispositivo. Il minimo numero di satelliti per identificare la posizione è uguale a 4, questo perchè per co-noscere l’ubicazione del dispositivo si ha bisogno di latitudine, longitudine, altitudine e tempo. La soluzione consiste nella risoluzione di un sistema a 4 incognite6.

Il segnale dei satelliti viene emesso su due frequenze 1575,42MHz e di 1227,6MHz la prima su dispositivi per uso civile e la seconda su dispositivi di uso militare. L’uso di due frequenze serve ad eliminare l’errore dovu-to alla rifrazione atmosferica. Su queste frequenze vengono trasmesse le seguenti informazioni:

• tempo della trasmissione del satellite (satellite time-of-transmission)

5radiopropagazione nella ionosfera http://www.iv3onz.altervista.org/propagazione.php e relatività

http://it.wikipedia.org/wiki/Teoria_della_relativit%C3%A0

(28)

CAPITOLO 3. La geolocalizzazione e la tecnologia GPS

• effemeridi satellite (tabelle di valori di varie grandezze astronomiche usate per predire le posizioni degli astri nel cielo)7

• grado di funzionalità del satellite (satellite (SIS) health)

• correzione relativistica dell’orologio satellitare (satellite clock correc-tion)

• effetti di ritardo del segnale dovuti alla ionosfera (ionospheric delay effects)

• correlazione con il tempo coordinato universale (UTC)

Il ricevitore GPS identifica il satellite in base ad un codice in una banca dati che risiede nel satellite. Il ricevitore GPS calcola anche il delta t ovvero il tempo che trascorre tra l’invio del segnale e la ricezione del ricevitore. Ogni satellite trasmette l’almanacco (parametri orbitali) dell’intera costellazione e solo le proprie effemeridi ripetutamente nel tempo. Il ricevitore impie-ga circa 12,5 minuti per scaricare l’intero almanacco ed effettua il calcolo sull’effetto doppler8, fenomeno fisico che prevede il cambiamento della fre-quenza o lunghezza d’onda trasmessa da una sorgente ad un osservatore in caso la sorgente cambi di posizione. Infine riceve i parametri dell’orbita da cui deriva la posizione del satellite, in modo tale da determinare la posizione terrestre.

La tecnologie più utilizzata di acquisizione coordinate tramite uso di GPS dei dipositivi Android e iOS è l’A-GPS9. Acronimo di Assisted GPS, è un sistema che permette di accorciare sensibilmente il tempo di aggancia-mento dei satelliti rispetto ad un normale sistema GPS. Il tempo di ricerca

7http://it.wikipedia.org/wiki/Effemeridi 8http://it.wikipedia.org/wiki/Effetto_Doppler 9http://en.wikipedia.org/wiki/Assisted_GPS

(29)

CAPITOLO 3. La geolocalizzazione e la tecnologia GPS

satelliti dipende dalla qualità del chipset GPS installato sul dispositivo, ma con l’assistenza della rete dati (3G, 4G, wifi, ecc...) l’allacciamento avviene in pochi secondi. L’A-GPS permette al dispositivo di scaricare le effemeridi e l’almanacco da un server che contiene queste informazioni sempre aggior-nate. I dati passando tramite un operatore di rete internet vengono scaricati velocemente a differenza dell’utilizzo dei satelliti dai quali si può ricevere dati ad una velocità di soli 50 bit/s.

(30)
(31)

Parte II

(32)
(33)

Capitolo 4

Studio di fattibilità per il

sistema di geolocalizzazione

P

er studiare la possibilità di geolocalizzare con uno smartphone otablet Android le apparecchiature da identificare, bisogna tenere conto dei seguenti punti:

• Precisione nel stabilire le coordinate terrestri: I dispositivi Android di uso comune solitamente hanno un modulo GPS di scarsa precisione che rileva latitudine e longitudine con un errore massimo di circa 5 metri di raggio. Questa potrebbe essere una grossa limitazione consi-derando che la distanza legale tra due lampioni stradali è fissata tra 10 e 30 metri1, misura non solo dello stesso ordine di grandezza, ma an-che simile all’errore massimo di rivelazione dello strumento geoloca-lizzante. Le aziende interessate al software Tecreader dovranno pren-dere in considerazione la necessità di acquistare dispositivi Android di fascia alta per la catalogazione strumenti. In caso l’area illuminante non debba essere progettata seguendo le sopra citate restrizioni, chi

(34)

CAPITOLO 4. Studio di fattibilità per il sistema di geolocalizzazione

utilizzerà l’app Android potrà dotare il personale tecnico di dispositivi Android user-consumer.

• presenza di spazi coperti e altri ostacoli: l’agganciamento ai satel-liti può essere difficile o totalmente assente in presenza di ostacoli tra l’antenna e il cielo. Solitamente gli strumenti di localizzazione sa-tellitare risentono della ionosfera che distorce il segnale e introduce un errore dipendente dall’ora del giorno, dal giorno dell’anno, dal-l’attività solare e da altre variabili. Di conseguenza la propagazione del segnale è variabile in modo aleatorio. Oltre ai fattori naturali che distorcono il segnale (ionosfera, montagne, ecc...) ci sono quelli in-trodotti dall’uomo (case, ponti, ecc...). Il dipartimento di Ingegneria Elettronica dell’Università di Roma Tor Vergata ha pubblicato un do-cumento divulgativo che cerca di spiegare questi fenomeni.2Nel caso l’azienda che utilizza Tecreader installi apparati di illuminazione per interni, risulta impossibile effettuare la geolocalizzazione. Non essen-do tecnicamente possibile risolvere il problema pensanessen-do come unica risorsa hardware ad un dispositivo Android entry level, è possibile ag-girare il problema mettendo nel software di geolocalizzazione la pos-sibilità di inserire latitudine e longitudine manualmente ed effettuare la geolocalizzazione anche nel caso non siano stati agganciati i satelliti GPS.3

• gestione dei dati acquisiti dal programma: Android è in grado di gestire l’acquisizione delle coordinate terrestri tramite funzioni di

li-2GPS: quanto sono precisi? dipartimento di Ingegneria Elettronica dell’Università di Roma Tor Vergata

-di ROBERTO LOJACONO, FABRIZIO PINI, STEFANO ANGELUCCI, JOSÉ LUIS GUERRERO MARIN - anno pubblicazione 2007

3funzione da implementare, vedi Cap 10.2 Studio di fattibilità geolocalizzazione in presenza di aree coperte

(35)

CAPITOLO 4. Studio di fattibilità per il sistema di geolocalizzazione

breria in maniera automatica. In caso di mancanza del segnale GPS fa affidamento al segnale 3G/4G della rete dati o wifi. In quest’ultimo caso l’acquisizione delle coordinate sarà evitata a causa della lettura di coordinate errate, infatti in un dispositivo Android ci si è resi conto che l’errore massimo commesso relativo all’utilizzo di strumenti di-versi è: circa 1,5 km con rete 3G/4G, 35-120 metri con rete wifi e 1-35 metri con GPS / A-GPS. Questi dati sono stati raccolti grazie al-l’aiuto di Google map e dell’applicazione GPS Status scaricabile da Play Store.

Figura 4.1: rilevamento posizione di Google Map utilizzando cella telefonica e con wifi

(36)

CAPITOLO 4. Studio di fattibilità per il sistema di geolocalizzazione

Figura 4.2: GPS Status utilizzando opzione A-GPS

Possiamo concludere che l’applicazione è abbastanza semplice da pro-gettare. Infatti le API Android e le librerie aggiuntive danno tutti gli stru-menti necessari per operare. La gestione GPS è posta ad un livello inferiore (hardware) e non necessita configurazioni.

(37)

Capitolo 5

Analisi e scelta dei software

di sviluppo

L

a scelta è stata fatta prendendo in considerazione i software diprogettazione delle etichette da applicare alla strumentazione su campo e i programmi di sviluppo Android.

5.1

Analisi e scelta del software di progettazione

e stampa etichette

Le etichette dovendo essere applicate a strumenti esposti ad agenti atmosfe-rici, non devono degradarsi nel tempo. La stampa, specialmente il QR Code, deve mantenere la nitidezza di quando è stata creata onde evitare problemi di lettura con lo strumento. Si ricorda anche che l’etichetta non deve essere troppo lucida, perchè la lettura potrebbe avvenire in situazioni di maltempo o particolari condizioni di luce.

Tenendo conto di tutti questi fattori, è necessario scegliere un software di sviluppo compatibile con stampanti etichette a trasferimento termico.

(38)

Que-CAPITOLO 5. Analisi e scelta dei software di sviluppo

ste stampanti usano un nastro su cui viene disciolto un liquido resinoso. Il nastro viene a contatto con il rullo di carta e grazie al calore l’immagine sul nastro è trasferita sul rullo. In seguito la carta viene tagliata in modo tale da generare tag o etichette di vario tipo.1

Sono stati analizzati diversi software che hanno presentato diversi pro e contro. La selezione è avvenuta tenendo conto delle seguenti caratteristiche: • potenzialità: possibilità di importare immagini (lavorare con un pro-gramma in grafica vettoriale esterno è più comodo) e capacità di ese-guire stampe con codici seriali consecutivi utilizzando aree dinamiche che si aggiornano grazie ad un contatore o ad un database. In caso l’azienda abbia bisogno di generare un grande numero di etichette da applicare ad una produzione in serie di un particolare modello di di-spositivo, sarebbe impensabile dover incrementare manualmente ogni singolo QR Code.

• facilità di utilizzo: area di sviluppo user-friendly con icone di co-mando intuitive e suggerimenti. Il programma dovrà essere utilizzato probabilmente anche da chi gestisce la produzione degli strumenti da etichettare. L’addetto che svolge la stampa delle etichette non è detto che abbia competenze informatiche di un tecnico o programmatore. • supporto tecnico: una azienda di progettazione non ha tempo da

per-dere per risolvere problemi non inerenti al progetto che sta realizzan-do. Tali problemi possono essere risolti velocemente da chi produce o distribuisce il programma di progettazione etichette tramite assistenza telefonica. Può essere vantaggioso pagare maggiormente un software in cambio di un risparmio di tempo.

(39)

CAPITOLO 5. Analisi e scelta dei software di sviluppo

• rapporto qualità prezzo: esistono diversi software di progettazione etichette, di conseguenza esiste una certa concorrenza e i prezzi pos-sono variare. Essendo il QR Code uno standard internazionale di co-difica, esistono aziende in tutto il mondo che vendono tali programmi. Un analisi approfondita di cosa offre il mercato è necessaria onde evi-tare l’acquisto di un prodotto con capacità limitate o non compatibili con il lavoro che bisogna svolgere.

I software analizzati sono:

• Codesoft 10 PRO: questo software, sviluppato dall’azienda Teckly-nx,2 dispone di un area di sviluppo intuitiva dotata di comandi chiari per importare immagini, creare aree di testo e completa gestione di aree dinamiche con il supporto di tutti i principali tipi di codici a barre 2D e 3D. I codici possono essere generati in maniera dinamica utiliz-zando un contatore oppure un database. Il programma è in grado di stampare le etichette su fogli A4 o carta in rulli per trasferimento ter-mico generando copie consecutive. Ogni copia avrà una parte statica e un altra contenente il barcode con un codice crescente o che varia in base ai valori contenuti nel database. Codesoft dispone di ottima as-sistenza online e telefonica fornita dall’azienda Pernix Italia3. Come tutti i programmi di creazione di etichette, la licenza di tale program-ma ha un costo non irrilevante (circa 790 euro), program-ma ha la grande qua-lità di poter essere avviato in versione trial con durata 30 giorni senza alcuna limitazione. L’azienda fornitrice Pernix assicura anche piena compatibilità del software con la stampante Pintronix T2N della quale è possibile vedere le caratteristiche sul sito internet del distributore.

(40)

CAPITOLO 5. Analisi e scelta dei software di sviluppo

• LabelJoy: viene sviluppato dalle società eDisplay e Nuraxis.4 Labe-ljoy supporta tutti i principali tipi di codici a barre attualmente utiliz-zati in campo industriale. Possiede una interfaccia semplice e intuitiva e può creare campi dinamici che si aggiornano con l’ausilio del conta-tore o database. Purtroppo la versione demo non permette di utilizzare tutte le funzioni e di conseguenza non è possibile verificare se il soft-ware è adatto alle nostre esigenze. Dalla versione limitata emerge una certa difficoltà nel controllare i campi dinamici. Il problema consiste nell’impossibilità di spostare il codice alfanumerico dinamico relativo al QR Code (equivalente a quello contenuto nell’immagine) rispetto a quest’ultimo. Questo non permette di sfruttare al meglio gli spazi e lasciare aree di stampa vuote inutilmente. LabelJoy non permette neppure di ridimensionare l’etichetta a piacimento obbligando l’uti-lizzo di dimensioni standard. Uno dei pochi lati positivi sembra essere il prezzo circa 249 euro la versione full. Bisogna però considerare il fatto di non conoscere un azienda che lo distribuisce e quindi non si conosce l’efficienza dell’assistenza.

• TFORMer: sviluppato dall’azienda TEC-IT Datenverarbeitung Gm-bH5 supporta le principali tipologie di codici a barre, è possibile gene-rare codici a barre usando un contatore o database manipolandoli con funzioni matematiche per stabilire incremento o ordine delle query. Di negativo, il software ha il problema di essere complesso da utilizzare, non è possibile spostare il codice alfanumerico relativo al QR Code in-dipendentemente dalla posizione di quest’ultimo, una volta creato un contatore non è possibile aggiungere zeri a sinistra, infine su internet

4http://www.labeljoy.com/ 5http://www.tec-it.com

(41)

CAPITOLO 5. Analisi e scelta dei software di sviluppo

non si trovano guide sull’utilizzo. Il costo di aggira sulle 360 euro, cifra non così bassa considerando che non c’è un’assistenza telefonica diretta.

• Bartender: è sviluppato dalla Seagull Scientific Company6. Supporta i principali modelli di codici a barre, non è possibile utilizzare conta-tori per la generazione di codici a barre incrementali ma solo database, quindi non è possibile fare prove veloci di stampa o rende scomoda la procedura di progettazione in caso di poche stampe. Il prezzo è di circa 500 euro. Tale prezzo è esagerato se si mette in conto che l’a-zienda non vende direttamente il prodotto ma si appoggia a terzi e di conseguenza è più difficile ricevere assistenza.

• Barcode Label Maker: di Aulux Tecnologies,7 è semplice da utiliz-zare e permette di utilizutiliz-zare un database per generare codici a barre, ma possiede diversi aspetti negativi. Il problema principale è la ver-sione full scarna, pochi tasti e funzioni. Si sente la mancanza del contatore per la generazione dei codici e il codice alfanumerico rela-tivo al codice a barre è agganciato ad esso e non può essere spostato singolarmente. Il prezzo (di circa 130 euro) non lo rende comunque un buon concorrente viste le grosse lacune.

In corredo al software Codesoft si è scelto di utilizzare la stampante Prin-tronix T2N per semplicità in quanto l’azienda che fornisce il programma garantisce piena compatibilità ed efficienza con la stampante. Nonostante la scelta vincolata al software, l’hardware ha buone caratteristiche.

• Prezzo: 850 euro

(42)

CAPITOLO 5. Analisi e scelta dei software di sviluppo

• Compatibilità con tutti i principali software di stampa grazie a driver compatibili con Windows 7, XP e Vista

• Velocità stampa: 152 mm per secondo • Metodo di stampa: Stampa diretta e termica • Risoluzione: 203 dpi / 8 dot per mm

• Larghezza stampa max: 4,10” (104 mm)

• Memoria stampante: Memoria RAM da 32 MB / memoria Flash da 8 MB

• Emulazione: ZEBRA8

• Interfaccia standard: Ethernet, USB 2.0, Seriale RS232

Figura 5.1: Printronix T2N

Nonostante tale scelta dei prodotti possa sembrare costosa, l’azienda ri-sparmierà tempo sia in fase di progettazione etichetta che in fase produzione

(43)

CAPITOLO 5. Analisi e scelta dei software di sviluppo

in serie. Il personale addetto alla stampa non avrà bisogno di essere formato dall’azienda che progetta strumenti di illuminazione. Infatti è probabile che in seguito alla forte domanda di un particolare modello in vendita l’azienda devolva il compito di stampa etichettatura e logistica a terzi.

5.2

Analisi e scelta del software di sviluppo

An-droid

Esistono in commercio diverse piattaforme di sviluppo Android compatibili con i principali sistemi operativi Windows, Mac OS X e Linux. Alcune ne-cessitano la conoscenza del solo linguaggio Java, hanno semplici editor di testo, utilizzano librerie di sviluppo Android, ma sono meno adatte a svilup-pare applicazioni con grafica complessa; altre sono piattaforme di sviluppo simili a programmi per computer grafica in grado di convertire grafica e co-dice (scritto in vari linguaggi) in una applicazione Android con estensione .apk pronta all’uso. In seguito si elencano le piattaforme prese in consi-derazione tralasciando l’ultima tipologia citata, più adatta allo sviluppo di videogiochi:

• Android Studio9: piattaforma di sviluppo IDE sviluppata da Google

nel 2013, è pubblicata sotto licenza Apache 2.0. Tale IDE è stata co-struita appositamente per lo sviluppo Android ed è compatibile con Windows, Mac OS X e Linux. A prima vista sembrerebbe la soluzio-ne migliore prendendo in consideraziosoluzio-ne l’interfaccia di costruziosoluzio-ne dei layout grafici efficiente e la completa compatibilità con i disposi-tivi Android. Il problema consiste in una grande quantità di bug che rendono impossibile lo sviluppo: difficoltà nell’aggiornare l’area di

(44)

CAPITOLO 5. Analisi e scelta dei software di sviluppo

lavoro in caso di lavori su più PC (programmi di file sharing come Dropbox), librerie esterne difficili da importare, rischio di perdere il lavoro dopo il riavvio del programma. Questi problemi sono dovuti al software nato da poco e quindi non ancora tanto maturo nonostante gli aggiornamenti settimanali.

• Eclipse10: è un software libero pubblicato sotto licenza Eclipse Public

License fatto da grandi società quali Ericsson, HP, IBM, Intel, Mon-taVista Software, QNX, SAP e Serena Software. Questa IDE è molto versatile in quanto supporta svariati linguaggi di programmazione e le sue funzioni sono estendibili scaricando plug-in tramite una finestra di gestione di facile utilizzo. Esiste una grande comunità di programma-tori che supporta Eclipse, quindi è sempre aggiornato e stabile. Anche il plug-in per la programmazione Android non presenta bug rilevanti e si integra perfettamente con l’SDK Android11

Si è scelto di utilizzare Eclipse perchè Android Studio sembra un progetto ancora troppo immaturo e quindi inutilizzabile dato che si perde tempo de-dito alla progettazione per aggirare bug dovendo modificare a mano linee di codice e consultando guide e forum.

10http://it.wikipedia.org/wiki/Eclipse_(informatica) 11vedi Appendice A.2

(45)

Capitolo 6

Realizzazione dell’etichetta

L

’etichetta come mostrato in foto deve essere facilmente leggibile edeve contenere: • nome azienda: nella parte superiore della etichetta. Chi ha a che fare con lo strumento deve riconoscere immediatamente l’azienda che lo produce.

• il modello dello strumento: sulla sinistra comprensivo di logo

• i dettagli tecnici dello strumento elettronico: per legge lo strumento deve riportare una serie di simboli standard che indicano le caratteristi-che costruttive come potenza, resistenza ad agenti atmosferici, ecc...1 Si è pensato di riporre queste informazioni al centro dell’etichetta e nella parte in basso a sinistra. La potenza in Watt è stata scelta come campo dinamico dato che una società potrebbe produrre impianti di diversa potenza.

• il codice QR code: in seguito a vari test di decodifica si è constatato che il codice deve essere almeno grande 1,5 x 1,5 cm e deve avere

(46)

CAPITOLO 6. Realizzazione dell’etichetta

un bordo di colore uniforme diverso dal nero di almeno 2 mm per essere riconosciuto da una normale fotocamera in dotazione ad uno smartphone o tablet.

• il codice alfanumerico scritto in caratteri contenuto nel Qr Code: in caso di problemi di acquisizione dell’immagine QR è utile avere la possibilità di leggere il codice ed inserirlo manualmente nell’applica-zione. Il codice è di tipo numerico di 10 cifre. Ogni strumento che viene prodotto viene numerato in maniera consecutiva. Se non sono stati prodotti un numero di strumenti sufficiente ad utilizzare tutte le cifre, il numero di produzione viene preceduto da zeri. Questa decisio-ne è stata presa perché non si può sapere quanti esemplari dello stesso modello vengono prodotti ma allo stesso tempo si vuole definire una tiratura massima.

Si è pensato di costruire l’etichetta in maniera simile a quelle già presenti su altri dispositivi industriali, ovvero l’area stampabile è di 5 cm di larghezza e 2,5 cm di altezza.

(47)

Capitolo 7

Sviluppo del software

I

l software è stato sviluppato in due parti. Una parte client consistenell’applicazione Android di acquisizione informazioni e spedi-zione al server. La seconda comprende un server Apache che ac-cetta chiamate http-post1, un parser scritto in php che processa file xml e un database che viene aggiornato utilizzando i valori prelevati da quest’ultimo. In seguito verranno elencati i vari passaggi in maniera più approfondita.

7.1

Tecreader: applicazione Android (lato client)

L’applicazione Android acquisisce le seguenti informazioni e le salva in un file xml:

• data e ora di salvataggio foto • username operatore

• IMEI telefono

(48)

CAPITOLO 7. Sviluppo del software

• foto codificata in base-64 • longitudine

• latitudine

• errore massimo GPS

L’operazione avrà successo solamente se le credenziali di log-in saranno confermate. Le informazioni vengono spedite al server sotto forma di strin-ghe di testo tramite http-post asincrona2. Inizialmente, in fase di progettazio-ne, si era provato di spedire i dati senza utilizzare la classe AsyncTask Java senza riuscire a contattare il server. Varie guide su internet spiegano che tale classe è necessaria quando si utilizza un parser scritto in PHP. Tecreader ha anche la possibilità di spedire i dati in più parti grazie alla funzione Multi-part.3 La divisione delle parti è automaticamente gestita da php e utilizzata solamente se esso la supporta4.

Il file .xml generato e salvato nella memoria del device Android è for-mattato nel seguente modo:

<?xml version=’1.0’ encoding=’UTF-8’ standalone=’yes’ ?> <snapshot>

<time>2013-11-10 18:45:07</time> <type>QUADRO / FOTO / ecc... </type> <user>Luca_Rossi</user> <imei>368542798360741</imei> <code>0000001200</code> <photo>rtyhhvdwsebmloiuy546788hgfrdc...</ photo> <longitude>30.10969</longitude>

2vedi la classe AsyncTask nella API Android

3vedi: http://tacticalnuclearstrike.com/2010/01/using-multipartentity-in-android-applications/ 4vedi appendice

(49)

CAPITOLO 7. Sviluppo del software

<latitude>20.56798</latitude> <error>8</error>

</snapshot>

Tale file viene spedito al server e sarà processato da un parser scritto in php che permetterà di inserire i dati in un database all’interno del server. In seguito viene descritto più in dettaglio ciò che accade all’interno di ogni menù dell’applicazione e nel capitolo successivo cosa accade nel server.

7.1.1

Log-in

Tecreader si presenta all’utente con una schermata di log-in. L’utente, che deve essere un tecnico riconosciuto dall’azienda, possiede i dati con cui au-tenticarsi che sono univoci e inseriti nel database del server aziendale in precedenza. L’operatore può effettuare il log-in anche in assenza di segnale GPS adeguato o rete internet, ma in questo caso il confronto delle creden-ziali con quelle all’interno del database nel server fallisce e verrà richiesto in seguito. In caso non sia possibile sincronizzare i dati con il server centrale, potrà esser fatto in un secondo momento. La schermata di autenticazione è stata concepita suddividendola in tre aree:

• parte alta: uno spazio vuoto in cui può essere inserito il logo dell’a-zienda ed eventuali informazioni di supporto tecnico

• parte centrale: contiene due aree di testo editabile per user e password dove i caratteri vengono nascosti mentre vengono digitati.

• barra in fondo: mostra il numero di file da sincronizzare con il server. Ogni volta che si esegue un’acquisizione di foto, codice o coordina-te, nella memoria del dispositivo Android viene salvato un file .xml contenente i vari tag contenenti gli elementi acquisiti sotto forma di

(50)

CAPITOLO 7. Sviluppo del software

testo. Quando tutti i file sono stati spediti al server la barra visualizza la scritta “sincronizzazione completata”.

Figura 7.1: schermata principale Tecreader

7.1.2

Menù principale

In questo menu sono presenti due tasti: “NUOVA SCANSIONE” serve per entrare nel menù secondario dove si decide la tipologia di scansione da ef-fettuare (tipo di dispositivo con Qr Code o foto libera), “LISTA SCANSIO-NI” permette di visionare la lista delle scansioni effettuate. In fondo a de-stra è presente il tasto “IMPOSTAZIONI” per modificare vari parametri del programma.

(51)

CAPITOLO 7. Sviluppo del software

Figura 7.2: seconda schermata

7.1.3

Scelta tipologia di scansione

Premendo su “NUOVA SCANSIONE” si entra nel menù di selezione del di-spositivo o foto libera. L’azienda potrebbe installare vari dispositivi connessi a quelli luminosi. Di conseguanza si è pensato di creare diversi bottoni che accedono alla stessa schermata di scansione Qr Code e acquisizione foto. Dipendentemente dal tasto premuto le operazioni nella schermata di acqui-sizione saranno differenti: ogni tasto passerà alla schermata successiva una

(52)

CAPITOLO 7. Sviluppo del software

costante che genererà un tag nel file .xml dipendente dal dispositivo e in ca-so si voglia ca-solamente scattare una foto, non sarà necessario acquisire il Qr Code.

Figura 7.3: layout di selezione tipologia di scansione

I bottoni selezionabili sono:

• Apparecchio illuminante: qualsiasi dispositivo di illuminazione una azienda decida di gestire (lampioni stradali, lampade per spazi privati, ecc...).

(53)

CAPITOLO 7. Sviluppo del software

• Quadro: in caso le etichette vengano applicate anche su quadri elet-trici di gestione impianti di illuminazione

• Main station foto libera: l’azienda può utilizzare PLC5 ovvero con-trollori logici programmabili. Sono apparecchi dotati di varie porte di comunicazione in entrata e uscita che fungono da interruttori (acceso / spento) per controllare impianti. Sono in grado di aprire e chiudere porte in maniera automatica seguendo la logica del programma che viene caricato in memoria.

• Altro: qualsiasi altro tipo di strumento

Figura 7.4: eWon PLC

7.1.4

Scansione e foto

Cliccando su un qualsiasi bottone per eseguire la scansione o la foto, si viene indirizzati alla schermata di scansione che appare come visualizzata in foto.

(54)

CAPITOLO 7. Sviluppo del software

Figura 7.5: layout di scansione e foto Tecreader presenta i seguenti elementi:

• segnalatore stato GPS: in alto viene mostrato l’errore massimo com-messo dal GPS, caratteristica facilmente implementabile grazie ad una funzione delle librerie Android. Affianco all’errore è presente la un quadrato che è verde se l’errore è accettabile, ovvero è minore dell’er-rore massimo di soglia selezionato nelle impostazioni, rosso altrimen-ti. In caso di quadrato rosso un Toast6 Android apparirà indicando che l’errore è inaccettabile e il file non verrà salvato.

6particolare banner grigio con scritta bianca all’interno, che può essere visualizzato su un layout. Vedi API

(55)

CAPITOLO 7. Sviluppo del software

• bottone scansione QR Code: attivo solamente se l’errore è accettabile altrimenti un Toast avverte che la scansione non può essere effettuata. L’operatore può scattare foto nonostante il dispositivo mobile non sia agganciato ai satelliti o non sia presente la rete internet. Tale possibi-lità è stata consentita in caso sia da catalogare un dispositivo installato in un area coperta oppure sia assente la connessione internet. La fun-zione di scansione chiama il programma Android Barcode Scanner presente nel Play Store7 e se il programma non è presente l’applica-zione invita ad installarlo. Una volta avvenuta la scansione, Barcode Scanner ritorna la tipologia di codice scansionato e il testo in esso con-tenuto. Tali informazioni vengono gestite dall’applicazione grazie alle funzioni messe a disposizione dei produttori dell’app.

• bottone scatta foto: attivo alle stesse condizioni citate sopra. La foto viene scattata chiamando il programma di default installato sul device o facendo scegliere tra quelli installati. Il programma ritorna la foto che è gestibile all’interno dell’applicazione da sviluppare grazie alle API di programmazione messe a disposizione da Android.

In caso tutti i requisiti della scansione siano soddisfatti il file .xml sarà crea-to, ma al suo interno mancherà il campo user. Il file verrà aggiornato e spedito al server solo dopo che quest’ultimo abbia verificato le credenziali di autenticazione. Per fare ciò sarà necessario reinserire le credenziali nella finestra di log-in.

Le procedure che avvengono in fase di scansione possono essere rias-sunte nella figura sottostante

(56)

CAPITOLO 7. Sviluppo del software

Figura 7.6: diagramma azione che mostra le procedure eseguite in fase di scansione

7.1.5

Lista scansioni effettuate

Cliccando sul bottone “LISTA SCANSIONI” appare una tabella dove è pos-sibile visionare per ogni scansione effettuata:

(57)

CAPITOLO 7. Sviluppo del software

Figura 7.7: schermata lista scansioni effettuate

• data di scansione: data espressa in formato anno-mese-giorno

ora:minuti:secondi. Non c’è pericolo di sovrascrittura tra i file o etuale crash applicazione dato che è impossibile che due scansioni ven-gano eseguite lo stesso secondo.

• numero seriale appreso durante scansione: espresso utilizzando 10 ci-fre con zeri davanti è lo stesso numero all’interno e sotto il Qr Code nell’etichetta. In caso di foto a elementi del paesaggio per identifi-care la zona circostante lo strumento il file scansione viene salvato all’interno di Android senza bisogno di codice seriale.

(58)

CAPITOLO 7. Sviluppo del software

• tipologia di strumento: gli strumenti sono APPARECCHIO ILLUMI-NANTE, QUADRO, MAIN STATION, FOTO LIBERA, ALTRO. • lo stato di sincronizzazione col server: il quadrato verde significa che

il file è stato spedito al server, quello rosso che è ancora da spedire. Il quadrato è rosso se il dispositivo mobile non è in grado di connet-tersi a internet oppure a causa di eventuali fallimenti di spedizione file .xml tramite http-post. Il file .xml è comunque salvato in memoria nel dispositivo Android.

7.1.6

Impostazioni

L’ultima icona in basso a destra all’interno del menù principale di Tecrea-der permette di acceTecrea-dere alla schermata di impostazioni. Tale schermata presenta varie aree di azione:

• codice IMEI: codice identificativo univoco del telefono. Utile per ge-stire i dati nel database del server. L’IMEI può essere usato come chiave in una tabella e permette di evitare errori in caso in cui due dispositivi diversi spediscano il file al server nello stesso momento. • massima dimensione foto: visualizza la massima grandezza in KB

che può occupare una foto. Se la foto supera tale valore un messaggio in fase scansione avvertirà di cambiare le impostazioni di salvataggio dell’applicazione macchina fotografica Android. La foto è salvata in base-648 all’interno del file .xml sotto forma di caratteri. Rappresenta-re un immagine sotto forma di testo richiede una lunga stringa. Un test eseguito su una foto scattata in una giornata di sole è grande 1,18MB

(59)

CAPITOLO 7. Sviluppo del software

e convertita in base-64 ha dato origine ad una stringa di 606464 ca-ratteri.9 Nonostante una stringa possa essere spedita al server a pezzi e poi ricongiunta all’arrivo, rimane il problema della capienza mas-sima in caratteri di una cella del database. La dimensione masmas-sima accettata è stata calcolata scegliendo un valore tale da poter effettuare foto di buona qualità e allo stesso tempo rendere accettabili i tempi di gestione dei dati acquisiti.

• errore massimo di soglia: permette di selezionare la soglia oltre la qua-le qua-le scansioni e qua-le foto vengono rifiutate. Taqua-le parametro è stato reso modificabile in modo tale da salvare le coordinate con una discreta precisione lasciando comunque la possibilità di utilizzare dispositivi Android con moduli GPS entry-level (se gli strumenti su campo ven-gono installati a distanza superiore all’errore massimo di acquisizione coordinate, saranno comunque visualizzabili su una mappa senza fare confusione).

• indirizzo ip server: indirizzo al quale viene inviata una http-post per la spedizione dei dati e notifica corretta ricezione. Il campo è editabile perché si presuppone che ogni azienda abbia un suo server di controllo strumenti.

e i bottoni:

• salva: salva le impostazioni nella cache applicazione10

• valori di default: ripristina i valori preimpostati delle impostazioni Tecreader.

9vedi: appendice

(60)

CAPITOLO 7. Sviluppo del software

Figura 7.8: schermata impostazioni

7.2

Tecreader: gestione dati (lato server)

Per configurare il PC come un server si è utilizzato il programma EasyPHP11 che consiste in un unico pacchetto autoinstallante che contiene al suo interno PHP, Apache, MySQL, PhpMyAdmin e altri tool per devolper. Ogni modulo svolge funzioni differenti:

• PHP: linguaggio di programmazione interpretato che permette di ese-guire file scritti in tale linguaggio sul server ed e configurabile tramite un file di configurazione php.ini12.

11vedi: http://www.easyphp.org/ 12vedi appendice

(61)

CAPITOLO 7. Sviluppo del software

• Apache: è il server che utilizza una cartella salvata su disco fisso con all’interno script e moduli per costruire un dominio accessibile all’esterno.

• MySQL: programma di gestione database. Il programma è sotto li-cenza shareware ad è gratuito per applicazioni no-profit. Si è scelto di utilizzarlo data la sua popolarità13.

• PhpMyAdmin: programma scritto in PHP rilasciato sotto licenza GPL che facilita l’utilizzo di MySQL grazie una interfaccia grafica e la possibilità di funzionare da browser

La comunicazione tra server e Android avviene come descritta in figura:

Figura 7.9: funzionamento comunicazione tra applicazione e server All’interno delle impostazioni dell’applicazione Tecreader è presente l’in-dirizzo del server al quale viene effettuata la chiamata. Il server viene con-tattato due volte. La prima volta vengono confrontati i dati di autenticazione con quelli già preimpostati nel database dall’azienda, la seconda viene spe-dito il file xml. Il test di sincronizzazione dati è stato effettuato utilizzando

(62)

CAPITOLO 7. Sviluppo del software

un server Apache nel quale è stato posizionato un file receiver.php che si oc-cupa di ricevere ed elaborare le stringhe di testo ricevute tramite http-post. Il file php può prelevare o scrivere dati nel database utilizzando funzioni my-sql. Per maggiore sicurezza, i dati vengono anche salvati nel disco presente nel server (le immagini vengono riconvertite da stringa base-64 in file).

(63)

Capitolo 8

Test di comunicazione

I

test di funzionamento dell’applicazione sono stati svolti presso il cortile della facoltà di Agraria di Bologna in Viale Fanin, 44 40127 - Bologna. Per accertarsi che i dati acquisiti siano accetta-bili si è scelto il caso pessimo in cui un azienda si affidi all’acquisizione di coordinate GPS tramite dispositivi mobili di fascia medio-bassa acquistabi-li anche in normaacquistabi-li negozi di telefonia. Si è deciso di scegacquistabi-liere un area di piccole dimensioni perché solitamente un’azienda che si occupa di sistemi di illuminazione intelligente che decide di localizzare i suoi strumenti con tali dispositivi GPS, esegue impianti su piccola scala. Un altro fattore che ha portato alla scelta di tale area è la presenza di ostacoli quali portici e muri. In presenza di tali ostacoli uno strumento di acquisizione coordinate satellitari si trova in maggiore difficoltà a stabilire la corretta posizione rispetto ad un area a cielo aperto come potrebbe essere una autostrada.

(64)

CAPITOLO 8. Test di comunicazione

Figura 8.1: cortile facoltà di Scienze agrarie di Bologna

Per eseguire il test è stato utilizzato uno smartphone Android già mostra-to in precedenza con le seguenti caratteristiche1:

• Processore MediaTek MT6589 Quad Core a 1.2 GHz Cortex A7 GPU PowerVR SGX544MP

• Rete GSM Dualband (900/1800 MHz) UMTS Dualband (1900/2100 MHz)

L’area in cui si sono svolti i test è coperta da segnale HSPA+ che fornisce una banda fino a 42,2 Mbit/s di download e 5,76 Mbit/s di upload, larghezza di banda considerata sufficiente per inviare i dati.

(65)

CAPITOLO 8. Test di comunicazione

Il telefono è stato configurato per essere il più possibile veloce a cercare i satelliti e stabilire la posizione con precisione accettabile2. L’esperimento è stato condotto con questo dispositivo perchè già in mio possesso e perchè dotato di un modulo di gestione GPS con supporto A-GPS non particolar-mente efficiente che rileva la posizione con un errore massimo tra 10-15 metri. (ricordiamo che conducendo i test nel caso pessimo, se i risultati so-no accettabili, abbiamo piena certezza che il software di geolocalizzazione Tecreader funzioni allo stato dell’arte per la mappatura di impianti su larga scala utilizzando dispositivi Android con modulo GPS professionale.)

Sono stati stampati vari codici Qr Code in serie ed è stata eseguita una scansione per ogni codice ai vari angoli del cortile simulando la presenza di 4 lampade. Le coppie di dati latitudine e longitudine sono state in seguito prelevate dal database sul server e marcate in Google map, simulando l’o-perazione che similmente dovrebbe fare il software aziendale di controllo a distanza delle lampade. I punti sono stati confrontati con le coordinate rilevate visivamente guardando la mappa satellitare di Google map.

(66)

CAPITOLO 8. Test di comunicazione

Figura 8.2: differenza tra posizione calcolata usando le foto satellitari e rilevamento GPS del telefono

I risultati sono scarsamente accurati e confermano l’errore massimo in-dicato dall’app Tecreader durante rilevamento. Nonostante ciò è comunque possibile immaginare che i dispositivi siano stati installati ai quattro angoli dell’edificio. Si ritengono necessari futuri esperimenti utilizzando dispo-sitivi di rilevamento professionali per avere una marcatura accurata della mappa.

(67)

Parte III

(68)
(69)

Capitolo 9

Studio di fattibilità

identificazione strumento

con richiesta dati al server

Essendo fattibile spedire dati riconoscitivi dello strumento al server è sem-plice anche fare l’operazione opposta, ovvero una volta eseguita una scan-sione di un Qr Code, visualizzare su telefono Android i dettagli tecnici del dispositivo installato su campo. L’operazione dovrebbe seguire il seguente iter:

1. l’operatore scansiona il Qr Code

2. Tecreader spedisce un file xml contenente la stringa alfanumerica nel Qr Code utilizzando http-post al server specificando nell’indirizzo del destinatario il file receiver.php

3. il file receiver.php riconosce che il file spedito è un .xml di ricerca dati grazie ad un tag, di conseguenza invece che salvarlo su disco esegue il

(70)

CAPITOLO 9. Studio di fattibilità identificazione strumento con richiesta dati al server

parsing, preleva la stringa numerica contenente il codice e lo confronta con i codici salvati nel database.

4. trovata la riga nella tabella del database che contiene il Qr Code, ven-gono letti gli altri campi, tutti i dati sono salvato in un xml e spediti all’applicazione Android

5. l’applicazione esegue il parsing dell’xml, preleva i dati e visualizza su schermo i dati

Figura 9.1: schema di ricerca dati dispositivo su database

Per semplificare la costruzione dell’app si potrebbe introdurre un bottone sotto “LISTA SCANSIONI” chiamato “CERCA DISPOSITIVO”.

(71)

Capitolo 10

Studio di fattibilità

geolocalizzazione in

presenza di aree coperte

Il rilevamento della posizione tramite satelliti, risulta impossibile in presenza di spazi coperti. In caso vengano installati impianti in aree interne ad edifici (case, garage, ecc...) potrebbe essere impossibile portare a termine il lavoro quindi è possibile scegliere due strategie operative:

• utilizzo di sistemi di localizzazione indoor

• possibilità di inserire manualmente le coordinate nell’applicazione Te-creader

(72)

CAPITOLO 10. Studio di fattibilità geolocalizzazione in presenza di aree coperte

10.1

Localizzazione indoor

Un segnale GPS è fortemente distorto all’interno di uno spazio chiuso co-me ad esempio una casa. Le onde del segnale rimbalzano su i muri e di conseguenza il device non è in grado di agganciare almeno 4 satelliti oppu-re la posizione calcolata è totalmente errata. Attualmente per calcolaoppu-re la posizione in queste condizioni si utilizzano vari tipi di segnali come wi-fi, bluetooth, ecc... al fine di effettuare una triangolazione e determinare la po-sizione. Questa tecnica va sotto il nome di indoor positioning system (IPS)1. Esistono aziende come la Insoft che sviluppano hardware che possono de-terminare la posizione di un telefono all’interno di una stanza utilizzando hotspot chiamati “indor locators nodes”.

Figura 10.1: indor locator server and hotspots

L’IPS è una tecnologia che comporta dei costi significativi per avere ri-sultati soddisfacenti, quindi è di poca utilità trattare questo argomento in maniera più approfondita.

(73)

CAPITOLO 10. Studio di fattibilità geolocalizzazione in presenza di aree coperte

10.2

Inserimento manuale coordinate.

Le aziende a cui è rivolta l’applicazione Tecreader raramente installano im-pianti presso strutture interne ad edifici, quindi si ritiene più semplice intro-durre una finestra per l’inserimento manuale delle coordinate nell’applica-zione. L’idea è quella di introdurre un tasto per l’inserimento nella finestra di scansione che accede alla schermata con due campi di inserimento latitudine e longitudine.

Figura 10.2: restyling layout Tecreader per funzione inserimento manuale coordinate.

Dal punto di vista tecnico, non ci sarebbero particolari problemi ad ese-guire una modifica nella programmazione. I campi di inserimento latitudine

(74)

CAPITOLO 10. Studio di fattibilità geolocalizzazione in presenza di aree coperte

e longitudine possono essere visti come float ed inclusi nel file xml creato dopo la scansione.

(75)

Capitolo 11

Conclusioni

Il progetto di tesi ha permesso di comprendere le problematiche riguardanti la costruzione di una applicazione in grado di stabilire la posizione di un oggetto su una mappa. Si è appreso come avviene il labeling di un prodotto a livello industriale. Sono stati studiati sistemi per costruire un’applicazio-ne leggera dal punto di vista della programmazioun’applicazio-ne ma allo stesso tempo efficiente sfruttando al massimo le API Android e il linguaggio JAVA. Si è appreso infatti che è inutile “reinventare la ruota”, ma è possibile uti-lizzare applicazioni efficienti già presenti in rete che essendo open source possono essere integrate in un’altra applicazione e richiamate quando utiliz-zate. È stato possibile comprendere l’interazione comunicativa presente tra un server ed una applicazione che invia i dati. Indipendentemente dal tipo di connessione del telefono a internet (wi-fi, 3G, ecc...) è stato possibile imple-mentare un sistema di comunicazione univoco utilizzando Java, php, mysql. La grafica vettoriale ha reso possibile l’ottimizzazione dell’interfaccia grafi-ca della appligrafi-cazione e l’editing delle etichette mostrando la sua versatilità in fase di progettazione. L’editing di immagini utilizzando grafica vettoriale in-fatti permette di creare prototipi velocemente importabili all’interno di altri

Figura

Figura 1.1: NEMA dispositivo di acquisizione dati gps
Figura 1.2: LRV7310/00 Outd. Configuration Assistant
Figura 1.3: Field Xpert SFX350
Figura 1.4: a sinistra Lenovo s750 waterproof e a destra A9 Land Rover rugged phone
+7

Riferimenti

Documenti correlati

L’entusiasmo di Otlet e La Fontaine per la Classificazione decimale si tradusse rapidamente nella convocazione della I Conférence international de bibliographie (2 settembre 1895),

Il veicolo elettrico è dotato di un ricevitore gps collegato alla rete CAN-BUS, quindi in grado di inviare le coordinate ai dispositivi della rete can oppure inviarle al web

Alla base della costruzione delle interfacce grafiche e dei componenti che le attivit`a possono usare per interagire con l’utente ci sono due tipi di oggetto chiave, chiamati View

Esso, che tra l'altro è una classe astratta, ha un'importanza fondamentale in tutto il package telephony, infatti qualsiasi classe che gestisca i le EF della Sim Card eccetto

To validate the new ASPS products generated in the perspective of soil moisture applications, the ASPS dataset has been compared to in situ volumetric soil moisture

Si pensi alla relazione amorosa o amica- le: a seconda del tipo di rapporto, differenti sono anche le emozioni e le loro sfu- mature provate e mediate con l’altro; I = Integration

Почему-то коммен- таторы как Иванова, так и Бахтина, не вспоминают, как это слово звучало в рус- ской поэзии – у Державина,

Molte delle conoscenze trattate in questo documento di tesi sono applicate nel progetto che andremo a illustrare, il quale prevede di sviluppare un’applicazione mobile nativa