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 м), Near (<3 м) и Far (<30-50 м) на основе 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 МГц. Формат пакета жёстко фиксирован и состоит из четырёх полей: префикса Apple iBeacon (0x4C000215), 16-байтового UUID, 2-байтового Major и 2-байтового 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("Immediate proximity")
        case .near:
            print("Near proximity")
        case .far:
            print("Far proximity")
        default:
            print("Unknown proximity")
        }
    }
}

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)
Физический WebНетДа (Eddystone-URL)
БезопасностьНет шифрованияEID с ротацией ключей

Выбор протокола для проекта

Выбор между iBeacon и Eddystone зависит от целевой платформы и сценария использования. iBeacon предпочтителен для iOS-приложений благодаря нативной интеграции с CoreLocation и мониторингу регионов в фоновом режиме. Eddystone лучше подходит для Android-ориентированных проектов и сценариев Physical Web, где маячок передаёт URL без установки приложения. Для кроссплатформенных проектов часто используют AltBeacon, поддерживающий оба протокола.

Типовые проблемы и ограничения iBeacon

При внедрении iBeacon разработчики сталкиваются с рядом ограничений, которые необходимо учитывать на этапе проектирования архитектуры. Некорректный учёт этих факторов приводит к нестабильной работе навигации, ложным срабатываниям и разряду батареи маячков быстрее расчётного срока.

Влияние среды на RSSI

Уровень сигнала RSSI подвержен значительным колебаниям из-за отражений от стен, металлических конструкций, присутствия людей и других wireless-устройств в диапазоне 2.4 ГГц. В помещении разброс 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 network, UWB).

Как далеко работает iBeacon?

Радиус действия iBeacon зависит от настроек маячка и условий среды. Типичная дальность: Immediate — до 0,5 м, Near — до 3 м, Far — до 30-50 м. При использовании маячков с усилителем сигнала и в открытых пространствах дальность может достигать 70 м, но точность определения расстояния на такой дистанции минимальна.

Итоги

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

Мы разработаем мобильное приложение под ключ

IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект

Читайте также