iBeacon — je proprietární protokol společnosti Apple pro Bluetooth Low Energy beaconů, umožňující zařízením iOS určovat svou polohu uvnitř budov s přesností na centimetry. Základem protokolu je vysílání BLE paketů s jedinečným identifikátorem obsahujícím UUID, Major a Minor. Podle Apple iBeacon Design Guidelines (2025) se technologie používá v navigaci v obchodních centrech, muzeích, letištích a na stadionech, přičemž podporuje pasivní detekci bez aktivního párování zařízení.
Hlavní body
iBeacon — je technologie umístřování v interiéru vyvinutá společností Apple a představená na WWDC 2013. Na rozdíl od GPS, které nefunguje uvnitř budov, iBeacon využívá Bluetooth Low Energy beaconů — malých zařízení napájených baterií, která vysílají pevné identifikační pakety. Zařízení na iOS a Android tyto pakety přijímají a vypočítávají přibližnou vzdálenost k beaconu na základě úrovně signálu (RSSI).
Protokol iBeacon se stal prvním masovým standardem BLE beaconů, spuštěným společností Apple v roce 2013 v iOS 7. Původně byla technologie používána v maloobchodě: obchody Apple Store zavedly iBeacon pro informování zákazníků o slevách při vstupu do určitých zón. Do roku 2025 infastruktura iBeacon čítá miliony nainstalovaných beaconů po celém světě, i když se objevily alternativní protokoly — Eddystone od Google a AltBeacon s otevřeným zdrojovým kódem.
iBeacon se používá v pěti hlavních scénářích: navigace v interiéru (obchodní centra, letiště, muzea), kontextová upozornění (slevy při vstupu do obchodu), automatizace pracovních procesů (označení přítomnosti), logistika a skladové účetnictví, stejně jako turističtí průvodci s automatickým přehráváním obsahu při přiblížení k objektu. Podle ABI Research (2025) je trh BLE beaconů odhadován na 3,2 miliardy zařízení v provozu.
Paket iBeacon — je Advertising PDU (Protocol Data Unit), vysílaný v BLE reklamním kanálu na frekvencích 2402, 2426 a 2480 MHz. Formát paketu je přísně fixní a skládá se ze čtyř polí: prefixu Apple iBeacon (0x4C000215), 16-bajtového UUID, 2-bajtové hodnoty Major a 2-bajtové hodnoty Minor a 1-bajtového TX Power pro kalibraci vzdálenosti. Celková velikost dat je 30 bajtů, což se vejde do jednoho BLE Advertising PDU.
| Pole | Velikost | Popis |
|---|---|---|
| Prefix Apple | 9 bajtů | Company ID (0x004C) + iBeacon type (0x0215) |
| UUID | 16 bajtů | Jedinečný identifikátor organizace nebo aplikace |
| Major | 2 bajty | Identifikátor zóny (0-65535), např. číslo obchodu |
| Minor | 2 bajty | Identifikátor bodu (0-65535), např. číslo regálu |
| TX Power | 1 bajt | Kalibrační výkon signálu na vzdálenost 1 metru (dBm) |
Identifikátory iBeacon tvoří třúřrovňovou hierarchii. UUID je přiděleno organizaci (např. řetězec obchodů), Major — konkrétnímu obchodu nebo patru, Minor — konkrétnímu bodu v zóně (pokladní zóna, oddělení zboží). Tato hierarchie umožňuje aplikaci flexibilně reagovat na různé úrovně kontextu: při vstupu do obchodu (UUID + Major) může aplikace načíst mapu patra a při přiblížení ke konkrétnímu oddělení (Minor) zobrazit informace o produktu.
Pole TX Power — je referenční hodnota úrovně signálu (RSSI) na vzdálenost 1 metru od beaconu. Po přijetí paketu zařízení zaznamená skutečný RSSI a vypočítá vzdálenost podle vzorce: distance = 10^((TX_Power - RSSI) / (10 * n)), kde n je koeficient útlumu prostředí (obvykle 2-4). Správná kalibrace TX Power je kritická pro přesnost umístění: chyba 1 dBm způsobuje odchylku až 30% na vzdálenost 5 metrů.
iOS určuje tři zóny blízkosti na základě vypočítané vzdálenosti k beaconu: Immediate (méně než 0,5 metru), Near (0,5 až 3 metry) a Far (3 až 30-50 metrů v závislosti na podmínkách). Přesná vzdálenost se neuvádí — pouze kategorie. To je záměrné: RSSI je náchylné k rušení, odrazům signálu a vlivu lidského těla, proto kategorie poskytují stabilnější určení polohy.
Immediate — zóna přímého kontaktu, kdy je zařízení několik centimetrů od beaconu. Používá se pro scénáře vyžadující maximální přesnost: platba přes terminál, otevírání digitálního zámku, ověření na kontrolním bodu. V zóně Immediate je RSSI obvykle od -30 do -60 dBm.
Zóna Near — hlavní pracovní zóna iBeacon, pokrývající vzdálenost 0,5 až 3 metry. Používá se pro navigaci v interiéru — například při přiblížení k výloze se zbožím aplikace zobrazuje podrobné informace. V zóně Near se RSSI pohybuje od -60 do -80 dBm při kalibraci TX Power = -59 dBm.
Far — maximální zóna detekce signálu beaconu. Používá se pro monitorování vstupu do regionu (například vstup do obchodního centra). Na vzdálenosti Far je RSSI obvykle slabší než -80 dBm a přesnost určení vzdálenosti výrazně klesá. Pro monitorování vstupu se používají systémová API region monitoring, nikoli určení přesné zóny.
Region iBeacon — je virtuální oblast definovaná UUID (a volitelně Major + Minor). iOS umožňuje monitorovat až 20 regionů současně pomocí CLLocationManager. Při vstupu do regionu systém probudí aplikaci i na pozadí nebo v ukončeném stavu a odešle upozornění prostřednictvím delegáta locationManager:didEnterRegion. Při výstupu z regionu je voláno locationManager:didExitRegion.
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)
Pro určení zóny (Immediate, Near, Far) se používá ranging — skenování beaconů v reálném čase. Na rozdíl od monitorování, ranging funguje pouze v aktivním režimu aplikace a vyžaduje oprávnění k přístupu k poloze. Metoda locationManager:didRangeBeacons:inRegion vrací pole CLBeacon s poli proximity (CLProximity.immediate, .near, .far, .unknown), accuracy (kalibrovaná vzdálenost v metrech) a rssi.
func locationManager(
_ manager: CLLocationManager,
didRangeBeacons beacons: [CLBeacon],
in region: CLBeaconRegion
) {
for beacon in beacons {
switch beacon.proximity {
case .immediate:
print("Bezprostřední blízkost")
case .near:
print("Blízká blízkost")
case .far:
print("Vzdálená blízkost")
default:
print("Neznámá blízkost")
}
}
}
Android nemá vestavěnou podporu pro iBeacon, protože protokol je proprietární řešení Apple. S pomocí knihoven třetích stran, jako je AltBeacon od Radius Networks (nyní součást organizace Open Beacon), však mohou vývojáři integrovat iBeacon do aplikací pro Android. Knihovna AltBeacon implementuje skenování BLE paketů, parsování formátu iBeacon a emulaci ranging a monitorování regionů, podobně jako iOS API.
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)
Formát parsování iBeacon v knihovně AltBeacon je definován řetězcem layout: „m:2-3=0215” — kontrola dvou bajtů iBeacon markeru, „i:4-19” — 16-bajtové UUID, „i:20-21” — Major, „i:22-23” — Minor, „p:24-24” — TX Power. Stejný formát je podporován pro Eddystone a další protokoly, což činí AltBeacon univerzální knihovnou pro práci s BLE beaconů na Androidu.
Na Androidu má práce s iBeacon tři klíčová omezení: skenování na pozadí je omezeno výrobci (Xiaomi, Huawei, Samsung často ukončují procesy na pozadí), přesnost RSSI je nižší než na iOS kvůli rozdílům v BLE zásobnících a pro skenování je vyžadováno oprávnění ACCESS_FINE_LOCATION od Androidu 6.0 a BLUETOOTH_SCAN od Androidu 12.
Eddystone — otevřený protokol BLE beaconů od Google, představený v roce 2015. Na rozdíl od iBeacon, Eddystone podporuje čtyři typy paketů: Eddystone-UID (pevný identifikátor), Eddystone-URL (přenos URL pro Physical Web), Eddystone-TLM (telemetrie beaconů — úroveň baterie, teplota) a Eddystone-EID (šifrovaný identifikátor pro ochranu před klonováním). Přestože Google zastavil vývoj Physical Web v roce 2022, protokol Eddystone se nadále používá v podnikových řešeních.
| Parametr | iBeacon | Eddystone |
|---|---|---|
| Vlastník | Apple | Google (otevřený) |
| Typy paketů | 1 (UID) | 4 (UID, URL, TLM, EID) |
| Data | UUID+Major+Minor | ID/URL + telemetrie |
| Nativní podpora iOS | Ano (CoreLocation) | Ne (přes CoreBluetooth) |
| Physical Web | Ne | Ano (Eddystone-URL) |
| Bezpečnost | Bez šifrování | EID s rotací klíčů |
Výběr mezi iBeacon a Eddystone závisí na cílové platformě a scénáři použití. iBeacon je preferován pro iOS aplikace díky nativní integraci s CoreLocation a monitorování regionů na pozadí. Eddystone je vhodnější pro projekty orientované na Android a scénáře Physical Web, kde beacon přenáší URL bez instalace aplikace. Pro křížové platformové projekty se často používá AltBeacon, který podporuje oba protokoly.
Při implementaci iBeacon se vývojáři setkávají s řadou omezení, která je třeba zvážit ve fázi návrhu architektury. Nesprávné zohlednění těchto faktorů vede k nestabilnímu provozu navigace, falešným spuštěním a rychlejšímu vybití baterie beaconů, než se předpokládalo.
Úroveň signálu RSSI podléhá významným výkyvům kvůli odrazům od zdí, kovových konstrukcí, přítomnosti lidí a dalších bezdrátových zařízení v pásmu 2,4 GHz. V interiéru může rozpětí RSSI pro jeden beacon dosáhnout 10-15 dBm za minutu, což činí výpočet vzdálenosti nepřesným bez použití filtrů (vyhlazování klouzavým průměrem, Kalmanova filtrace).
iOS podporuje monitorování nejvýše 20 regionů současně pro jednu aplikaci. Pro projekty vyžadující pokrytí velkého území (letiště, stadion) to není dostačující. Řešení — dynamické přepínání regionů: při vstupu do jednoho regionu se sousední aktivují a vzdálené deaktivují.
Zpoždění mezi vstupem do regionu a přijetím upozornění může být od 1 do 30 sekund v závislosti na podmínkách. iOS skenuje beacony periodicky pro úspory baterie, proto nelze očekávat okamžitou reakci. Pro časově kritické scénáře (otevírání dveří při přiblížení) se doporučuje použít Immediate ranging, ale to funguje pouze v aktivním režimu aplikace.
Často kladené otázky
iBeacon — je protokol Apple pro Bluetooth Low Energy beacony, který umožňuje zařízením iOS a Android určovat svou polohu uvnitř budov s přesností na centimetry na základě analýzy úrovně signálu (RSSI) přijímaných BLE paketů.
Bluetooth — je obecný protokol bezdrátové komunikace pro přenos dat mezi zařízeními vyžadující párování. iBeacon — specializovaný protokol nad BLE, určený výhradně pro vysílání identifikátorů bez navazování spojení. iBeacon beacony nepřenášejí data — pouze oznamují svou přítomnost.
iBeacon funguje v režimu Advertising — beacon neustále vysílá vysílací BLE pakety s informacemi ID. Zařízení paket přijme, ale k beaconu se nepřipojuje. To šetří baterii beaconu (až 2-3 roky provozu z jedné CR2032) a umožňuje pasivní detekci beaconů bez aktivního skenování.
Ne, iBeacon není určen k vyhledávání zařízení. iBeacon beacony jsou stacionární vysílače a iPhone funguje jako přijímač. iPhone nevysílá iBeacon signály (s výjimkou funkce Find My, která používá jiný protokol na bázi BLE). Pro nalezení telefonu se používají jiné technologie (síť Find My, UWB).
Dosah iBeacon závisí na nastavení beaconu a podmínkách prostředí. Typický dosah: Immediate — do 0,5 m, Near — do 3 m, Far — do 30-50 m. Při použití beaconů se zesilovačem signálu a v otevřených prostorech může dosah dosáhnout 70 m, ale přesnost určení vzdálenosti na takovou vzdálenost je minimální.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také