iBeacon: definizione, principio di funzionamento dei beacon e configurazione BLE

Autore: IT Sectr Pubblicato: 2026-07-17 Tempo di lettura: 10 min

iBeacon è un protocollo proprietario di Apple per beacon Bluetooth Low Energy, che consente ai dispositivi iOS di determinare la propria posizione in ambienti interni con precisione centimetrica. Il protocollo si basa sulla trasmissione broadcast di pacchetti BLE con un identificatore univoco contenente valori UUID, Major e Minor. Secondo le Apple iBeacon Design Guidelines (2025), la tecnologia viene utilizzata per la navigazione in centri commerciali, musei, aeroporti e stadi, supportando il rilevamento passivo senza associazione attiva dei dispositivi.

Punti chiave

  • iBeacon è un protocollo proprietario di Apple per beacon BLE, che opera senza associazione attiva dei dispositivi.
  • Il pacchetto iBeacon contiene tre identificatori: UUID (identificatore univoco dell'organizzazione), Major e Minor (zone e punti).
  • iOS definisce tre stati: Immediate (<0,5 m), Near (<3 m) e Far (<30-50 m) in base all'RSSI.
  • Il monitoraggio di regione (region monitoring) consente all'app di ricevere notifiche di ingresso e uscita dalla zona del beacon anche in modalità background.
  • Android supporta iBeacon tramite librerie di terze parti, come AltBeacon di Radius Networks per la compatibilità multipiattaforma.

Cos'è iBeacon?

iBeacon è una tecnologia di posizionamento indoor sviluppata da Apple e presentata al WWDC 2013. A differenza del GPS, che non funziona all'interno degli edifici, iBeacon utilizza beacon Bluetooth Low Energy — piccoli dispositivi a batteria che trasmettono pacchetti di identificazione fissi. I dispositivi iOS e Android ricevono questi pacchetti e calcolano la distanza approssimativa dal beacon in base al livello del segnale (RSSI).

Storia e sviluppo

Il protocollo iBeacon è stato il primo standard di massa per i beacon BLE, lanciato da Apple nel 2013 con iOS 7. Inizialmente, la tecnologia è stata utilizzata nel commercio al dettaglio: gli Apple Store hanno implementato iBeacon per informare i clienti sugli sconti all'ingresso in determinate zone. Entro il 2025, l'infrastruttura iBeacon conta milioni di beacon installati in tutto il mondo, sebbene siano emersi protocolli alternativi — Eddystone di Google e AltBeacon open source.

Aree di applicazione

iBeacon viene utilizzato in cinque scenari principali: navigazione indoor (centri commerciali, aeroporti, musei), notifiche contestuali (sconti all'ingresso del negozio), automazione dei flussi di lavoro (marcatura di presenza), logistica e gestione del magazzino, e guide turistiche con riproduzione automatica dei contenuti all'avvicinamento a un oggetto. Secondo ABI Research (2025), il mercato dei beacon BLE è stimato in 3,2 miliardi di dispositivi in funzione.

Struttura del protocollo iBeacon e formato del pacchetto

Il pacchetto iBeacon è un Advertising PDU (Protocol Data Unit), trasmesso sul canale pubblicitario BLE alle frequenze 2402, 2426 e 2480 MHz. Il formato del pacchetto è fisso e composto da quattro campi: prefisso Apple iBeacon (0x4C000215), UUID di 16 byte, Major di 2 byte e Minor di 2 byte, oltre a TX Power di 1 byte per la calibrazione della distanza. La dimensione totale dei dati è di 30 byte, che rientra in un singolo BLE Advertising PDU.

CampoDimensioneDescrizione
Prefisso Apple9 byteCompany ID (0x004C) + iBeacon type (0x0215)
UUID16 byteIdentificatore univoco dell'organizzazione o dell'app
Major2 byteIdentificatore di zona (0-65535), es.: numero negozio
Minor2 byteIdentificatore di punto (0-65535), es.: numero scaffale
TX Power1 bytePotenza di calibrazione del segnale a 1 metro (dBm)

Gerarchia UUID, Major e Minor

Gli identificatori iBeacon formano una gerarchia a tre livelli. L'UUID viene assegnato all'organizzazione (ad esempio, una catena di negozi), Major al negozio o piano specifico, Minor al punto specifico all'interno della zona (area cassa, reparto prodotto). Questa gerarchia consente all'app di reagire in modo flessibile a diversi livelli di contesto: all'ingresso del negozio (UUID + Major), l'app può caricare la mappa del piano e, all'avvicinamento a un reparto specifico (Minor), mostrare le informazioni sul prodotto.

TX Power e calibrazione

Il campo TX Power è il valore di riferimento del livello del segnale (RSSI) a 1 metro di distanza dal beacon. Alla ricezione del pacchetto, il dispositivo registra l'RSSI effettivo e calcola la distanza con la formula: distance = 10^((TX_Power - RSSI) / (10 * n)), dove n è il coefficiente di attenuazione del mezzo (solitamente 2-4). La corretta calibrazione del TX Power è fondamentale per la precisione del posizionamento: un errore di 1 dBm comporta un'imprecisione fino al 30% a 5 metri di distanza.

Zone di prossimità: Immediate, Near, Far

iOS definisce tre zone di prossimità in base alla distanza calcolata dal beacon: Immediate (meno di 0,5 metri), Near (da 0,5 a 3 metri) e Far (da 3 a 30-50 metri a seconda delle condizioni). La distanza esatta non viene comunicata — solo la categoria. Ciò è intenzionale: l'RSSI è soggetto a interferenze, riflessioni del segnale e influenza del corpo umano, quindi le categorie forniscono una determinazione della posizione più stabile.

Immediate — prossimità immediata

Immediate è la zona di contatto diretto, quando il dispositivo si trova a pochi centimetri dal beacon. Utilizzata in scenari che richiedono la massima precisione: pagamento tramite terminale, apertura di serratura digitale, verifica a un posto di controllo. Nella zona Immediate, l'RSSI varia generalmente da -30 a -60 dBm.

Near — distanza media

La zona Near è l'area di lavoro principale di iBeacon, che copre distanze da 0,5 a 3 metri. Utilizzata per la navigazione indoor — ad esempio, all'avvicinamento a una vetrina con un prodotto, l'app mostra informazioni dettagliate. Nella zona Near, l'RSSI varia da -60 a -80 dBm con calibrazione TX Power = -59 dBm.

Far — lunga distanza

Far è la zona massima di rilevamento del segnale del beacon. Utilizzata per il monitoraggio dell'ingresso in una regione (ad esempio, ingresso in un centro commerciale). A distanza Far, l'RSSI è generalmente inferiore a -80 dBm e la precisione della determinazione della distanza diminuisce significativamente. Per il monitoraggio dell'ingresso, vengono utilizzate le API di sistema region monitoring, non la determinazione della zona esatta.

Monitoraggio di regione su iOS

Una regione iBeacon è un'area virtuale definita dall'UUID (e opzionalmente Major + Minor). iOS consente di monitorare fino a 20 regioni simultaneamente con CLLocationManager. All'ingresso in una regione, il sistema risveglia l'app anche in modalità background o terminata e invia una notifica tramite il delegate locationManager:didEnterRegion. All'uscita dalla regione, viene chiamato locationManager:didExitRegion.

swift
import CoreLocation

let locationManager = CLLocationManager()
let region = CLBeaconRegion(
    uuid: UUID(uuidString: "E2C56DB5-DFFB-48D2-B060-D0F5A71096E0")!,
    identifier: "myBeaconRegion"
)
locationManager.delegate = self
locationManager.requestAlwaysAuthorization()
locationManager.startMonitoring(for: region)

Ranging — determinazione della zona esatta

Per determinare la zona (Immediate, Near, Far), viene utilizzato il ranging — la scansione in tempo reale dei beacon. A differenza del monitoraggio, il ranging funziona solo in modalità attiva dell'app e richiede l'autorizzazione all'accesso alla posizione. Il metodo locationManager:didRangeBeacons:inRegion restituisce un array di CLBeacon con i campi proximity (CLProximity.immediate, .near, .far, .unknown), accuracy (distanza calibrata in metri) e rssi.

swift
func locationManager(
    _ manager: CLLocationManager,
    didRangeBeacons beacons: [CLBeacon],
    in region: CLBeaconRegion
) {
    for beacon in beacons {
        switch beacon.proximity {
        case .immediate:
            print("Prossimità immediata")
        case .near:
            print("Prossimità vicina")
        case .far:
            print("Prossimità lontana")
        default:
            print("Prossimità sconosciuta")
        }
    }
}

iBeacon su Android: AltBeacon e integrazione multipiattaforma

Android non ha il supporto nativo per iBeacon, poiché il protocollo è una soluzione proprietaria di Apple. Tuttavia, con librerie di terze parti come AltBeacon di Radius Networks (ora parte dell'organizzazione Open Beacon), gli sviluppatori possono integrare iBeacon nelle applicazioni Android. La libreria AltBeacon implementa la scansione dei pacchetti BLE, l'analisi del formato iBeacon e l'emulazione del ranging e del monitoraggio delle regioni simili all'API iOS.

kotlin
val beaconManager = BeaconManager.getInstanceForApplication(context)
beaconManager.beaconParsers.add(
    BeaconParser().setBeaconLayout(
        "m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"
    )
)
beaconManager.backgroundBetweenScanPeriod = 5000
beaconManager.foregroundScanPeriod = 1100
beaconManager.bind(this)

Analisi del pacchetto iBeacon su Android

Il formato di analisi di iBeacon nella libreria AltBeacon è definito dalla stringa layout: “m:2-3=0215” — verifica di due byte del marcatore iBeacon, “i:4-19” — UUID di 16 byte, “i:20-21” — Major, “i:22-23” — Minor, “p:24-24” — TX Power. Lo stesso formato è supportato per Eddystone e altri protocolli, rendendo AltBeacon una libreria universale per lavorare con i beacon BLE su Android.

Limitazioni su Android

Su Android, il lavoro con iBeacon presenta tre limitazioni principali: la scansione in background è limitata dai produttori (Xiaomi, Huawei, Samsung spesso terminano i processi in background), la precisione dell'RSSI è inferiore rispetto a iOS a causa delle differenze negli stack BLE, ed è richiesta l'autorizzazione ACCESS_FINE_LOCATION da Android 6.0 e BLUETOOTH_SCAN da Android 12.

iBeacon vs Eddystone: confronto dei protocolli beacon

Eddystone è un protocollo beacon BLE aperto di Google, presentato nel 2015. A differenza di iBeacon, Eddystone supporta quattro tipi di pacchetti: Eddystone-UID (identificatore fisso), Eddystone-URL (trasmissione di URL per Physical Web), Eddystone-TLM (telemetria del beacon — carica della batteria, temperatura) e Eddystone-EID (identificatore crittografato per protezione dalla clonazione). Sebbene Google abbia interrotto lo sviluppo di Physical Web nel 2022, il protocollo Eddystone continua ad essere utilizzato nelle soluzioni aziendali.

ParametroiBeaconEddystone
ProprietarioAppleGoogle (aperto)
Tipi di pacchetti1 (UID)4 (UID, URL, TLM, EID)
DatiUUID+Major+MinorID/URL + telemetria
Supporto nativo iOSSì (CoreLocation)No (tramite CoreBluetooth)
Physical WebNoSì (Eddystone-URL)
SicurezzaNessuna crittografiaEID con rotazione delle chiavi

Scelta del protocollo per il progetto

La scelta tra iBeacon e Eddystone dipende dalla piattaforma target e dallo scenario di utilizzo. iBeacon è preferibile per le app iOS grazie all'integrazione nativa con CoreLocation e al monitoraggio delle regioni in background. Eddystone è più adatto per progetti orientati ad Android e scenari Physical Web, dove il beacon trasmette un URL senza installazione dell'app. Per progetti multipiattaforma, viene spesso utilizzato AltBeacon, che supporta entrambi i protocolli.

Problemi comuni e limitazioni di iBeacon

Nell'implementazione di iBeacon, gli sviluppatori incontrano diverse limitazioni che devono essere considerate nella fase di progettazione dell'architettura. Una valutazione errata di questi fattori porta a navigazione instabile, falsi trigger e scarica della batteria dei beacon più rapida del previsto.

Influenza dell'ambiente sull'RSSI

Il livello del segnale RSSI subisce fluttuazioni significative a causa di riflessioni da pareti, strutture metalliche, presenza di persone e altri dispositivi wireless nella banda 2,4 GHz. In ambienti chiusi, la variazione dell'RSSI per lo stesso beacon può raggiungere 10-15 dBm al minuto, rendendo il calcolo della distanza impreciso senza l'uso di filtri (media mobile, filtro di Kalman).

Limite di monitoraggio delle regioni

iOS supporta il monitoraggio di un massimo di 20 regioni contemporaneamente per app. Per progetti che richiedono la copertura di vaste aree (aeroporto, stadio), ciò non è sufficiente. La soluzione è utilizzare la commutazione dinamica delle regioni: all'ingresso in una regione, le regioni vicine vengono attivate e quelle remote disattivate.

Tempo di risposta del monitoraggio

Il ritardo tra l'ingresso in una regione e la ricezione della notifica può variare da 1 a 30 secondi a seconda delle condizioni. iOS scansiona i beacon periodicamente per risparmiare batteria, quindi non ci si deve aspettare una reazione immediata. Per scenari critici in termini di tempo (apertura della porta all'avvicinamento), si consiglia l'uso di Immediate ranging, ma funziona solo in modalità attiva dell'app.

Domande frequenti

Cos'è iBeacon?

iBeacon è un protocollo di Apple per beacon Bluetooth Low Energy, che consente ai dispositivi iOS e Android di determinare la propria posizione in ambienti interni con precisione centimetrica basata sull'analisi del livello del segnale (RSSI) dei pacchetti BLE trasmessi.

In cosa iBeacon si differenzia dal Bluetooth?

Bluetooth è un protocollo di comunicazione wireless generale per la trasmissione di dati tra dispositivi, che richiede l'associazione. iBeacon è un protocollo specializzato su BLE, progettato esclusivamente per la trasmissione broadcast di identificatori senza stabilire una connessione. I beacon iBeacon non trasmettono dati — segnalano solo la loro presenza.

Come funziona iBeacon senza connessione?

iBeacon opera in modalità Advertising — il beacon trasmette continuamente pacchetti BLE broadcast con informazioni ID. Il dispositivo riceve il pacchetto ma non si connette al beacon. Ciò consente di risparmiare la batteria del beacon (fino a 2-3 anni con una CR2032) e di rilevare passivamente i beacon senza scansione attiva.

Si può trovare un iPhone con iBeacon?

No, iBeacon non è progettato per localizzare dispositivi. I beacon iBeacon sono trasmettitori fissi e l'iPhone funge da ricevitore. L'iPhone non trasmette segnali iBeacon (eccetto la funzione Find My che utilizza un altro protocollo basato su BLE). Per localizzare il telefono, vengono utilizzate altre tecnologie (rete Find My, UWB).

Qual è la portata di iBeacon?

La portata di iBeacon dipende dalle impostazioni del beacon e dalle condizioni ambientali. Portata tipica: Immediate — fino a 0,5 m, Near — fino a 3 m, Far — fino a 30-50 m. Con beacon con amplificatore di segnale e in spazi aperti, la portata può raggiungere 70 m, ma la precisione della determinazione della distanza a tale distanza è minima.

Riepilogo

  • iBeacon è un protocollo proprietario di Apple per beacon BLE, che opera sulla base di pacchetti broadcast senza associazione attiva.
  • Il pacchetto iBeacon contiene UUID (16 byte), Major (2 byte) e Minor (2 byte), oltre al TX Power di calibrazione.
  • iOS definisce tre zone di prossimità: Immediate (<0,5 m), Near (<3 m) e Far (<30-50 m), utilizzando categorie invece della distanza esatta.
  • Il monitoraggio di regione consente all'app di ricevere notifiche di ingresso/uscita dalla zona del beacon anche in background (fino a 20 regioni).
  • Android supporta iBeacon tramite la libreria AltBeacon con analisi dei pacchetti via BeaconParser e stringa layout.
  • Eddystone di Google è un protocollo aperto alternativo con supporto per URL e identificatori crittografati EID.
  • Principali limitazioni di iBeacon: instabilità dell'RSSI in ambienti chiusi, limite di 20 regioni e ritardo di monitoraggio fino a 30 secondi.

Svilupperemo un'applicazione mobile chiavi in mano

IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.

Discuti il progetto

Leggi anche