iBeacon: шта је то, принцип рада беацона и подешавање BLE

Аутор: IT Sectr Објављено: 2026-07-17 Време читања: 10 мин

iBeacon — је проприетари протокол компаније Apple за Bluetooth Low Energy беацоне, који омогућава iOS уређајима да одреде своју локацију у затвореном простору са прецизношћу до центиметара. У основи протокола лежи емитовање BLE пакета са јединственим идентификатором који садржи UUID, Major и Minor вредности. Према Apple iBeacon Design Guidelines (2025), технологија се користи у навигацији кроз тржне центре, музеје, аеродроме и стадионе, подржавајући пасивно откривање без активног упаривања уређаја.

Главне тачке

  • iBeacon — проприетари протокол Apple за BLE беацоне, који ради без активног упаривања уређаја.
  • Пакет iBeacon садржи три идентификатора: UUID (јединствени идентификатор организације), Major и Minor (зоне и тачке).
  • iOS одређује три стања: Immediate (<0,5 m), Near (<3 m) и Far (<30-50 m) на основу RSSI.
  • Мониторинг региона (region monitoring) омогућава апликацији да прима обавештења о уласку и изласку из зоне беацона чак и у позадини.
  • Android подржава iBeacon преко библиотека трећих страна, као што је AltBeacon компаније Radius Networks за међуплатформску компатибилност.

Шта је iBeacon?

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 и формат пакета

Пакет 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)
UUID16 бајтоваЈединствени идентификатор организације или апликације
Major2 бајтаИдентификатор зоне (0-65535), нпр. број продавнице
Minor2 бајтаИдентификатор тачке (0-65535), нпр. број полице
TX Power1 бајтКалибрациона снага сигнала на удаљености од 1 метра (dBm)

Хијерархија UUID, Major и Minor

Идентификатори iBeacon-а формирају тростепену хијерархију. UUID се додељује организацији (нпр. ланац продавница), Major — конкретној продавници или спрату, Minor — конкретној тачки у зони (каса, одељење робе). Оваква хијерархија омогућава апликацији да флексибилно реагује на различите нивое контекста: при уласку у продавницу (UUID + Major) апликација може да учита мапу спрата, а при приласку конкретном одељењу (Minor) да прикаже информације о производу.

TX Power и калибрација

Поље TX Power — је референтна вредност нивоа сигнала (RSSI) на удаљености од 1 метра од беацона. По пријему пакета, уређај бележи стварни RSSI и израчунава удаљеност по формули: distance = 10^((TX_Power - RSSI) / (10 * n)), где је n — коефицијент слабљења средине (обично 2-4). Правилна калибрација TX Power-а је критична за прецизност позиционирања: грешка од 1 dBm даје одступање до 30% на удаљености од 5 метара.

Зоне приближавања: Immediate, Near, Far

iOS одређује три зоне приближавања на основу израчунате удаљености до беацона: Immediate (мање од 0,5 метара), Near (од 0,5 до 3 метра) и Far (од 3 до 30-50 метара у зависности од услова). Тачна удаљеност се не саопштава — само категорија. Ово је намерно: RSSI је подложан сметњама, рефлексијама сигнала и утицају људског тела, па категорије пружају стабилније одређивање локације.

Immediate — непосредна близина

Immediate — зона директног контакта, када се уређај налази на неколико центиметара од беацона. Користи се у сценаријима који захтевају максималну прецизност: плаћање преко терминала, отварање дигиталне браве, верификација на пропусном пункту. У зони Immediate RSSI обично износи од -30 до -60 dBm.

Near — средња удаљеност

Зона Near — главна радна зона iBeacon-а, која покрива удаљеност од 0,5 до 3 метра. Користи се за навигацију у затвореном простору — на пример, при приласку излогу са робом апликација приказује детаљне информације. У зони Near RSSI се креће од -60 до -80 dBm при калибрацији TX Power = -59 dBm.

Far — далека удаљеност

Far — максимална зона детекције сигнала беацона. Користи се за праћење уласка у регион (на пример, улазак у тржни центар). На даљини Far RSSI је обично слабији од -80 dBm, а прецизност одређивања удаљености значајно опада. За праћење уласка користе се системски API-ји region monitoring, а не одређивање тачне зоне.

Мониторинг региона на iOS-у

Регион iBeacon-а — је виртуелна област одређена UUID-ом (и опционо Major + Minor). iOS омогућава праћење до 20 региона истовремено помоћу CLLocationManager. При уласку у регион, систем буди апликацију чак и у позадини или угашеном стању и шаље обавештење преко делегата locationManager:didEnterRegion. При изласку из региона позива се 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 — одређивање тачне зоне

За одређивање зоне (Immediate, Near, Far) користи се ranging — скенирање беацона у реалном времену. За разлику од мониторинга, ranging ради само у активном режиму апликације и захтева дозволу за приступ локацији. Метод locationManager:didRangeBeacons:inRegion враћа низ CLBeacon са пољима proximity (CLProximity.immediate, .near, .far, .unknown), accuracy (калибрисана удаљеност у метрима) и rssi.

swift
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("Непозната близина")
        }
    }
}

iBeacon на Android-у: AltBeacon и међуплатформска интеграција

Android нема уграђену подршку за iBeacon, јер је протокол проприетари решење компаније Apple. Међутим, помоћу библиотека трећих страна, као што је AltBeacon компаније Radius Networks (сада део организације Open Beacon), програмери могу да интегришу iBeacon у Android апликације. Библиотека AltBeacon имплементира скенирање BLE пакета, парсирање iBeacon формата и емулацију ranging-а и мониторинга региона, аналогно iOS API-ју.

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)

Парсирање iBeacon пакета на Android-у

Формат парсирања 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-у

На Android-у рад са iBeacon-ом има три кључна ограничења: позадинско скенирање је ограничено од стране произвођача (Xiaomi, Huawei, Samsung често убијају позадинске процесе), прецизност RSSI-ја је нижа него на iOS-у због разлика у BLE стековима, а за скенирање је потребна дозвола ACCESS_FINE_LOCATION од Android 6.0 и BLUETOOTH_SCAN од Android 12.

iBeacon vs Eddystone: поређење протокола беацона

Eddystone — отворени протокол BLE беацона компаније Google, представљен 2015. године. За разлику од iBeacon-а, Eddystone подржава четири типа пакета: Eddystone-UID (фиксни идентификатор), Eddystone-URL (пренос URL-а за Physical Web), Eddystone-TLM (телеметрија беацона — ниво батерије, температура) и Eddystone-EID (шифровани идентификатор за заштиту од клонирања). Иако је Google престао са развојем Physical Web-а 2022. године, протокол Eddystone се и даље користи у корпоративним решењима.

ПараметарiBeaconEddystone
ВласникAppleGoogle (отворени)
Типови пакета1 (UID)4 (UID, URL, TLM, EID)
ПодациUUID+Major+MinorID/URL + телеметрија
Изворна подршка iOSДа (CoreLocation)Не (преко CoreBluetooth)
Physical WebНеДа (Eddystone-URL)
БезбедностНема шифровањаEID са ротацијом кључева

Избор протокола за пројекат

Избор између iBeacon-а и Eddystone-а зависи од циљне платформе и сценарија употребе. iBeacon је пожељнији за iOS апликације захваљујући изворној интеграцији са CoreLocation и мониторингу региона у позадини. Eddystone је погоднији за Android-оријентисане пројекте и Physical Web сценарије, где беацон преноси URL без инсталирања апликације. За међуплатформске пројекте често се користи AltBeacon, који подржава оба протокола.

Типични проблеми и ограничења iBeacon-а

При имплементацији iBeacon-а, програмери се суочавају са низом ограничења која се морају узети у обзир у фази пројектовања архитектуре. Некоректно узимање у обзир ових фактора доводи до нестабилног рада навигације, лажних окидача и пражњења батерије беацона брже од прорачунског рока.

Утицај средине на RSSI

Ниво сигнала RSSI је подложан значајним флуктуацијама услед рефлексија од зидова, металних конструкција, присуства људи и других бежичних уређаја у опсегу 2,4 GHz. У затвореном простору, распон RSSI за један беацон може достизати 10-15 dBm у минути, што чини израчунавање удаљености нетачним без употребе филтера (изглађивање покретним просеком, Калмановска филтрација).

Лимит мониторинга региона

iOS подржава праћење највише 20 региона истовремено за једну апликацију. За пројекте који захтевају покривање велике територије (аеродром, стадион), ово није довољно. Решење — динамичко пребацивање региона: при уласку у један регион, суседни се активирају, а удаљени деактивирају.

Време одзива мониторинга

Кашњење између уласка у регион и добијања обавештења може износити од 1 до 30 секунди у зависности од услова. iOS скенира беацоне периодично ради уштеде батерије, па не треба очекивати тренутну реакцију. За временски критичне сценарије (отварање врата при приласку) препоручује се коришћење Immediate ranging-а, али он ради само у активном режиму апликације.

Често постављана питања

Шта је iBeacon?

iBeacon — је протокол компаније Apple за Bluetooth Low Energy беацоне, који омогућава iOS и Android уређајима да одреде своју локацију у затвореном простору са прецизношћу до центиметара на основу анализе нивоа сигнала (RSSI) примљених BLE пакета.

По чему се iBeacon разликује од Bluetooth-а?

Bluetooth — је општи протокол бежичне комуникације за пренос података између уређаја, који захтева упаривање. iBeacon — специјализовани протокол преко BLE-а, намењен искључиво за емитовање идентификатора без успостављања везе. iBeacon беацони не преносе податке — они само саопштавају своје присуство.

Како iBeacon ради без повезивања?

iBeacon ради у Advertising режиму — беацон непрекидно емитује BLE пакете са ID информацијом. Уређај прима пакет, али се не повезује са беацоном. Ово омогућава уштеду батерије беацона (до 2-3 године рада од једне CR2032) и пасивно откривање беацона без активног скенирања.

Може ли се iPhone пронаћи преко iBeacon-а?

Не, iBeacon није намењен за проналажење уређаја. iBeacon беацони су стационарни предајници, а iPhone има улогу пријемника. iPhone не емитује iBeacon сигнале (осим функције Find My, која користи други протокол на бази BLE-а). За проналажење телефона користе се друге технологије (Find My мрежа, UWB).

Колико далеко ради iBeacon?

Радијус дејства iBeacon-а зависи од подешавања беацона и услова средине. Типични домет: Immediate — до 0,5 m, Near — до 3 m, Far — до 30-50 m. Код употребе беацона са појачивачем сигнала и на отвореним просторима, домет може достићи 70 m, али је прецизност одређивања удаљености на тој даљини минимална.

Резиме

  • iBeacon — проприетари протокол Apple за BLE беацоне, који ради на основу емитованих пакета без активног упаривања.
  • Пакет iBeacon садржи UUID (16 бајтова), Major (2 бајта) и Minor (2 бајта), као и калибрациони TX Power.
  • iOS одређује три зоне приближавања: Immediate (<0,5 m), Near (<3 m) и Far (<30-50 m), користећи категорије уместо тачне удаљености.
  • Мониторинг региона омогућава апликацији да прима обавештења о уласку/изласку из зоне беацона чак и у позадини (до 20 региона).
  • Android подржава iBeacon преко библиотеке AltBeacon са парсирањем пакета преко BeaconParser-а и layout низа.
  • Eddystone од Google-а — алтернативни отворени протокол са подршком за URL и шифроване идентификаторе EID.
  • Главна ограничења iBeacon-а: нестабилност RSSI-ја у затвореном простору, лимит од 20 региона и кашњење мониторинга до 30 секунди.

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође