iBeacon — је проприетари протокол компаније Apple за Bluetooth Low Energy беацоне, који омогућава iOS уређајима да одреде своју локацију у затвореном простору са прецизношћу до центиметара. У основи протокола лежи емитовање BLE пакета са јединственим идентификатором који садржи UUID, Major и Minor вредности. Према Apple iBeacon Design Guidelines (2025), технологија се користи у навигацији кроз тржне центре, музеје, аеродроме и стадионе, подржавајући пасивно откривање без активног упаривања уређаја.
Главне тачке
iBeacon — је технологија позиционирања у затвореном простору коју је развио Apple и представио на WWDC 2013. За разлику од GPS-а, који не ради унутар зграда, iBeacon користи Bluetooth Low Energy беацоне — мале уређаје са батеријским напајањем који емитују фиксне идентификационе пакете. Уређаји на iOS-у и Android-у примају ове пакете и израчунавају приближну удаљеност до беацона на основу нивоа сигнала (RSSI).
Протокол iBeacon је постао први масовни стандард BLE беацона, лансиран од стране Apple-а 2013. године у iOS 7. Првобитно је технологија коришћена у малопродаји: Apple Store продавнице су увеле iBeacon за информисање купаца о попустима при уласку у одређене зоне. До 2025. године инфраструктура iBeacon-а броји милионе инсталираних беацона широм света, иако су се појавили алтернативни протоколи — Eddystone од Google-а и AltBeacon отвореног кода.
iBeacon се користи у пет главних сценарија: навигација у затвореном простору (тржни центри, аеродроми, музеји), контекстна обавештења (попусти при уласку у продавницу), аутоматизација радних процеса (означавање присуства), логистика и складишно пословање, као и туристички водичи са аутоматском репродукцијом садржаја при приближавању објекту. Према ABI Research (2025), тржиште BLE беацона се процењује на 3,2 милијарде уређаја у експлоатацији.
Пакет iBeacon — је Advertising PDU (Protocol Data Unit), који се преноси у BLE рекламном каналу на фреквенцијама 2402, 2426 и 2480 MHz. Формат пакета је строго фиксиран и састоји се од четири поља: префикса Apple iBeacon (0x4C000215), 16-бајтног UUID-а, 2-бајтне Major и 2-бајтне Minor вредности, као и 1-бајтног TX Power за калибрацију удаљености. Укупна величина података је 30 бајтова, што стаје у један BLE Advertising PDU.
| Поље | Величина | Опис |
|---|---|---|
| Apple префикс | 9 бајтова | Company ID (0x004C) + iBeacon type (0x0215) |
| UUID | 16 бајтова | Јединствени идентификатор организације или апликације |
| Major | 2 бајта | Идентификатор зоне (0-65535), нпр. број продавнице |
| Minor | 2 бајта | Идентификатор тачке (0-65535), нпр. број полице |
| TX Power | 1 бајт | Калибрациона снага сигнала на удаљености од 1 метра (dBm) |
Идентификатори iBeacon-а формирају тростепену хијерархију. UUID се додељује организацији (нпр. ланац продавница), Major — конкретној продавници или спрату, Minor — конкретној тачки у зони (каса, одељење робе). Оваква хијерархија омогућава апликацији да флексибилно реагује на различите нивое контекста: при уласку у продавницу (UUID + Major) апликација може да учита мапу спрата, а при приласку конкретном одељењу (Minor) да прикаже информације о производу.
Поље TX Power — је референтна вредност нивоа сигнала (RSSI) на удаљености од 1 метра од беацона. По пријему пакета, уређај бележи стварни RSSI и израчунава удаљеност по формули: distance = 10^((TX_Power - RSSI) / (10 * n)), где је n — коефицијент слабљења средине (обично 2-4). Правилна калибрација TX Power-а је критична за прецизност позиционирања: грешка од 1 dBm даје одступање до 30% на удаљености од 5 метара.
iOS одређује три зоне приближавања на основу израчунате удаљености до беацона: Immediate (мање од 0,5 метара), Near (од 0,5 до 3 метра) и Far (од 3 до 30-50 метара у зависности од услова). Тачна удаљеност се не саопштава — само категорија. Ово је намерно: RSSI је подложан сметњама, рефлексијама сигнала и утицају људског тела, па категорије пружају стабилније одређивање локације.
Immediate — зона директног контакта, када се уређај налази на неколико центиметара од беацона. Користи се у сценаријима који захтевају максималну прецизност: плаћање преко терминала, отварање дигиталне браве, верификација на пропусном пункту. У зони Immediate RSSI обично износи од -30 до -60 dBm.
Зона Near — главна радна зона iBeacon-а, која покрива удаљеност од 0,5 до 3 метра. Користи се за навигацију у затвореном простору — на пример, при приласку излогу са робом апликација приказује детаљне информације. У зони Near RSSI се креће од -60 до -80 dBm при калибрацији TX Power = -59 dBm.
Far — максимална зона детекције сигнала беацона. Користи се за праћење уласка у регион (на пример, улазак у тржни центар). На даљини Far RSSI је обично слабији од -80 dBm, а прецизност одређивања удаљености значајно опада. За праћење уласка користе се системски API-ји region monitoring, а не одређивање тачне зоне.
Регион iBeacon-а — је виртуелна област одређена UUID-ом (и опционо Major + Minor). iOS омогућава праћење до 20 региона истовремено помоћу CLLocationManager. При уласку у регион, систем буди апликацију чак и у позадини или угашеном стању и шаље обавештење преко делегата locationManager:didEnterRegion. При изласку из региона позива се 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)
За одређивање зоне (Immediate, Near, Far) користи се ranging — скенирање беацона у реалном времену. За разлику од мониторинга, ranging ради само у активном режиму апликације и захтева дозволу за приступ локацији. Метод locationManager:didRangeBeacons:inRegion враћа низ CLBeacon са пољима proximity (CLProximity.immediate, .near, .far, .unknown), accuracy (калибрисана удаљеност у метрима) и rssi.
func locationManager(
_ manager: CLLocationManager,
didRangeBeacons beacons: [CLBeacon],
in region: CLBeaconRegion
) {
for beacon in beacons {
switch beacon.proximity {
case .immediate:
print("Непосредна близина")
case .near:
print("Блиска близина")
case .far:
print("Далека близина")
default:
print("Непозната близина")
}
}
}
Android нема уграђену подршку за iBeacon, јер је протокол проприетари решење компаније Apple. Међутим, помоћу библиотека трећих страна, као што је AltBeacon компаније Radius Networks (сада део организације Open Beacon), програмери могу да интегришу iBeacon у Android апликације. Библиотека AltBeacon имплементира скенирање BLE пакета, парсирање iBeacon формата и емулацију ranging-а и мониторинга региона, аналогно 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)
Формат парсирања iBeacon-а у библиотеци AltBeacon дефинисан је низом layout: „m:2-3=0215” — провера два бајта iBeacon маркера, „i:4-19” — 16-бајтни UUID, „i:20-21” — Major, „i:22-23” — Minor, „p:24-24” — TX Power. Исти формат је подржан за Eddystone и друге протоколе, што чини AltBeacon универзалном библиотеком за рад са BLE беацонима на Android-у.
На Android-у рад са iBeacon-ом има три кључна ограничења: позадинско скенирање је ограничено од стране произвођача (Xiaomi, Huawei, Samsung често убијају позадинске процесе), прецизност RSSI-ја је нижа него на iOS-у због разлика у BLE стековима, а за скенирање је потребна дозвола ACCESS_FINE_LOCATION од Android 6.0 и BLUETOOTH_SCAN од Android 12.
Eddystone — отворени протокол BLE беацона компаније Google, представљен 2015. године. За разлику од iBeacon-а, Eddystone подржава четири типа пакета: Eddystone-UID (фиксни идентификатор), Eddystone-URL (пренос URL-а за Physical Web), Eddystone-TLM (телеметрија беацона — ниво батерије, температура) и Eddystone-EID (шифровани идентификатор за заштиту од клонирања). Иако је Google престао са развојем Physical Web-а 2022. године, протокол Eddystone се и даље користи у корпоративним решењима.
| Параметар | iBeacon | Eddystone |
|---|---|---|
| Власник | Apple | Google (отворени) |
| Типови пакета | 1 (UID) | 4 (UID, URL, TLM, EID) |
| Подаци | UUID+Major+Minor | ID/URL + телеметрија |
| Изворна подршка iOS | Да (CoreLocation) | Не (преко CoreBluetooth) |
| Physical Web | Не | Да (Eddystone-URL) |
| Безбедност | Нема шифровања | EID са ротацијом кључева |
Избор између iBeacon-а и Eddystone-а зависи од циљне платформе и сценарија употребе. iBeacon је пожељнији за iOS апликације захваљујући изворној интеграцији са CoreLocation и мониторингу региона у позадини. Eddystone је погоднији за Android-оријентисане пројекте и Physical Web сценарије, где беацон преноси URL без инсталирања апликације. За међуплатформске пројекте често се користи AltBeacon, који подржава оба протокола.
При имплементацији iBeacon-а, програмери се суочавају са низом ограничења која се морају узети у обзир у фази пројектовања архитектуре. Некоректно узимање у обзир ових фактора доводи до нестабилног рада навигације, лажних окидача и пражњења батерије беацона брже од прорачунског рока.
Ниво сигнала RSSI је подложан значајним флуктуацијама услед рефлексија од зидова, металних конструкција, присуства људи и других бежичних уређаја у опсегу 2,4 GHz. У затвореном простору, распон RSSI за један беацон може достизати 10-15 dBm у минути, што чини израчунавање удаљености нетачним без употребе филтера (изглађивање покретним просеком, Калмановска филтрација).
iOS подржава праћење највише 20 региона истовремено за једну апликацију. За пројекте који захтевају покривање велике територије (аеродром, стадион), ово није довољно. Решење — динамичко пребацивање региона: при уласку у један регион, суседни се активирају, а удаљени деактивирају.
Кашњење између уласка у регион и добијања обавештења може износити од 1 до 30 секунди у зависности од услова. iOS скенира беацоне периодично ради уштеде батерије, па не треба очекивати тренутну реакцију. За временски критичне сценарије (отварање врата при приласку) препоручује се коришћење Immediate ranging-а, али он ради само у активном режиму апликације.
Често постављана питања
iBeacon — је протокол компаније Apple за Bluetooth Low Energy беацоне, који омогућава iOS и Android уређајима да одреде своју локацију у затвореном простору са прецизношћу до центиметара на основу анализе нивоа сигнала (RSSI) примљених BLE пакета.
Bluetooth — је општи протокол бежичне комуникације за пренос података између уређаја, који захтева упаривање. iBeacon — специјализовани протокол преко BLE-а, намењен искључиво за емитовање идентификатора без успостављања везе. iBeacon беацони не преносе податке — они само саопштавају своје присуство.
iBeacon ради у Advertising режиму — беацон непрекидно емитује BLE пакете са ID информацијом. Уређај прима пакет, али се не повезује са беацоном. Ово омогућава уштеду батерије беацона (до 2-3 године рада од једне CR2032) и пасивно откривање беацона без активног скенирања.
Не, iBeacon није намењен за проналажење уређаја. iBeacon беацони су стационарни предајници, а iPhone има улогу пријемника. iPhone не емитује iBeacon сигнале (осим функције Find My, која користи други протокол на бази BLE-а). За проналажење телефона користе се друге технологије (Find My мрежа, UWB).
Радијус дејства iBeacon-а зависи од подешавања беацона и услова средине. Типични домет: Immediate — до 0,5 m, Near — до 3 m, Far — до 30-50 m. Код употребе беацона са појачивачем сигнала и на отвореним просторима, домет може достићи 70 m, али је прецизност одређивања удаљености на тој даљини минимална.
Резиме
Развићемо мобилну апликацију под кључ
IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.
Прочитајте такође