آموزش جامع BLE

نقش‌های BLE در GAP: Peripheral، Central، Broadcaster و Observer

چه کسی تبلیغ می‌کند، چه کسی اسکن می‌کند و نقش Central و Peripheral در سناریوهای گوشی، سنسور، دو ESP32 و Beacon چیست؟

فهرست مطالب
نمای واقعی ماژول ESP-WROOM-32 و آنتن چاپی آن روی برد توسعه.
نمای واقعی ماژول ESP-WROOM-32 و آنتن چاپی آن روی برد توسعه. عکس: Brian Krent؛ منبع Wikimedia Commons؛ CC BY-SA 4.0. محتوای عکس تغییر نکرده است؛ نسخهٔ نمایشی ویکی‌مدیا استفاده شده است. این عکس مستند اجرای آزمایش LCENJ نیست.
مرحله 5 از ۲۰ مسیر تسلط بر BLE

واژه‌های Central و Peripheral درباره نقش ارتباط هستند، نه قدرت سخت‌افزار. گوشی معمولاً Central و سنسور Peripheral است، اما همان ESP32 می‌تواند در پروژه‌ای دیگر نقش Central بگیرد. با شناخت نقش‌ها، مسیر API و مسئولیت هر طرف روشن می‌شود.

Peripheral و Central

Peripheral معمولاً Advertising می‌کند و داده یا سرویس را ارائه می‌دهد. Central اسکن می‌کند، دستگاه مناسب را پیدا می‌کند و اتصال را آغاز می‌کند. پس از اتصال، نقش Link Layer با نقش GATT Client و Server یکی نیست؛ غالباً Central کلاینت است اما این الزام مطلق نیست.

Broadcaster و Observer

Broadcaster داده را بدون نیاز به اتصال پخش می‌کند؛ Beacon نمونه رایج آن است. Observer فقط Advertising را دریافت و تحلیل می‌کند و لزوماً اتصال نمی‌سازد. این دو نقش برای تله‌متری ساده، حضورسنجی و اسکن محیط کم‌هزینه‌اند.

گوشی و سنسور

در یک دماسنج، سنسور Advertising می‌کند، گوشی آن را اسکن و متصل می‌شود، سپس سرویس‌ها را کشف می‌کند. اگر گوشی Notify را فعال کند، سنسور با تغییر دما مقدار جدید می‌فرستد. مسئول شروع اتصال گوشی است ولی داده کاربردی را سنسور تولید می‌کند.

دو ESP32 و چند نقش

یک ESP32-C3 می‌تواند Peripheral باشد و داده SHT31 را ارائه کند؛ ESP32 دوم Central باشد و آن را روی نمایشگر نشان دهد. برخی تراشه‌ها چند اتصال یا چند نقش هم‌زمان را پشتیبانی می‌کنند، اما RAM، زمان رادیو و پیچیدگی مدیریت وضعیت افزایش می‌یابد.

تمرین تعیین نقش

برای سه سناریوی «Beacon فروشگاه»، «قفل هوشمند با موبایل» و «Gateway که ده سنسور را می‌خواند» نقش هر دستگاه را بنویسید. سپس جداگانه مشخص کنید کدام طرف GATT Server و کدام طرف GATT Client است.

دو نقش مستقل را در یک جدول ببینید

دستگاه در مثال دماسنجنقش GAPنقش رایج GATT
گوشیCentral؛ اتصال را آغاز می‌کندClient؛ سرویس را کشف و داده را درخواست می‌کند
برد حسگرPeripheral؛ اتصال تبلیغ‌شده را می‌پذیردServer؛ جدول Attribute را ارائه می‌کند

این چیدمان رایج است، اما قانون «Central همیشه Client است» وجود ندارد. نقش GAP مربوط به کشف و اتصال است؛ نقش GATT به ارائه یا مصرف Attributeها مربوط می‌شود. یک دستگاه می‌تواند در صورت پشتیبانی پشته، در هر دو جهت GATT کار کند.

Beacon غیرقابل‌اتصال را هم با GATT Server متصل یکی نگیرید: دریافت Advertising برای Observer به معنی تشکیل اتصال یا کشف سرویس نیست.

پرسش و پاسخ مقاله

سوال فنی خود را مطرح کنید

پرسش‌ها و پاسخ‌ها پس از بررسی مدیر منتشر می‌شوند. نویسنده، پیش‌نویس در انتظار بررسی را می‌بیند.

هنوز پرسش تاییدشده‌ای برای این مقاله ثبت نشده است.