iBeacon: co to jest, zasada działania beaconów i konfiguracja BLE

Autor: IT Sectr Opublikowano: 2026-07-17 Czas czytania: 10 min

iBeacon — to zastrzeżony protokół Apple dla beaconów Bluetooth Low Energy, umożliwiający urządzeniom iOS określanie swojej lokalizacji wewnątrz pomieszczeń z dokładnością do centymetrów. Podstawą protokołu jest rozgłaszanie pakietów BLE z unikalnym identyfikatorem zawierającym UUID, Major i Minor. Według Apple iBeacon Design Guidelines (2025), technologia jest używana w nawigacji po centrach handlowych, muzeach, lotniskach i stadionach, wspierając pasywne wykrywanie bez aktywnego parowania urządzeń.

Najważniejsze

  • iBeacon — zastrzeżony protokół Apple dla beaconów BLE, działający bez aktywnego parowania urządzeń.
  • Pakiet iBeacon zawiera trzy identyfikatory: UUID (unikalny identyfikator organizacji), Major i Minor (strefy i punkty).
  • iOS określa trzy stany: Immediate (<0,5 m), Near (<3 m) i Far (<30-50 m) na podstawie RSSI.
  • Monitorowanie regionu (region monitoring) pozwala aplikacji otrzymywać powiadomienia o wejściu i wyjściu ze strefy beaconu nawet w tle.
  • Android obsługuje iBeacon przez biblioteki innych firm, takie jak AltBeacon od Radius Networks dla kompatybilności międzyplatformowej.

Co to jest iBeacon?

iBeacon — to technologia pozycjonowania wewnątrz pomieszczeń opracowana przez Apple i zaprezentowana na WWDC 2013. W przeciwieństwie do GPS, który nie działa wewnątrz budynków, iBeacon wykorzystuje beacony Bluetooth Low Energy — małe urządzenia zasilane bateryjnie, które przesyłają stałe pakiety identyfikacyjne. Urządzenia na iOS i Android odbierają te pakiety i obliczają przybliżoną odległość do beaconu na podstawie poziomu sygnału (RSSI).

Historia i rozwój

Protokół iBeacon stał się pierwszym masowym standardem beaconów BLE, uruchomionym przez Apple w 2013 roku w iOS 7. Początkowo technologia była używana w handlu detalicznym: sklepy Apple Store wdrożyły iBeacon do informowania klientów o zniżkach przy wejściu do określonych stref. Do 2025 roku infrastruktura iBeacon liczy miliony zainstalowanych beaconów na całym świecie, choć pojawiły się alternatywne protokoły — Eddystone od Google i AltBeacon z otwartym kodem źródłowym.

Obszary zastosowania

iBeacon jest używany w pięciu głównych scenariuszach: nawigacja wewnątrz pomieszczeń (centra handlowe, lotniska, muzea), powiadomienia kontekstowe (zniżki przy wejściu do sklepu), automatyzacja procesów pracy (rejestracja obecności), logistyka i magazynowanie, a także przewodniki turystyczne z automatycznym odtwarzaniem treści przy zbliżaniu się do obiektu. Według ABI Research (2025), rynek beaconów BLE szacuje się na 3,2 mld urządzeń w eksploatacji.

Struktura protokołu iBeacon i format pakietu

Pakiet iBeacon — to Advertising PDU (Protocol Data Unit), przesyłany w kanale reklamowym BLE na częstotliwościach 2402, 2426 i 2480 MHz. Format pakietu jest ściśle określony i składa się z czterech pól: prefiksu Apple iBeacon (0x4C000215), 16-bajtowego UUID, 2-bajtowej wartości Major i 2-bajtowej wartości Minor oraz 1-bajtowego TX Power do kalibracji odległości. Całkowity rozmiar danych wynosi 30 bajtów, co mieści się w jednym BLE Advertising PDU.

PoleRozmiarOpis
Prefiks Apple9 bajtówCompany ID (0x004C) + iBeacon type (0x0215)
UUID16 bajtówUnikalny identyfikator organizacji lub aplikacji
Major2 bajtyIdentyfikator strefy (0-65535), np. numer sklepu
Minor2 bajtyIdentyfikator punktu (0-65535), np. numer półki
TX Power1 bajtKalibracyjna moc sygnału w odległości 1 metra (dBm)

Hierarchia UUID, Major i Minor

Identyfikatory iBeacon tworzą trójpoziomową hierarchię. UUID jest przypisywany organizacji (np. sieć sklepów), Major — konkretnemu sklepowi lub piętru, Minor — konkretnemu punktowi w strefie (strefa kasowa, dział towaru). Taka hierarchia pozwala aplikacji elastycznie reagować na różne poziomy kontekstu: przy wejściu do sklepu (UUID + Major) aplikacja może załadować mapę piętra, a przy podejściu do konkretnego działu (Minor) wyświetlić informacje o produkcie.

TX Power i kalibracja

Pole TX Power — to referencyjna wartość poziomu sygnału (RSSI) w odległości 1 metra od beaconu. Po otrzymaniu pakietu urządzenie rejestruje rzeczywisty RSSI i oblicza odległość według wzoru: distance = 10^((TX_Power - RSSI) / (10 * n)), gdzie n — współczynnik tłumienia środowiska (zwykle 2-4). Prawidłowa kalibracja TX Power jest krytyczna dla dokładności pozycjonowania: błąd 1 dBm daje odchylenie do 30% w odległości 5 metrów.

Strefy zbliżenia: Immediate, Near, Far

iOS określa trzy strefy zbliżenia na podstawie obliczonej odległości do beaconu: Immediate (mniej niż 0,5 metra), Near (od 0,5 do 3 metrów) i Far (od 3 do 30-50 metrów w zależności od warunków). Dokładna odległość nie jest podawana — tylko kategoria. Jest to celowe: RSSI podlega zakłóceniom, odbiciom sygnału i wpływowi ludzkiego ciała, dlatego kategorie zapewniają bardziej stabilne określanie lokalizacji.

Immediate — bezpośrednia bliskość

Immediate — strefa bezpośredniego kontaktu, gdy urządzenie znajduje się kilka centymetrów od beaconu. Używana w scenariuszach wymagających maksymalnej dokładności: płatność przez terminal, otwieranie zamka cyfrowego, weryfikacja na punkcie kontrolnym. W strefie Immediate RSSI wynosi zwykle od -30 do -60 dBm.

Near — średnia odległość

Strefa Near — główna strefa robocza iBeacon, obejmująca odległość od 0,5 do 3 metrów. Używana do nawigacji wewnątrz pomieszczeń — na przykład przy podejściu do witryny z towarem aplikacja wyświetla szczegółowe informacje. W strefie Near RSSI waha się od -60 do -80 dBm przy kalibracji TX Power = -59 dBm.

Far — daleka odległość

Far — maksymalna strefa wykrywania sygnału beaconu. Używana do monitorowania wejścia do regionu (na przykład wejście do centrum handlowego). Na dystansie Far RSSI jest zwykle słabszy niż -80 dBm, a dokładność określania odległości znacznie spada. Do monitorowania wejścia używane są systemowe API region monitoring, a nie określanie dokładnej strefy.

Monitorowanie regionu na iOS

Region iBeacon — to wirtualny obszar określany przez UUID (i opcjonalnie Major + Minor). iOS pozwala monitorować do 20 regionów jednocześnie za pomocą CLLocationManager. Przy wejściu do regionu system budzi aplikację nawet w tle lub zabitym stanie i wysyła powiadomienie przez delegata locationManager:didEnterRegion. Przy wyjściu z regionu wywoływane jest 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 — określanie dokładnej strefy

Do określania strefy (Immediate, Near, Far) używane jest ranging — skanowanie beaconów w czasie rzeczywistym. W przeciwieństwie do monitorowania, ranging działa tylko w aktywnym trybie aplikacji i wymaga zgody na dostęp do lokalizacji. Metoda locationManager:didRangeBeacons:inRegion zwraca tablicę CLBeacon z polami proximity (CLProximity.immediate, .near, .far, .unknown), accuracy (skalibrowana odległość w metrach) i rssi.

swift
func locationManager(
    _ manager: CLLocationManager,
    didRangeBeacons beacons: [CLBeacon],
    in region: CLBeaconRegion
) {
    for beacon in beacons {
        switch beacon.proximity {
        case .immediate:
            print("Bliska odległość")
        case .near:
            print("Średnia odległość")
        case .far:
            print("Daleka odległość")
        default:
            print("Nieznana odległość")
        }
    }
}

iBeacon na Androidzie: AltBeacon i integracja międzyplatformowa

Android nie ma wbudowanej obsługi iBeacon, ponieważ protokół jest zastrzeżonym rozwiązaniem Apple. Jednak dzięki bibliotekom innych firm, takim jak AltBeacon od Radius Networks (obecnie część organizacji Open Beacon), programiści mogą zintegrować iBeacon w aplikacjach Android. Biblioteka AltBeacon implementuje skanowanie pakietów BLE, parsowanie formatu iBeacon i emulację ranging i monitorowania regionów, analogicznie do API iOS.

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)

Parsowanie pakietu iBeacon na Androidzie

Format parsowania iBeacon w bibliotece AltBeacon jest określany przez ciąg layout: „m:2-3=0215” — sprawdzenie dwóch bajtów markera iBeacon, „i:4-19” — 16-bajtowy UUID, „i:20-21” — Major, „i:22-23” — Minor, „p:24-24” — TX Power. Ten sam format jest obsługiwany dla Eddystone i innych protokołów, co czyni AltBeacon uniwersalną biblioteką do pracy z beaconami BLE na Androidzie.

Ograniczenia na Androidzie

Na Androidzie praca z iBeacon ma trzy kluczowe ograniczenia: skanowanie w tle jest ograniczone przez producentów (Xiaomi, Huawei, Samsung często zabijają procesy w tle), dokładność RSSI jest niższa niż na iOS z powodu różnic w stosach BLE, a do skanowania wymagane jest uprawnienie ACCESS_FINE_LOCATION od Androida 6.0 i BLUETOOTH_SCAN od Androida 12.

iBeacon vs Eddystone: porównanie protokołów beaconów

Eddystone — otwarty protokół beaconów BLE od Google, zaprezentowany w 2015 roku. W przeciwieństwie do iBeacon, Eddystone obsługuje cztery typy pakietów: Eddystone-UID (stały identyfikator), Eddystone-URL (przekazywanie URL dla Physical Web), Eddystone-TLM (telemetria beaconu — poziom baterii, temperatura) i Eddystone-EID (szyfrowany identyfikator do ochrony przed klonowaniem). Mimo że Google zakończył rozwój Physical Web w 2022 roku, protokół Eddystone jest nadal używany w rozwiązaniach korporacyjnych.

ParametriBeaconEddystone
WłaścicielAppleGoogle (otwarty)
Typy pakietów1 (UID)4 (UID, URL, TLM, EID)
DaneUUID+Major+MinorID/URL + telemetria
Natywna obsługa iOSTak (CoreLocation)Nie (przez CoreBluetooth)
Physical WebNieTak (Eddystone-URL)
BezpieczeństwoBrak szyfrowaniaEID z rotacją kluczy

Wybór protokołu dla projektu

Wybór między iBeacon a Eddystone zależy od docelowej platformy i scenariusza użycia. iBeacon jest preferowany dla aplikacji iOS dzięki natywnej integracji z CoreLocation i monitorowaniu regionów w tle. Eddystone lepiej nadaje się do projektów zorientowanych na Androida i scenariuszy Physical Web, gdzie beacon przekazuje URL bez instalowania aplikacji. Do projektów międzyplatformowych często używany jest AltBeacon, obsługujący oba protokoły.

Typowe problemy i ograniczenia iBeacon

Przy wdrażaniu iBeacon programiści napotykają szereg ograniczeń, które należy uwzględnić na etapie projektowania architektury. Nieprawidłowe uwzględnienie tych czynników prowadzi do niestabilnej pracy nawigacji, fałszywych wyzwalaczy i szybszego niż przewidywano rozładowania baterii beaconów.

Wpływ środowiska na RSSI

Poziom sygnału RSSI podlega znacznym wahaniom z powodu odbić od ścian, metalowych konstrukcji, obecności ludzi i innych urządzeń bezprzewodowych w paśmie 2,4 GHz. W pomieszczeniu rozrzut RSSI dla jednego beaconu może osiągać 10-15 dBm na minutę, co powoduje niedokładne obliczanie odległości bez użycia filtrów (wygładzanie średnią ruchomą, filtracja Kalmana).

Limit monitorowania regionu

iOS obsługuje monitorowanie nie więcej niż 20 regionów jednocześnie na jedną aplikację. Dla projektów wymagających pokrycia dużego obszaru (lotnisko, stadion) to za mało. Rozwiązanie — dynamiczne przełączanie regionów: przy wejściu do jednego regionu aktywowane są sąsiednie, a odległe deaktywowane.

Czas odpowiedzi monitorowania

Opóźnienie między wejściem do regionu a otrzymaniem powiadomienia może wynosić od 1 do 30 sekund w zależności od warunków. iOS skanuje beacony okresowo w celu oszczędzania baterii, więc nie należy oczekiwać natychmiastowej reakcji. Dla scenariuszy krytycznych czasowo (otwieranie drzwi przy podejściu) zaleca się używanie Immediate ranging, ale działa ono tylko w aktywnym trybie aplikacji.

Często zadawane pytania

Co to jest iBeacon?

iBeacon — to protokół Apple dla beaconów Bluetooth Low Energy, umożliwiający urządzeniom iOS i Android określanie swojej lokalizacji wewnątrz pomieszczeń z dokładnością do centymetrów na podstawie analizy poziomu sygnału (RSSI) przesyłanych pakietów BLE.

Czym iBeacon różni się od Bluetooth?

Bluetooth — to ogólny protokół komunikacji bezprzewodowej do przesyłania danych między urządzeniami, wymagający parowania. iBeacon — to specjalistyczny protokół działający na bazie BLE, przeznaczony wyłącznie do rozgłaszania identyfikatorów bez nawiązywania połączenia. Beacony iBeacon nie przesyłają danych — tylko informują o swojej obecności.

Jak działa iBeacon bez połączenia?

iBeacon działa w trybie Advertising — beacon stale nadaje rozgłoszeniowe pakiety BLE z informacją ID. Urządzenie odbiera pakiet, ale nie łączy się z beaconem. Pozwala to oszczędzać baterię beaconu (do 2-3 lat pracy z jednej CR2032) i wykrywać beacony pasywnie bez aktywnego skanowania.

Czy można znaleźć iPhone przez iBeacon?

Nie, iBeacon nie jest przeznaczony do wyszukiwania urządzeń. Beacony iBeacon to stacjonarne nadajniki, a iPhone pełni rolę odbiornika. iPhone nie wysyła sygnałów iBeacon (z wyjątkiem funkcji Find My, która używa innego protokołu na bazie BLE). Do wyszukiwania telefonu używane są inne technologie (sieć Find My, UWB).

Jak daleko działa iBeacon?

Zasięg iBeacon zależy od ustawień beaconu i warunków środowiska. Typowy zasięg: Immediate — do 0,5 m, Near — do 3 m, Far — do 30-50 m. Przy użyciu beaconów ze wzmacniaczem sygnału i w otwartych przestrzeniach zasięg może sięgać 70 m, ale dokładność określania odległości na takim dystansie jest minimalna.

Podsumowanie

  • iBeacon — zastrzeżony protokół Apple dla beaconów BLE, działający na podstawie pakietów rozgłoszeniowych bez aktywnego parowania.
  • Pakiet iBeacon zawiera UUID (16 bajtów), Major (2 bajty) i Minor (2 bajty) oraz kalibracyjny TX Power.
  • iOS określa trzy strefy zbliżenia: Immediate (<0,5 m), Near (<3 m) i Far (<30-50 m), używając kategorii zamiast dokładnej odległości.
  • Monitorowanie regionu pozwala aplikacji otrzymywać powiadomienia o wejściu/wyjściu ze strefy beaconu nawet w tle (do 20 regionów).
  • Android obsługuje iBeacon przez bibliotekę AltBeacon z parsowaniem pakietów przez BeaconParser i ciąg layout.
  • Eddystone od Google — alternatywny otwarty protokół z obsługą URL i szyfrowanych identyfikatorów EID.
  • Główne ograniczenia iBeacon: niestabilność RSSI w pomieszczeniach, limit 20 regionów i opóźnienie monitorowania do 30 sekund.

Opracujemy aplikację mobilną pod klucz

IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.

Omów projekt

Przeczytaj również