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 и Minor, както и 1-байтов TX Power за калибриране на разстояние. Общият размер на данните е 30 байта, което се побира в един BLE Advertising PDU.

ПолеРазмерОписание
Префикс Apple9 байта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 срещу 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 г. Ще ви консултираме и ще предложим най-доброто решение.

Обсъдете проекта

Прочетете също