Semantic ArDroid - Relazione_finale - # 25

Il progetto Semantic Android
Il progetto Semantic ArDroid è stato sviluppato c...
1. Accensione Arduino
2. Boot app Android
3. Intent per attivazione antenna Bluetooth
1. Searching del dispositivo
2. Asso...
State Machine Diagram
1. NONE

2. CONNECTING
3. COMMAND
4. READ

5. ERROR
Messaggi (verso SemanticArDroidActivity)
1. MESS...
Sequence Diagram
I risultati dello STATE DATA VISUALIZATION
- Map

1<script type="text/javascript">
2
sgvizler.option.quer...
4
sgvizler.option.namespace.npdv = 'http://sws.ifi.uio.no/vocab/npd#';
5
sgvizler.option.namespace.geo = 'http://www.w3.or...
12
13
14
15
16
17
18
19
20
21
22

npdv:producedNetNGLMillSm3 ?NGL_millSm3 ;
npdv:producedNetCondensateMillSm3 ?Condensate_...
10

</div>

Anche in questo caso viene utilizzata l'ontologia NPD e vengono visualizzate le classi RDFS e le loro istanze....
Specifiche modulo Bluetooth BlueSMiRF

-

FCC Approved Class 2 Bluetooth Radio Modem
Extremely small radio - 0.15x0.6x1.9"...
- Enable input allows module to be enabled/disabled by software
- Bi-color LED for visual indication of status (GREEN not ...
48
for(int j=0; j<3; j++) {
49
digitalWrite(yellowLED, HIGH);
50
delay(500);
51
digitalWrite(yellowLED, LOW);
52
delay(500...
File
ArDroid_OneHWSerial_bb.jpg
StateMachineDiagram.png
SequenceDiagram.png
Activity-Diagram.png
FotoArDroid.jpg

103,1 KB...
Upcoming SlideShare
Loading in …5
×

Semantic ArDroid

358 views

Published on

Il progetto Semantic ArDroid è stato sviluppato con l'obiettivo di rendere possibile l'utilizzo di un'applicazione per l'accesso sicuro ai
dati provenienti da endpoint SPARQL, in uno scenario distribuito e con l'utilizzo dispositivi mobile (large screen/tablet). Il design
architetturale ha previsto il connubio di un dispositivo hardware che fungesse da "Android Accessory" per l'autenticazione basato su
Arduino UNO o Arduino MEGA Android ADK e di un tablet Android (con SDK minimo pari a 11 - Honey Comb).

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
358
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Semantic ArDroid

  1. 1. Semantic ArDroid - Relazione_finale - # 25 Il progetto Semantic Android Il progetto Semantic ArDroid è stato sviluppato con l'obiettivo di rendere possibile l'utilizzo di un'applicazione per l'accesso sicuro ai dati provenienti da endpoint SPARQL, in uno scenario distribuito e con l'utilizzo dispositivi mobile (large screen/tablet). Il design architetturale ha previsto il connubio di un dispositivo hardware che fungesse da "Android Accessory" per l'autenticazione basato su Arduino UNO o Arduino MEGA Android ADK e di un tablet Android (con SDK minimo pari a 11 - Honey Comb). Il funzionamento di base Lo scenario applicativo ipotizzato in ambito progettuale è stato definito partendo dall'assunto che l'utilizzatore di tale applicazione dovesse avere la disponibilità di un tablet Android con accesso a Internet e dotato di Bluetooth e che dovesse trovarsi nelle vicinanze del dispositivo di autenticazione basato su RFID tags. Presupponendo uno scenario di questo tipo un'ipotesi potrebbe essere quella di un operatore che si sposti su un autoveicolo aziendale dotato di una presa di corrente a 12 V che possa alimentare il dispositivo d'autenticazione, oppure un veicolo che abbia già incorporato tale dispositivo. L'azienda o l'ente che fornisca tale applicazione ai propri operatori incaricati sul territorio non farebbe altro che dare ad ognuno di essi un tag di autenticazione univoco e un tablet con l'applicativo preinstallato. In tal modo, durante il corso dei normali spostamenti, l'incaricato potrà accedere al sistema aprendo l'app Semantic ArDroid sul proprio Android device e richiedendo l'autenticazione tramite comunicazione Bluetooth RFCOMM al dispositivo hardware d'autenticazione. Una volta associato tale dispositivo al tablet verrà richiesto, tramite Alert su Android e tramite segnalazione LED sull'hardware, l'autenticazione per mezzo della lettura di un tag RFID. Android provvederà poi a confrontare il valore dei 10 digit del tag con il proprio database e a permettere la successiva interrogazione degli endpoint remoti per mezzo di visualizzazioni grafiche basate su mappe o grafici di vario tipo, permettendo così all'operatore un monitoraggio costante del territorio su cui si trova ad operare tramite l'utilizzo di applicazioni semantiche. Lo Use Case Android + Arduino 24/09/2012 1/11
  2. 2. 1. Accensione Arduino 2. Boot app Android 3. Intent per attivazione antenna Bluetooth 1. Searching del dispositivo 2. Associazione con FireFly-B223 (passkey 1234 - baudrate 9600) 3. Android invia 's' INIZIO COMUNICAZIONE 4. Arduino invia ACK COMUNICAZIONE "INIT" 5. Accensione LED rosso fisso 6. Boolean activeCOM = TRUE 7. Messaggio a video di avvenuta associazione 4. Richiesta di autenticazione da parte dell'activity Android 1. Android invia 'a' ACTIVE MODE - Richiesta lettura tag 2. Blinking LED giallo per segnalazione inizio lettura RFID 3. ENABLE di RFID Reader - LED giallo acceso - LED RFID reader rosso 4. Attesa attiva per ricezione TAG RFID 5. Lettura per RFIDReads volte dei tag RFID 6. Invio tags code via BT 7. Attesa 'k' ACK su lettura avvenuta 8. Spegnimento LED giallo - Fine lettura RFID 9. LED verde acceso su ACK Android - 1s 5. Fine comunicazione 1. Android invia 'b' BYE "Over and Out" - passo e chiudo :) 2. Spegnimento LED ROSSO 3. Boolean activeCOM = FALSE 6. Loop Activity Diagram Stati BluetoothHandler (Android Service) 24/09/2012 2/11
  3. 3. State Machine Diagram 1. NONE 2. CONNECTING 3. COMMAND 4. READ 5. ERROR Messaggi (verso SemanticArDroidActivity) 1. MESSAGE_STATE_CHANGE 2. MESSAGE_READ 3. MESSAGE_WRITE 4. MESSAGE_DEVICE_NAME 5. MESSAGE_TOAST Codici di segnalazione Arduino 1. 's' INIZIO COMUNICAZIONE 2. 'a' ACTIVE MODE - Richiesta lettura tag 3. 'k' ACK ACK su lettura avvenuta 4. 'b' BYE "Over and Out" - passo e chiudo :) Il design dell'applicazione Android 24/09/2012 3/11
  4. 4. Sequence Diagram I risultati dello STATE DATA VISUALIZATION - Map 1<script type="text/javascript"> 2 sgvizler.option.query.endpoint_output = 'jsonp'; 3 24/09/2012 4/11
  5. 5. 4 sgvizler.option.namespace.npdv = 'http://sws.ifi.uio.no/vocab/npd#'; 5 sgvizler.option.namespace.geo = 'http://www.w3.org/2003/01/geo/wgs84_pos#' ; 6 sgvizler.option.namespace.dbp = 'http://dbpedia.org/resource/'; 7 sgvizler.option.namespace.prod = 'http://prod.cetis.ac.uk/vocab/'; 8 sgvizler.option.namespace.jisc = 'http://www.rkbexplorer.com/ontologies/jisc#'; 9 10 //// Leave this as is. Ready, steady, go! 11 $(document).ready(sgvizler.go()); 12 </script> 13 14<div id="sgvzl_example21" 15 data-sgvizler-endpoint="http://irm.dnv.com/ep/saio/sparql" 16 data-sgvizler-query="SELECT xsd:float(?lat) xsd:float(?long) ?label ?comment ?subject 17 WHERE{ 18 ?subject geo:location [ 19 geo:lat ?lat ; 20 geo:long ?long ] ; 21 rdfs:label ?label ; 22 rdfs:comment ?comment . 23 } 24 LIMIT 50 25 " 26 data-sgvizler-chart="sMap" 27 data-sgvizler-loglevel="2" 28 style="width:1200px; height:500px;" 29 ></div> La mappa che viene generata riguarda i primi 50 incidenti aerei selezionati indistintamente. L'endpoint SPARQL interrogato è accessibile all'indirizzo http://irm.dnv.com/ep/saio/ - Area 1 sgvizler.option.query.endpoint = "http://sws.ifi.uio.no/sparql/npd"; 2 3 sgvizler.option.namespace.npdv = 'http://sws.ifi.uio.no/vocab/npd#'; 4 5 <div id="sgvzl_example3" 6 data-sgvizler-query="SELECT ?year ?Oil_millSm3 ?Gas_billSm3 ?NGL_millSm3 ?Condensate_millSm3 ?Water_millSm3 7 WHERE{ ?period a npdv:FieldProductionPeriod ; 8 npdv:hasField <http://sws.ifi.uio.no/npd/field/Ekofisk> ; 9 npdv:year ?year ; 10 npdv:producedNetOilMillSm3 ?Oil_millSm3 ; 11 npdv:producedNetGasBillSm3 ?Gas_billSm3 ; 24/09/2012 5/11
  6. 6. 12 13 14 15 16 17 18 19 20 21 22 npdv:producedNetNGLMillSm3 ?NGL_millSm3 ; npdv:producedNetCondensateMillSm3 ?Condensate_millSm3 ; npdv:producedWaterMillSm3 ?Water_millSm3 ; OPTIONAL{?period npdv:month ?month} . FILTER (!bound(?month)) FILTER (xsd:int(?year) < 2011) } ORDER BY ?year" data-sgvizler-chart="gAreaChart" data-sgvizler-log="2" style="width:800px; height:500px;" ></div> I dati di diagramma sono prodotti interrogando l'endpoint SPARQL del Logic and Intelligent Data research group del Department of Informatics (University of Oslo). I dati vengono prodotti prendendo spunto da quanto prodotto per il progetto Linked Open NPD FactPages (Linked Open Data version of the Norwegian Petroleum Directorate's Fact Pages). L'ontologia NPD è accessibile all'indirizzo: http://sws.ifi.uio.no/vocab/npd - Pie 1 2 3 4 5 6 7 8 9 <div id="sgvzl_example1" data-sgvizler-query="SELECT ?class (count(?instance) AS ?noOfInstances) WHERE{ ?instance a ?class } GROUP BY ?class ORDER BY ?class" data-sgvizler-chart="gPieChart" data-sgvizler-log="0" style="width:800px; height:500px;" > 24/09/2012 6/11
  7. 7. 10 </div> Anche in questo caso viene utilizzata l'ontologia NPD e vengono visualizzate le classi RDFS e le loro istanze. Viene effettuato il conteggio, l'aggregazione e l'ordinamento. L'hardware necessario Il design dell'accessorio Android per l'autenticazione hardware per mezzo di tag RFID ha richiesto l'utilizzo dei seguenti componenti: - Arduino UNO Tre LED di segnalazione, corredati di relative resistenze Modulo di connessione Bluetooth BlueSMiRF Silver della Sparkfun Electronics Modulo per RFID Card reader PARALLAX 24/09/2012 7/11
  8. 8. Specifiche modulo Bluetooth BlueSMiRF - FCC Approved Class 2 Bluetooth Radio Modem Extremely small radio - 0.15x0.6x1.9" Very robust link both in integrity and transmission distance (18m) Hardy frequency hopping scheme - operates in harsh RF environments like WiFi, 802.11g, and Zigbee Encrypted connection -- Abilitabile tramite AT Commands Frequency: 2.4~2.524 GHz Operating Voltage: 3.3V-6V Serial communications: 2400-115200bps Operating Temperature: -40 ~ +70C Built-in antenna Specifiche modulo RFID reader PARALLAX Features: - Low-cost method for reading passive RFID EM4100 family transponder tags - 2400 baud serial interface 24/09/2012 8/11
  9. 9. - Enable input allows module to be enabled/disabled by software - Bi-color LED for visual indication of status (GREEN not enabled, RED enabled) Compatible tags: - 54x85mm Rectangle Tag ISO Card: 6.3cm (2.5") +/- 10% 50mm Round Tag World Tag 50mm: 6.8cm (2.7") +/- 10% Blue Eye Key Fob 25mm Disk Tag Key Specifications: - Reads 125 kHz Tags, EM41000 Family Power requirements: 4.5 to 5.5 VDC Communication: Serial at 2400 baud (8N1) Dimensions: 2.45 x 6.25 x 0.22 in (62.2 x 82.5 x 5.57 mm) Operating temp range: -40 to +185 °F (-40 to +85 °C) Arduino Sketch 1#include <SoftwareSerial.h> 2#define rxPinRFID 6 3#define txPinRFID 12 // NOT REALLY USED! 4#define RFIDENABLE 7 5#define greenLED 8 6#define yellowLED 9 7#define redLED 10 8 9int val = 0; 10char btval = ' '; 11char code[10]; 12const char endString = '%'; // 37 13const String endCommand = "###"; 14int bytesread = 0; 15const int RFIDReads = 4; 16boolean activeCOM = false; 17boolean waitingACK = false; 18SoftwareSerial RFID = SoftwareSerial(rxPinRFID,txPinRFID); 19 20void setup() 21{ 22 Serial.begin(9600); // Hardware serial for Monitor 2400bps 23 24 pinMode(RFIDENABLE,OUTPUT); // Set digital pin 2 as OUTPUT to connect it to the RFID /ENABLE pin 25 digitalWrite(RFIDENABLE, HIGH); 26 RFID.begin(2400); 27 28 //LEDS 29 pinMode(greenLED, OUTPUT); 30 pinMode(yellowLED, OUTPUT); 31 pinMode(redLED, OUTPUT); 32} 33 34void loop() 35{ 36 if(Serial.available() > 0) { 37 btval = Serial.read(); 38 if(btval == 's' && activeCOM == false) { // START COMMUNICATION 39 digitalWrite(redLED, HIGH); 40 Serial.print("INIT"); 41 Serial.print(endCommand); 42 activeCOM = true; 43 } 44 45 if(btval == 'a' && activeCOM==true && waitingACK==false) { // ACTIVE MODE 46 digitalWrite(RFIDENABLE,LOW); 47 24/09/2012 9/11
  10. 10. 48 for(int j=0; j<3; j++) { 49 digitalWrite(yellowLED, HIGH); 50 delay(500); 51 digitalWrite(yellowLED, LOW); 52 delay(500); 53 } 54 digitalWrite(yellowLED, HIGH); 55 56 int readingCount = 0; 57 while (readingCount < RFIDReads){ 58 /* Start RFID READING*/ 59 if(RFID.available() > 0) { 60 delay(100); 61 if((val = RFID.read()) == 10) 62 { // check for header 63 bytesread = 0; 64 while(bytesread<10) 65 { // read 10 digit code 66 val = RFID.read(); 67 if((val == 10)||(val == 13)) 68 { // if header or stop bytes before the 10 digit reading 69 break; // stop reading 70 } 71 code[bytesread] = val; // add the digit 72 bytesread++; // ready to read next digit 73 } 74 75 if(bytesread == 10) 76 { // if 10 digit read is complete 77 readingCount++; // Increase Reading Counter 78// Serial.print("TAG code " + (String)readingCount + " is : "); // possibly a good TAG 79 Serial.print(code); // print the TAG code 80 Serial.print(endString); 81 } 82 bytesread = 0; 83 delay(250); // wait for a second 84 } 85 } 86 /* END RFID READING */ 87 } // RFIDReads DONE! 88 Serial.print(endCommand); 89 RFID.flush(); //Flushing the SoftwareSerial Buffer! 90 digitalWrite(RFIDENABLE, HIGH); // disable RFID reader 91 waitingACK = true; 92 } // END ActiveMode 93 94 if(btval == 'k' && activeCOM==true && waitingACK==true) { //ACK 95 waitingACK = false; 96 digitalWrite(yellowLED, LOW); 97 digitalWrite(greenLED,HIGH); 98 delay(3000); 99 digitalWrite(greenLED,LOW); 100 } 101 102 if(btval == 'b' && activeCOM == true) { 103 activeCOM = false; 104 digitalWrite(redLED, LOW); 105 } 106 } // END Serial.available > 0 107} Configurazione iniziale del modulo Bluetooth per la comunicazione con Arduino TODO TUTORIAL PER IL COMMAND MODE e invio AT COMMANDS 24/09/2012 10/11
  11. 11. File ArDroid_OneHWSerial_bb.jpg StateMachineDiagram.png SequenceDiagram.png Activity-Diagram.png FotoArDroid.jpg 103,1 KB 23/07/2012 Alfredo Torre 22,9 KB 23/07/2012 Alfredo Torre 33 KB 23/07/2012 Alfredo Torre 16,9 KB 23/07/2012 Alfredo Torre 176,5 KB 23/07/2012 Alfredo Torre area.png 33,7 KB 23/07/2012 Alfredo Torre map.png 303,7 KB 23/07/2012 Alfredo Torre pie.png 57,9 KB 23/07/2012 Alfredo Torre UseCase-utilizzo.jpeg 40,9 KB 23/07/2012 Alfredo Torre UseCase-utilizzo.png 17,3 KB 23/07/2012 Alfredo Torre bluesmirf.jpg 35,6 KB 23/07/2012 Alfredo Torre parallax.jpg 13,6 KB 23/07/2012 Alfredo Torre 16 KB 24/07/2012 Alfredo Torre npd.jpg 24/09/2012 11/11

×