iBeacon: khái niệm, nguyên lý hoạt động của beacon và cấu hình BLE

Tác giả: IT Sectr Đã đăng: 2026-07-17 Thời gian đọc: 10 phút

iBeacon là giao thức độc quyền của Apple dành cho các beacon Bluetooth Low Energy, cho phép thiết bị iOS xác định vị trí trong nhà với độ chính xác đến centimet. Giao thức dựa trên việc phát quảng bá các gói BLE với định danh duy nhất chứa các giá trị UUID, Major và Minor. Theo Apple iBeacon Design Guidelines (2025), công nghệ này được sử dụng trong điều hướng tại trung tâm thương mại, bảo tàng, sân bay và sân vận động, hỗ trợ phát hiện thụ động mà không cần ghép nối thiết bị chủ động.

Điểm chính

  • iBeacon là giao thức độc quyền của Apple cho beacon BLE, hoạt động mà không cần ghép nối thiết bị chủ động.
  • Gói iBeacon chứa ba định danh: UUID (định danh duy nhất của tổ chức), Major và Minor (vùng và điểm).
  • iOS xác định ba trạng thái: Immediate (<0,5 m), Near (<3 m) và Far (<30-50 m) dựa trên RSSI.
  • Giám sát vùng (region monitoring) cho phép ứng dụng nhận thông báo khi vào và ra khỏi vùng beacon ngay cả ở chế độ nền.
  • Android hỗ trợ iBeacon thông qua các thư viện bên thứ ba như AltBeacon của Radius Networks để tương thích đa nền tảng.

iBeacon là gì?

iBeacon là công nghệ định vị trong nhà do Apple phát triển và được giới thiệu tại WWDC 2013. Không giống GPS không hoạt động trong các tòa nhà, iBeacon sử dụng các beacon Bluetooth Low Energy — thiết bị nhỏ chạy bằng pin truyền các gói nhận dạng cố định. Thiết bị iOS và Android nhận các gói này và tính toán khoảng cách gần đúng đến beacon dựa trên mức tín hiệu (RSSI).

Lịch sử và phát triển

Giao thức iBeacon trở thành tiêu chuẩn đại chúng đầu tiên cho beacon BLE, được Apple ra mắt năm 2013 trong iOS 7. Ban đầu, công nghệ này được sử dụng trong bán lẻ: Apple Store áp dụng iBeacon để thông báo giảm giá cho khách hàng khi họ vào các khu vực nhất định. Đến năm 2025, cơ sở hạ tầng iBeacon bao gồm hàng triệu beacon được lắp đặt trên toàn thế giới, mặc dù các giao thức thay thế đã xuất hiện — Eddystone của Google và AltBeacon mã nguồn mở.

Lĩnh vực ứng dụng

iBeacon được sử dụng trong năm kịch bản chính: điều hướng trong nhà (trung tâm thương mại, sân bay, bảo tàng), thông báo theo ngữ cảnh (giảm giá khi vào cửa hàng), tự động hóa quy trình làm việc (đánh dấu hiện diện), hậu cần và quản lý kho, cũng như hướng dẫn du lịch tự động phát nội dung khi đến gần đối tượng. Theo ABI Research (2025), thị trường beacon BLE được ước tính đạt 3,2 tỷ thiết bị đang hoạt động.

Cấu trúc giao thức iBeacon và định dạng gói

Gói iBeacon là Advertising PDU (đơn vị dữ liệu giao thức), được truyền trong kênh quảng cáo BLE ở tần số 2402, 2426 và 2480 MHz. Định dạng gói được cố định chặt chẽ và bao gồm bốn trường: tiền tố Apple iBeacon (0x4C000215), UUID 16 byte, Major 2 byte và Minor 2 byte, cùng với TX Power 1 byte để hiệu chỉnh khoảng cách. Tổng kích thước dữ liệu là 30 byte, vừa trong một BLE Advertising PDU.

TrườngKích thướcMô tả
Tiền tố Apple9 byteCompany ID (0x004C) + iBeacon type (0x0215)
UUID16 byteĐịnh danh duy nhất của tổ chức hoặc ứng dụng
Major2 byteĐịnh danh vùng (0-65535), ví dụ: số cửa hàng
Minor2 byteĐịnh danh điểm (0-65535), ví dụ: số kệ
TX Power1 byteCường độ tín hiệu hiệu chỉnh ở khoảng cách 1 mét (dBm)

Phân cấp UUID, Major và Minor

Các định danh iBeacon tạo thành hệ thống phân cấp ba cấp. UUID được gán cho tổ chức (ví dụ: chuỗi cửa hàng), Major cho cửa hàng hoặc tầng cụ thể, Minor cho điểm cụ thể trong vùng (khu vực thu ngân, bộ phận sản phẩm). Hệ thống phân cấp này cho phép ứng dụng phản ứng linh hoạt với các cấp độ ngữ cảnh khác nhau: khi vào cửa hàng (UUID + Major), ứng dụng có thể tải bản đồ tầng và khi đến gần một bộ phận cụ thể (Minor), hiển thị thông tin sản phẩm.

TX Power và hiệu chỉnh

Trường TX Power là giá trị tham chiếu của mức tín hiệu (RSSI) ở khoảng cách 1 mét từ beacon. Khi nhận gói, thiết bị ghi lại RSSI thực tế và tính toán khoảng cách theo công thức: distance = 10^((TX_Power - RSSI) / (10 * n)), trong đó n là hệ số suy hao môi trường (thường là 2-4). Hiệu chỉnh TX Power đúng cách là rất quan trọng đối với độ chính xác định vị: sai sót 1 dBm gây ra độ không chính xác lên đến 30% ở khoảng cách 5 mét.

Vùng lân cận: Immediate, Near, Far

iOS xác định ba vùng lân cận dựa trên khoảng cách tính toán đến beacon: Immediate (dưới 0,5 mét), Near (0,5 đến 3 mét) và Far (3 đến 30-50 mét tùy điều kiện). Khoảng cách chính xác không được báo cáo — chỉ có phân loại. Điều này được thực hiện có chủ đích: RSSI dễ bị nhiễu, phản xạ tín hiệu và ảnh hưởng của cơ thể con người, do đó phân loại cung cấp khả năng xác định vị trí ổn định hơn.

Immediate — tiếp xúc trực tiếp

Immediate là vùng tiếp xúc trực tiếp, khi thiết bị ở cách beacon vài centimet. Được sử dụng trong các tình huống yêu cầu độ chính xác tối đa: thanh toán qua thiết bị đầu cuối, mở khóa kỹ thuật số, xác thực tại trạm kiểm soát. Trong vùng Immediate, RSSI thường từ -30 đến -60 dBm.

Near — khoảng cách trung bình

Vùng Near là vùng làm việc chính của iBeacon, bao phủ khoảng cách từ 0,5 đến 3 mét. Được sử dụng cho điều hướng trong nhà — ví dụ, khi đến gần tủ trưng bày sản phẩm, ứng dụng hiển thị thông tin chi tiết. Trong vùng Near, RSSI dao động từ -60 đến -80 dBm với hiệu chỉnh TX Power = -59 dBm.

Far — khoảng cách xa

Far là vùng phát hiện tín hiệu beacon tối đa. Được sử dụng cho giám sát lối vào vùng (ví dụ: vào trung tâm thương mại). Ở khoảng cách Far, RSSI thường yếu hơn -80 dBm và độ chính xác xác định khoảng cách giảm đáng kể. Để giám sát lối vào, các API hệ thống region monitoring được sử dụng thay vì xác định vùng chính xác.

Giám sát vùng trên iOS

Vùng iBeacon là khu vực ảo được xác định bởi UUID (và tùy chọn Major + Minor). iOS cho phép giám sát tối đa 20 vùng cùng lúc thông qua CLLocationManager. Khi vào vùng, hệ thống đánh thức ứng dụng ngay cả ở chế độ nền hoặc đã tắt và gửi thông báo qua delegate locationManager:didEnterRegion. Khi ra khỏi vùng, locationManager:didExitRegion được gọi.

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 — xác định vùng chính xác

Để xác định vùng (Immediate, Near, Far), ranging được sử dụng — quét beacon theo thời gian thực. Không giống giám sát, ranging chỉ hoạt động ở chế độ hoạt động của ứng dụng và yêu cầu quyền truy cập vị trí. Phương thức locationManager:didRangeBeacons:inRegion trả về mảng CLBeacon với các trường proximity (CLProximity.immediate, .near, .far, .unknown), accuracy (khoảng cách đã hiệu chỉnh tính bằng mét) và rssi.

swift
func locationManager(
    _ manager: CLLocationManager,
    didRangeBeacons beacons: [CLBeacon],
    in region: CLBeaconRegion
) {
    for beacon in beacons {
        switch beacon.proximity {
        case .immediate:
            print("Tiếp xúc ngay lập tức")
        case .near:
            print("Tiếp xúc gần")
        case .far:
            print("Tiếp xúc xa")
        default:
            print("Tiếp xúc không xác định")
        }
    }
}

iBeacon trên Android: AltBeacon và tích hợp đa nền tảng

Android không có hỗ trợ iBeacon tích hợp sẵn vì giao thức là giải pháp độc quyền của Apple. Tuy nhiên, với các thư viện bên thứ ba như AltBeacon của Radius Networks (nay thuộc tổ chức Open Beacon), nhà phát triển có thể tích hợp iBeacon vào ứng dụng Android. Thư viện AltBeacon triển khai quét gói BLE, phân tích định dạng iBeacon và mô phỏng ranging và giám sát vùng tương tự 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)

Phân tích gói iBeacon trên Android

Định dạng phân tích iBeacon trong thư viện AltBeacon được xác định bởi chuỗi layout: “m:2-3=0215” — kiểm tra hai byte của bộ đánh dấu iBeacon, “i:4-19” — UUID 16 byte, “i:20-21” — Major, “i:22-23” — Minor, “p:24-24” — TX Power. Định dạng tương tự cũng được hỗ trợ cho Eddystone và các giao thức khác, khiến AltBeacon trở thành thư viện phổ quát để làm việc với beacon BLE trên Android.

Hạn chế trên Android

Trên Android, làm việc với iBeacon có ba hạn chế chính: quét nền bị giới hạn bởi các nhà sản xuất (Xiaomi, Huawei, Samsung thường tắt tiến trình nền), độ chính xác RSSI thấp hơn iOS do sự khác biệt trong ngăn xếp BLE, và yêu cầu quyền ACCESS_FINE_LOCATION từ Android 6.0 và BLUETOOTH_SCAN từ Android 12.

iBeacon vs Eddystone: so sánh giao thức beacon

Eddystone là giao thức beacon BLE mở của Google, được giới thiệu vào năm 2015. Không giống iBeacon, Eddystone hỗ trợ bốn loại gói: Eddystone-UID (định danh cố định), Eddystone-URL (truyền URL cho Physical Web), Eddystone-TLM (đo xa beacon — mức pin, nhiệt độ) và Eddystone-EID (định danh mã hóa để bảo vệ khỏi sao chép). Mặc dù Google đã ngừng phát triển Physical Web vào năm 2022, giao thức Eddystone vẫn được sử dụng trong các giải pháp doanh nghiệp.

Tham sốiBeaconEddystone
Chủ sở hữuAppleGoogle (mở)
Loại gói1 (UID)4 (UID, URL, TLM, EID)
Dữ liệuUUID+Major+MinorID/URL + đo xa
Hỗ trợ iOS gốcCó (CoreLocation)Không (qua CoreBluetooth)
Physical WebKhôngCó (Eddystone-URL)
Bảo mậtKhông mã hóaEID với luân chuyển khóa

Lựa chọn giao thức cho dự án

Việc lựa chọn giữa iBeacon và Eddystone phụ thuộc vào nền tảng mục tiêu và kịch bản sử dụng. iBeacon ưu tiên cho ứng dụng iOS nhờ tích hợp gốc với CoreLocation và giám sát vùng ở chế độ nền. Eddystone phù hợp hơn cho các dự án hướng Android và các kịch bản Physical Web, nơi beacon truyền URL mà không cần cài đặt ứng dụng. Đối với các dự án đa nền tảng, AltBeacon thường được sử dụng vì hỗ trợ cả hai giao thức.

Các vấn đề và hạn chế thường gặp của iBeacon

Khi triển khai iBeacon, nhà phát triển gặp phải một số hạn chế cần được xem xét ở giai đoạn thiết kế kiến trúc. Việc đánh giá sai các yếu tố này dẫn đến điều hướng không ổn định, kích hoạt sai và pin beacon cạn nhanh hơn dự kiến.

Ảnh hưởng của môi trường lên RSSI

Mức tín hiệu RSSI chịu sự dao động đáng kể do phản xạ từ tường, kết cấu kim loại, sự hiện diện của con người và các thiết bị không dây khác trong băng tần 2.4 GHz. Trong nhà, độ biến thiên RSSI cho cùng một beacon có thể lên đến 10-15 dBm mỗi phút, khiến việc tính toán khoảng cách không chính xác nếu không sử dụng bộ lọc (trung bình trượt, lọc Kalman).

Giới hạn giám sát vùng

iOS hỗ trợ giám sát tối đa 20 vùng cùng lúc cho một ứng dụng. Đối với các dự án yêu cầu bao phủ diện tích lớn (sân bay, sân vận động), điều này không đủ. Giải pháp là sử dụng chuyển đổi vùng động: khi vào một vùng, các vùng lân cận được kích hoạt và các vùng xa bị vô hiệu hóa.

Thời gian phản hồi giám sát

Độ trễ giữa khi vào vùng và nhận được thông báo có thể từ 1 đến 30 giây tùy điều kiện. iOS quét beacon định kỳ để tiết kiệm pin, do đó không nên mong đợi phản ứng tức thời. Đối với các kịch bản nhạy cảm về thời gian (mở cửa khi đến gần), nên sử dụng Immediate ranging, nhưng nó chỉ hoạt động ở chế độ hoạt động của ứng dụng.

Câu hỏi thường gặp

iBeacon là gì?

iBeacon là giao thức của Apple dành cho beacon Bluetooth Low Energy, cho phép thiết bị iOS và Android xác định vị trí trong nhà với độ chính xác đến centimet dựa trên phân tích mức tín hiệu (RSSI) của các gói BLE được truyền.

iBeacon khác Bluetooth như thế nào?

Bluetooth là giao thức giao tiếp không dây tổng quát để truyền dữ liệu giữa các thiết bị, yêu cầu ghép nối. iBeacon là giao thức chuyên dụng trên BLE, được thiết kế chỉ dành cho việc truyền quảng bá các định danh mà không thiết lập kết nối. Các beacon iBeacon không truyền dữ liệu — chúng chỉ thông báo sự hiện diện của mình.

iBeacon hoạt động như thế nào mà không cần kết nối?

iBeacon hoạt động ở chế độ Advertising — beacon liên tục truyền các gói BLE quảng bá với thông tin ID. Thiết bị nhận gói nhưng không kết nối với beacon. Điều này cho phép tiết kiệm pin beacon (lên đến 2-3 năm với một pin CR2032) và phát hiện beacon thụ động mà không cần quét chủ động.

Có thể tìm iPhone bằng iBeacon không?

Không, iBeacon không được thiết kế để tìm thiết bị. Beacon iBeacon là các bộ phát cố định, còn iPhone hoạt động như bộ thu. iPhone không truyền tín hiệu iBeacon (ngoại trừ chức năng Find My sử dụng giao thức khác dựa trên BLE). Để tìm điện thoại, các công nghệ khác được sử dụng (mạng Find My, UWB).

iBeacon hoạt động ở khoảng cách bao xa?

Phạm vi hoạt động của iBeacon phụ thuộc vào cài đặt beacon và điều kiện môi trường. Phạm vi điển hình: Immediate — lên đến 0,5 m, Near — lên đến 3 m, Far — lên đến 30-50 m. Với beacon có bộ khuếch đại tín hiệu và trong không gian mở, phạm vi có thể đạt 70 m, nhưng độ chính xác xác định khoảng cách ở khoảng cách này là tối thiểu.

Tổng kết

  • iBeacon là giao thức độc quyền của Apple cho beacon BLE, hoạt động dựa trên các gói quảng bá mà không cần ghép nối chủ động.
  • Gói iBeacon chứa UUID (16 byte), Major (2 byte) và Minor (2 byte), cùng với TX Power hiệu chỉnh.
  • iOS xác định ba vùng lân cận: Immediate (<0,5 m), Near (<3 m) và Far (<30-50 m), sử dụng phân loại thay vì khoảng cách chính xác.
  • Giám sát vùng cho phép ứng dụng nhận thông báo vào/ra khỏi vùng beacon ngay cả ở chế độ nền (tối đa 20 vùng).
  • Android hỗ trợ iBeacon thông qua thư viện AltBeacon với phân tích gói qua BeaconParser và chuỗi layout.
  • Eddystone của Google là giao thức mở thay thế hỗ trợ URL và định danh mã hóa EID.
  • Các hạn chế chính của iBeacon: RSSI không ổn định trong nhà, giới hạn 20 vùng và độ trễ giám sát lên đến 30 giây.

Chúng tôi sẽ phát triển ứng dụng di động chìa khóa trao tay

IT Sectr tạo các ứng dụng iOS và Android cho các công ty khởi nghiệp và doanh nghiệp từ năm 2017. Chúng tôi sẽ tư vấn và đề xuất giải pháp tốt nhất cho bạn.

Thảo luận dự án

Đọc thêm