iBeacon: چیست،原理 کار بیکن‌ها و تنظیم BLE

نویسنده: IT Sectr منتشر شده: 2026-07-17 زمان مطالعه: 10 دقیقه

iBeacon — پروتکل اختصاصی اپل برای بیکن‌های Bluetooth Low Energy است که به دستگاه‌های iOS امکان می‌دهد موقعیت خود را در داخل فضاهای بسته با دقت سانتی‌متر تعیین کنند. اساس پروتکل پخش بسته‌های BLE با شناسه یکتای حاوی UUID، Major و Minor است. طبق Apple iBeacon Design Guidelines (2025)، این فناوری در ناوبری در مراکز خرید، موزه‌ها، فرودگاه‌ها و استادیوم‌ها استفاده می‌شود و از تشخیص غیرفعال بدون جفت‌سازی فعال پشتیبانی می‌کند.

نکات کلیدی

  • iBeacon — پروتکل اختصاصی اپل برای بیکن‌های BLE که بدون جفت‌سازی فعال کار می‌کند.
  • بسته iBeacon شامل سه شناسه است: UUID (شناسه یکتای سازمان)، Major و Minor (مناطق و نقاط).
  • iOS سه حالت را بر اساس RSSI تعیین می‌کند: Immediate (<0.5 m)، Near (<3 m) و Far (<30-50 m).
  • نظارت بر منطقه (region monitoring) به برنامه اجازه می‌دهد حتی در پس‌زمینه اعلان‌های ورود و خروج از محدوده بیکن را دریافت کند.
  • Android از iBeacon از طریق کتابخانه‌های شخص ثالث مانند AltBeacon از Radius Networks برای سازگاری بین پلتفرمی پشتیبانی می‌کند.

iBeacon چیست؟

iBeacon — فناوری موقعیت‌یابی داخلی است که توسط اپل توسعه یافته و در WWDC 2013 معرفی شده است. برخلاف GPS که در داخل ساختمان‌ها کار نمی‌کند، iBeacon از بیکن‌های Bluetooth Low Energy استفاده می‌کند — دستگاه‌های کوچک با باتری که بسته‌های شناسایی ثابت ارسال می‌کنند. دستگاه‌های iOS و Android این بسته‌ها را دریافت کرده و فاصله تقریبی تا بیکن را بر اساس سطح سیگنال (RSSI) محاسبه می‌کنند.

تاریخچه و توسعه

پروتکل iBeacon اولین استاندارد انبوه بیکن‌های BLE شد که توسط اپل در سال 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)، UUID 16 بایتی، مقادیر Major 2 بایتی و Minor 2 بایتی، و TX Power 1 بایتی برای کالیبراسیون فاصله. اندازه کل داده 30 بایت است که در یک BLE Advertising PDU جای می‌گیرد.

فیلداندازهتوضیحات
پیشوند اپل9 بایت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 متر ایجاد می‌کند.

مناطق proximity: Immediate, Near, Far

iOS سه منطقه proximity را بر اساس فاصله محاسبه شده تا بیکن تعیین می‌کند: 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 فراهم می‌کند. هنگام ورود به منطقه، سیستم برنامه را حتی در پس‌زمینه یا حالت بسته بیدار کرده و از طریق delegate 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 ندارد، زیرا پروتکل یک راه‌حل اختصاصی اپل است. با این حال، با استفاده از کتابخانه‌های شخص ثالث مانند AltBeacon از Radius Networks (اکنون بخشی از سازمان Open Beacon)، توسعه‌دهندگان می‌توانند iBeacon را در برنامه‌های Android ادغام کنند. کتابخانه AltBeacon اسکن بسته‌های BLE، تجزیه فرمت iBeacon و شبیه‌سازی ranging و نظارت بر منطقه مشابه 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)

تجزیه بسته iBeacon در Android

فرمت تجزیه iBeacon در کتابخانه AltBeacon توسط رشته layout تعریف می‌شود: «m:2-3=0215» — بررسی دو بایت نشانگر iBeacon، «i:4-19» — UUID 16 بایتی، «i:20-21» — Major، «i:22-23» — Minor، «p:24-24» — TX Power. همین فرمت برای Eddystone و سایر پروتکل‌ها نیز پشتیبانی می‌شود که AltBeacon را به کتابخانه‌ای جهانی برای کار با بیکن‌های BLE در Android تبدیل می‌کند.

محدودیت‌ها در Android

در Android کار با iBeacon سه محدودیت کلیدی دارد: اسکن پس‌زمینه توسط تولیدکنندگان محدود می‌شود (Xiaomi، Huawei، Samsung اغلب فرآیندهای پس‌زمینه را می‌کشند)، دقت RSSI به دلیل تفاوت در پشته‌های BLE کمتر از iOS است و برای اسکن از Android 6.0 به ACCESS_FINE_LOCATION و از Android 12 به BLUETOOTH_SCAN نیاز است.

مقایسه 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 به دلیل یکپارچه‌سازی بومی با CoreLocation و نظارت بر منطقه در پس‌زمینه برای برنامه‌های iOS ترجیح داده می‌شود. Eddystone برای پروژه‌های Android محور و سناریوهای Physical Web که بیکن URL را بدون نصب برنامه ارسال می‌کند مناسب‌تر است. برای پروژه‌های بین پلتفرمی اغلب از AltBeacon استفاده می‌شود که از هر دو پروتکل پشتیبانی می‌کند.

مشکلات رایج و محدودیت‌های iBeacon

در هنگام پیاده‌سازی iBeacon، توسعه‌دهندگان با مجموعه‌ای از محدودیت‌ها مواجه می‌شوند که باید در مرحله طراحی معماری در نظر گرفته شوند. عدم توجه صحیح به این عوامل منجر به عملکرد ناپایدار ناوبری، فعال‌سازی‌های نادرست و تخلیه سریع‌تر از حد انتظار باتری بیکن‌ها می‌شود.

تأثیر محیط بر RSSI

سطح سیگنال RSSI به دلیل انعکاس از دیوارها، سازه‌های فلزی، حضور افراد و سایر دستگاه‌های بی‌سیم در باند 2.4 گیگاهرتز نوسانات قابل توجهی دارد. در یک فضای بسته، پراکندگی RSSI برای یک بیکن می‌تواند در دقیقه به 10-15 dBm برسد که محاسبه فاصله را بدون استفاده از فیلترها (میانگین متحرک هموارسازی، فیلتر کالمن) نادقیق می‌کند.

محدودیت نظارت بر منطقه

iOS از نظارت بر حداکثر 20 منطقه به طور همزمان برای یک برنامه پشتیبانی می‌کند. برای پروژه‌هایی که نیاز به پوشش منطقه وسیع دارند (فرودگاه، استادیوم) این کافی نیست. راه‌حل — جابه‌جایی پویای مناطق: هنگام ورود به یک منطقه، مناطق مجاور فعال و مناطق دور غیرفعال می‌شوند.

زمان پاسخ نظارت

تأخیر بین ورود به منطقه و دریافت اعلان بسته به شرایط می‌تواند از 1 تا 30 ثانیه باشد. iOS برای صرفه‌جویی در باتری به صورت دوره‌ای بیکن‌ها را اسکن می‌کند، بنابراین نباید انتظار واکنش فوری داشت. برای سناریوهای حساس به زمان (باز کردن در هنگام نزدیک شدن) استفاده از Immediate ranging توصیه می‌شود، اما این فقط در حالت فعال برنامه کار می‌کند.

سوالات متداول

iBeacon چیست؟

iBeacon — پروتکل اپل برای بیکن‌های 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 متر، Near — تا 3 متر، Far — تا 30-50 متر. با استفاده از بیکن‌های تقویت‌کننده سیگنال و در فضاهای باز، برد می‌تواند به 70 متر برسد، اما دقت تعیین فاصله در چنین مسافتی حداقل است.

خلاصه

  • iBeacon — پروتکل اختصاصی اپل برای بیکن‌های BLE که بر اساس بسته‌های پخشی بدون جفت‌سازی فعال کار می‌کند.
  • بسته iBeacon شامل UUID (16 بایت)، Major (2 بایت) و Minor (2 بایت) به همراه TX Power کالیبراسیون است.
  • iOS سه منطقه proximity را تعیین می‌کند: 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 از سال 2017 برنامه‌های iOS و Android را برای استارتاپ‌ها و کسب‌وکارها ایجاد می‌کند. ما به شما مشاوره می‌دهیم و بهترین راه‌حل را پیشنهاد خواهیم کرد.

بحث درباره پروژه

همچنین بخوانید