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à 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).
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ở.
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.
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ường | Kích thước | Mô tả |
|---|---|---|
| Tiền tố Apple | 9 byte | Company ID (0x004C) + iBeacon type (0x0215) |
| UUID | 16 byte | Định danh duy nhất của tổ chức hoặc ứng dụng |
| Major | 2 byte | Định danh vùng (0-65535), ví dụ: số cửa hàng |
| Minor | 2 byte | Định danh điểm (0-65535), ví dụ: số kệ |
| TX Power | 1 byte | Cường độ tín hiệu hiệu chỉnh ở khoảng cách 1 mét (dBm) |
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.
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.
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 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.
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 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.
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.
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)
Để 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.
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")
}
}
}
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.
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)
Đị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.
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.
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ố | iBeacon | Eddystone |
|---|---|---|
| Chủ sở hữu | Apple | Google (mở) |
| Loại gói | 1 (UID) | 4 (UID, URL, TLM, EID) |
| Dữ liệu | UUID+Major+Minor | ID/URL + đo xa |
| Hỗ trợ iOS gốc | Có (CoreLocation) | Không (qua CoreBluetooth) |
| Physical Web | Không | Có (Eddystone-URL) |
| Bảo mật | Không mã hóa | EID với luân chuyển khóa |
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.
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.
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).
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.
Độ 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à 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.
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 ở 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.
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).
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
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.
Đọc thêm