Skip to content

UniBO-PRISMLab/AndroidWoTServient

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Android WoT Servient

Un'applicazione Android che trasforma lo smartphone in un WoT Servient completo, conforme alle specifiche W3C Web of Things. L'app espone i sensori del dispositivo come Interaction Affordances standardizzate, rendendoli accessibili tramite protocolli web standard.

Caratteristiche principali

  • Esposizione sensori Android come proprietà WoT (accelerometro, giroscopio, magnetometro, sensori di luminosità e pressione)
  • Supporto multi-protocollo: HTTP, MQTT, WebSocket
  • Funzionalità multimediali: scatto foto e registrazione audio tramite azioni WoT
  • Configurazione dinamica dei sensori tramite interfaccia grafica
  • Statistiche e monitoraggio con grafici interattivi
  • Thing Description conforme alle specifiche W3C WoT

Architettura

Il progetto è strutturato nei seguenti componenti principali:

  • WoTService.kt: Servizio in foreground che mantiene attivo il server WoT
  • Server.kt: Creazione e gestione del Thing "smartphone" con tutte le affordances
  • SensorPublisher.kt: Pubblicazione automatica degli eventi sensoriali
  • MainActivity.kt: Activity principale con navigazione bottom-tab
  • Fragment specializzati:
    • HomeFragment: Avvio del servizio e panoramica
    • SensorDataFragment: Visualizzazione dati sensori in tempo reale
    • SensorActionsFragment: Testing delle azioni computazionali
    • StatsFragment: Statistiche e grafici di utilizzo
    • DynamicSensorSettingsFragment: Configurazione dinamica sensori

Come funziona

  1. Avvio: L'utente avvia il server WoT dalla schermata Home
  2. Configurazione: Tramite Settings seleziona quali sensori esporre
  3. Esposizione: Il server crea automaticamente una Thing Description con:
    • Proprietà per ogni sensore attivo (lettura valori real-time)
    • Azioni per funzionalità multimediali e calcoli computazionali
    • Eventi per notifiche automatiche delle variazioni
  4. Accesso: Il Thing è accessibile via:
    • HTTP: http://localhost:8080/smartphone
    • MQTT: configurabile tramite broker esterno
    • WebSocket: ws://localhost:8081/ws

Funzionalità disponibili

Sensori supportati

  • Accelerometro (3 assi)
  • Giroscopio (3 assi)
  • Magnetometro (3 assi)
  • Sensore di luminosità
  • Sensore di pressione
  • Sensore di gravità (3 assi)

Azioni WoT

  • takePhoto: Scatta una foto e aggiorna la proprietà "photo"
  • startRecording/stopRecording: Gestione registrazione audio
  • calculateMagnitude: Calcola magnitudine accelerazione
  • calculateDirection: Determina direzione Nord magnetico
  • calculateOrientation: Calcolo orientamento completo
  • calculateTilt: Stima inclinazione dispositivo
  • checkInPocket: Verifica se il dispositivo è in tasca

Monitoraggio

  • Grafici real-time dei valori sensoriali
  • Statistiche di utilizzo del server
  • Distribuzione accessi per tipo di affordance
  • Monitoraggio uptime e performance

Requisiti

  • Android API 26+ (Android 8.0)
  • Permessi richiesti:
    • Accesso sensori del dispositivo
    • Accesso fotocamera
    • Registrazione audio
    • Accesso rete
    • Notifiche
  • Dipendenze:
    • kotlin-wot framework
    • MPAndroidChart per grafici
    • Jackson per JSON processing

Tecnologie utilizzate

  • Kotlin: Linguaggio di sviluppo principale
  • kotlin-wot: Framework WoT di Eclipse Thingweb
  • MPAndroidChart: Libreria per grafici interattivi
  • Jackson: Processing JSON per comunicazioni WoT
  • Android Sensor Framework: Accesso ai sensori hardware
  • Coroutines: Gestione operazioni asincrone

Conformità agli standard

L'applicazione implementa completamente le specifiche W3C Web of Things (aggiornamento dicembre 2023):

  • Thing Description format
  • Interaction Affordances (Properties, Actions, Events)
  • Protocol Bindings (HTTP, MQTT, WebSocket)
  • WoT Scripting API compatibility

Repository

Il progetto è open source: AndroidWoTServient

Sviluppi futuri

  • Integrazione protocolli aggiuntivi (CoAP)
  • Implementazione sicurezza avanzata (HTTPS, autenticazione)
  • Meccanismi di discovery automatico
  • Ottimizzazioni energetiche
  • Espansione sensori supportati

About

AndroidWoTServient

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages