Connettività e protocolli · base

Come funziona Bluetooth Low Energy e quando usarlo?

Come funzionano advertising, GATT, connessioni e mesh in Bluetooth Low Energy, cosa hanno aggiunto le versioni 5.x e quando BLE è il collegamento giusto per un prodotto IoT.

A person checking the heart-rate monitor on a smartwatch

Foto: Nik / Unsplash

Dopo aver letto questo articolo saprai:

  • Spiegare come advertising, intervalli di connessione e deep sleep fanno durare anni una batteria a bottone
  • Descrivere come servizi e caratteristiche GATT espongono i dati di un dispositivo a un'app per smartphone
  • Decidere quando BLE è adatto a un prodotto e quando LoRaWAN, Wi-Fi o Thread sono il collegamento migliore
In questa pagina
  1. Come fa la radio a risparmiare energia?
  2. Quali ruoli può avere un dispositivo BLE?
  3. Che cos’è GATT?
  4. Come può l’advertising funzionare da canale dati?
  5. Cosa ha cambiato Bluetooth 5.x per l’IoT?
  6. Che cos’è Bluetooth Mesh?
  7. Quando usare BLE, e quando no?
  8. Per continuare

Bluetooth Low Energy è probabilmente la radio IoT più diffusa al mondo, per una ragione semplice: ce l’ha ogni telefono. Un sensore che parla BLE può essere configurato, letto e aggiornato da un dispositivo che l’utente possiede già, senza hub, gateway o account cloud.

BLE è arrivato con Bluetooth 4.0 nel 2010 come protocollo separato dal Bluetooth classico, con cui condivide il marchio e la banda a 2,4 GHz ma poco altro. È stato progettato per dispositivi che inviano piccole quantità di dati di tanto in tanto e passano la maggior parte della loro vita in sleep, cioè una buona fetta dell’hardware IoT.

Questa guida spiega i meccanismi che rendono BLE efficiente, il modello dei dati su cui gli sviluppatori programmano davvero, cosa hanno aggiunto le versioni successive e le situazioni in cui BLE è la scelta sbagliata.

Come fa la radio a risparmiare energia?

BLE divide la banda ISM a 2,4 GHz in 40 canali da 2 MHz. Tre di questi (37, 38 e 39) sono riservati all’advertising e sono collocati in modo da evitare i canali Wi-Fi più usati. Gli altri 37 sono canali dati, su cui si salta durante una connessione per schivare le interferenze.

Un dispositivo BLE passa quasi tutto il tempo con la radio spenta. Una periferica si risveglia brevemente per trasmettere un pacchetto di advertising, resta in ascolto per un istante nel caso qualcuno risponda, e torna in sleep. In una connessione, le due parti concordano un intervallo di connessione, da pochi millisecondi fino a qualche secondo, e si risvegliano solo in quei momenti. Una periferica può anche chiedere di saltare un certo numero di intervalli quando non ha nulla da dire. Poco tempo in aria più deep sleep tra una trasmissione e l’altra: è questo che fa durare mesi o anni una batteria a bottone.

Quali ruoli può avere un dispositivo BLE?

BLE definisce i ruoli in base a ciò che un dispositivo fa in aria. Una periferica (peripheral) fa advertising e accetta connessioni; un dispositivo centrale (central) esegue la scansione e avvia le connessioni. Il telefono è quasi sempre il centrale e il sensore la periferica. Un dispositivo può anche essere un puro broadcaster, che fa advertising e non si connette mai, ed è esattamente ciò che è un beacon, oppure un puro observer, che si limita alla scansione.

Le connessioni sono punto-punto. Un centrale può mantenere più connessioni contemporaneamente, e gli stack moderni permettono a un dispositivo di essere al tempo stesso centrale e periferica, ma non esiste un instradamento nativo tra periferiche al di fuori della mesh, trattata più avanti.

Che cos’è GATT?

Una volta connessi, i dispositivi comunicano attraverso il Generic Attribute Profile (GATT). Un server GATT (di solito la periferica) espone una tabella di attributi organizzati in servizi, ciascuno contenente caratteristiche, ciascuna delle quali contiene un valore e dei descrittori che lo descrivono. Un cardiofrequenzimetro espone un servizio Heart Rate con una caratteristica Heart Rate Measurement; un sensore di temperatura personalizzato espone un servizio definito dal fornitore con i propri UUID a 128 bit.

Il client può leggere una caratteristica, scriverla o sottoscrivere le notifiche, in modo che il server invii i nuovi valori man mano che arrivano. Le notifiche sono il modo in cui un sensore trasmette le letture in streaming senza che il telefono debba interrogarlo di continuo. Il payload massimo per operazione su un attributo dipende dalla MTU negoziata, che per impostazione predefinita è piccola e può essere aumentata sugli stack più recenti.

Il Bluetooth SIG pubblica servizi standard per le classi di dispositivi più comuni (livello della batteria, sensori ambientali, informazioni sul dispositivo, glucosio, potenza in bicicletta e molti altri). Usarli significa che le app di terze parti capiscono il tuo dispositivo senza codice personalizzato. I servizi definiti dal fornitore danno piena libertà, al prezzo di dover sviluppare la propria app.

Come può l’advertising funzionare da canale dati?

I pacchetti di advertising trasportano fino a 31 byte di payload nel formato legacy, e quel payload può contenere dati, non solo un nome. Molti progetti IoT non si connettono mai: un tag di temperatura codifica la sua lettura in ogni annuncio, e un gateway o un telefono si limita ad ascoltare. È il modello broadcaster, e scala a centinaia di tag in una stanza perché non c’è nessuna connessione da mantenere.

Bluetooth 5 ha aggiunto l’extended advertising, che consente payload molto più grandi distribuiti su canali secondari, e il periodic advertising, con cui i ricevitori possono sincronizzarsi sul programma di un broadcaster e dormire nel frattempo. Bluetooth 5.4 ha aggiunto il Periodic Advertising with Responses, pensato per le etichette elettroniche da scaffale, dove un singolo access point aggiorna migliaia di display a batteria secondo un programma e riceve indietro le conferme.

Cosa ha cambiato Bluetooth 5.x per l’IoT?

Bluetooth 5 ha introdotto due nuovi livelli fisici accanto al PHY originale a 1 Mbps. Il PHY a 2 Mbps raddoppia il throughput per gli aggiornamenti del firmware e i trasferimenti di grandi quantità di dati. Il Coded PHY scambia velocità con portata: distribuendo ogni bit su più simboli estende sensibilmente la distanza utile, abbastanza da coprire una casa o un piccolo magazzino da un singolo punto. La portata reale dipende comunque dall’antenna, dalla potenza di trasmissione e dai muri, quindi considera le cifre di portata dichiarate dai fornitori come il caso migliore.

Bluetooth 5.1 ha aggiunto il direction finding (angolo di arrivo e angolo di partenza), che permette a un array fisso di antenne di stimare dove si trova un tag, con una precisione che il Bluetooth SIG descrive come dell’ordine del centimetro in buone condizioni, un vero passo avanti rispetto al posizionamento basato sulla potenza del segnale. Bluetooth 5.2 ha portato LE Audio e i canali isocroni, più rilevanti per apparecchi acustici e auricolari che per i sensori, e il protocollo Enhanced ATT che consente transazioni GATT in parallelo. Più di recente, Bluetooth 6.0 (settembre 2024) ha aggiunto il Channel Sounding, una funzione di misura sicura della distanza pensata per le chiavi digitali e la ricerca di oggetti, e la specifica core è nel frattempo arrivata alla versione 6.2.

Che cos’è Bluetooth Mesh?

Il BLE punto-punto non scala a un edificio pieno di luci. Bluetooth Mesh, pubblicato nel 2017, aggiunge una rete mesh a flooding sopra l’advertising BLE: ogni nodo alimentato dalla rete elettrica ritrasmette i messaggi che sente, così un comando raggiunge ogni luce in pochi hop. I nodi a batteria entrano come nodi a basso consumo (low power node) che si affidano a un nodo friend per bufferizzare il loro traffico. Il modello è publish-subscribe con indirizzi di gruppo, adatto al controllo dell’illuminazione e alla sensoristica negli edifici. Compete con Zigbee e Thread in quegli ambiti, ed è uno stack separato dal mondo GATT, quindi una luce mesh e un’app per telefono di solito si incontrano attraverso un gateway o un nodo proxy.

Quando usare BLE, e quando no?

BLE è adatto quando un telefono o un tablet è l’interfaccia utente naturale, quando il dispositivo funziona con una batteria a bottone o una piccola batteria, quando i volumi di dati sono piccoli e quando basta la portata di una stanza o di un edificio. Wearable, sensori medicali, tag per gli asset, beacon, serrature intelligenti e canali di configurazione per i prodotti Wi-Fi sono tutti casi naturali. Perfino Matter usa BLE per il commissioning prima che il dispositivo entri nella rete Wi-Fi o Thread.

BLE è una scelta sbagliata quando il dispositivo deve raggiungere internet da solo senza un telefono o un gateway nelle vicinanze, quando deve coprire un campus o un campo, quando trasmette in streaming dati ad alta banda come il video, o quando ha bisogno di temporizzazioni deterministiche. Per la sensoristica a batteria a lungo raggio guarda a LoRaWAN o NB-IoT; per l’alto throughput, al Wi-Fi; per una mesh domestica nativa IP, a Thread.

Un’altra trappola: sui telefoni BLE è mediato dal sistema operativo, e la scansione in background, le finestre di pairing e il comportamento alla riconnessione cambiano tra iOS e Android e tra una versione e l’altra. Metti in conto tempo di sviluppo anche per il lato app, non solo per il firmware.

Per continuare

Correzioni e aggiornamenti
  • 17 ottobre 2026: precisione del direction finding corretta secondo la descrizione del Bluetooth SIG (livello del centimetro); aggiunti il Channel Sounding di Bluetooth 6.0 e la specifica core 6.2; fonti collegate

Come gestiamo le correzioni: politica editoriale (in inglese).

Argomenti: Bluetooth Low Energy, BLE, GATT, beacon, wireless a corto raggio

Diagramma