Vai al contenuto
Non più sviluppatoRicerca e sviluppo
Il dispositivo BLE di Troveme, retro e fronte: scheda blu con il logo Riolabs, il modulo ESP32 e la porta USB-C. I riquadri rossi segnano i componenti principali.

Il problema

Un ristorante vuole accettare ordini dal telefono solo da chi è seduto in sala. Un museo vuole aprire certi contenuti solo a chi è dentro la mostra. Il GPS sbaglia di 5-10 metri già all'aperto, e al chiuso perde precisione o non prende. Un iBeacon Bluetooth costa poco, ma si stacca dal muro e si porta altrove, o si copia. Serve un modo di dire «questo telefono è qui, adesso» di cui il gestore si possa fidare.

Per chi è

Ristoranti e locali

Accettano la comanda dal telefono solo se il cliente è in sala.

Musei e luoghi della cultura

Aprono contenuti riservati a chi è dentro la mostra. A nessun altro.

Edifici e domotica

Un comando, per esempio aprire il cancello, parte solo se il telefono è lì vicino.

Chi ha già un servizio o un'app

Aggiunge il controllo della posizione con una sola API e tiene la sua gestione degli utenti com'è.

Cosa fa

Un codice che scade

Il server crea un token con scadenza per ogni zona e lo rinnova di continuo. Chi è nella zona lo riceve, chi è fuori no.

Bluetooth a basso consumo

Schede con ESP32, 1 bottone e 4 led, trasmettono il token via Bluetooth Low Energy: il telefono lo legge senza collegarsi.

Copiarlo non serve

Abbiamo fatto nascere il token sul server, non sul dispositivo, quindi clonare il segnale non porta a niente. E un dispositivo portato via si esclude dalla console: da lì in poi non riceve più nulla.

Luoghi ad albero

Aree, partizioni, dispositivi. Ogni livello si accende e si spegne con un interruttore, e i permessi si danno per area o per partizione.

Una sola API per la verifica

Il server di chi offre il servizio manda il token ricevuto dal cliente e il luogo; Troveme risponde se è valido. Utenti e regole restano suoi.

Installazione dal telefono

Un'app per gli installatori, in sola lettura, manda la configurazione al dispositivo via Bluetooth: nome, rete WiFi e basta.

Come funziona

Si disegnano i luoghi nella console web: aree, partizioni dentro le aree, dispositivi dentro le partizioni. Ogni dispositivo riceve la sua configurazione via Bluetooth, dalla console o dall'app per installatori, e si collega al WiFi. Poi entra nel broker MQTT con le credenziali della sua area, riceve il token della sua partizione e lo trasmette. L'app del cliente legge il token e lo allega alla richiesta che fa al servizio. Il server del servizio chiede a Troveme se quel token vale per quel luogo. Solo allora autorizza.

Immagini

La configurazione
La generazione del token
La verifica

Dettagli tecnici

Tecnologie
  • Bluetooth Low Energy
  • ESP32
  • C++
  • MQTT (Eclipse Mosquitto)
  • .NET 5
  • Entity Framework Core
  • Redis
  • Keycloak (OAuth2)
  • Vue.js
  • TypeScript
  • Docker
Integrazioni
  • API REST di verifica per i server di chi offre il servizio
  • Accesso degli utenti con OAuth2 (Keycloak)
Dove gira
Era un servizio online a microservizi in container Docker, con dispositivi Bluetooth nei luoghi, una console web e un'app per telefono per configurarli.
Dati e sicurezza
Abbiamo tenuto i dati personali fuori da Troveme: i database contenevano luoghi, configurazioni e token, e gli utenti li gestiva un servizio di autenticazione separato (Keycloak, OAuth2). Ogni dispositivo si autenticava al broker e vedeva solo i messaggi della sua partizione. Dalla console si rigeneravano password e chiavi, e i dispositivi già collegati restavano fuori.

Collegamenti

Gli altri prodotti legati a questo e le librerie open source nate da lui o usate da lui.

Domande frequenti

Da dove nasce Troveme?

Da Addubby, il nostro menu smart per la ristorazione. Per accettare una comanda dal telefono ci serviva sapere se il cliente era davvero seduto al tavolo. Ci abbiamo lavorato in tre versioni: prima un dispositivo su ogni tavolo con display e codice QR, poi il Bluetooth sul gateway del ristorante, infine un solo microcontrollore con WiFi e Bluetooth. A quel punto la verifica stava in piedi da sola, ed è diventata Troveme.

Troveme è un sistema di localizzazione?

No. Non traccia chi lo usa né gli oggetti, e non sa in che punto della stanza è un telefono. Dice solo se il telefono è dentro una zona dove ci sono i dispositivi configurati per quella zona.

Serve a riconoscere chi è l'utente?

No, non è un sistema di autenticazione. Chi usa Troveme tiene i suoi utenti e le sue regole: Troveme conferma solo la posizione.

Perché non bastano il GPS o gli iBeacon?

Al chiuso il GPS perde precisione o non arriva, soprattutto sottoterra o tra più piani. Gli iBeacon costano poco ma si possono spostare o clonare. L'Ultra-Wide Band è precisa, però costa, consuma molta energia e vuole hardware proprietario.

Si può usare oggi?

No. È un progetto di ricerca e sviluppo del 2021 e l'abbiamo chiuso. Restano i dispositivi, il protocollo e il metodo di verifica: per un problema simile si riparte da lì.

Domande su questo progetto? Parliamone.