Central — ما هو، دوره في BLE وكيف يمسح الأجهزة

المؤلف: IT Sectr نُشر: 2026-07-15 وقت القراءة: 8 دق

Central هو جهاز في بنية Bluetooth Low Energy يبدأ المسح، ويؤسس اتصالاً، ويدير تبادل البيانات مع الأجهزة الطرفية. في سياق تطوير الأجهزة المحمولة، Central هو هاتف ذكي أو جهاز لوحي يعمل بنظام iOS أو Android يتصل بأجهزة استشعار BLE وأجهزة تتبع اللياقة البدنية والإكسسوارات الذكية. وفقاً لـ Bluetooth Core Specification 5.4 (2023)، يمكن لـ Central دعم ما يصل إلى 7 اتصالات متزامنة مع أجهزة Peripheral مختلفة، على الرغم من أن الحد الفعلي يعتمد على الشركة المصنعة للشريحة وإصدار نظام التشغيل. يوفر Core Bluetooth على iOS و android.bluetooth.le على Android واجهة برمجة تطبيقات كاملة لإدارة دور Central.

الخلاصة

  • Central هو جهاز BLE نشط يقوم بالمسح والاتصال وإدارة التبادل مع الأجهزة الطرفية.
  • يتم المسح من خلال حزم الإعلان — يمكن لـ Central تصفية الأجهزة حسب UUID الخدمة لتوفير الطاقة.
  • يمكن لـ Central واحد دعم ما يصل إلى 7 اتصالات مع أجهزة Peripheral مختلفة (حسب التنفيذ).
  • في تطوير الأجهزة المحمولة، Central هو هاتف ذكي يستخدم Core Bluetooth (iOS) أو android.bluetooth.le (Android).
  • يستهلك دور Central طاقة أكبر من Peripheral بسبب المسح المستمر ومعالجة البيانات.

ما هو Central في BLE؟

Central هو عميل GATT في بنية Bluetooth Low Energy الذي يبدأ جميع الاتصالات. على عكس Peripheral الذي ينتظر الاتصالات بشكل سلبي ويعلن عن خدماته، يقوم Central بمسح الأثير بنشاط واكتشاف حزم الإعلان وبدء الاتصالات.

النموذج غير المتماثل Central-Peripheral هو سمة أساسية لـ BLE. يدير Central منطق التفاعل: يقرر أي جهاز يتصل به، وأي الخدمات يستكشف، وأي الخصائص يقرأ ويكتب. Peripheral يعمل كخادم بيانات — يخزن الخدمات والخصائص لكنه لا يبدأ الاتصالات.

وفقاً Bluetooth Core Specification 5.4 (2023)، يمكن للجهاز أن يكون Central و Peripheral في نفس الوقت (دور مزدوج). على سبيل المثال، يمكن للهاتف الذكي أن يكون Central لسوار اللياقة البدنية و Peripheral لهاتف ذكي آخر ينقل الملفات. ومع ذلك، فإن التشغيل المتزامن في كلا الدورين يزيد من استهلاك الطاقة وتعقيد إدارة الاتصالات.

في نظام تطوير الأجهزة المحمولة، دور Central هو السيناريو الأكثر شيوعاً. تطبيق على الهاتف الذكي يبحث عن أجهزة BLE (أجهزة استشعار، سماعات، أساور)، يتصل بها ويستقبل البيانات. يستخدم المطور واجهة برمجة تطبيقات نظام التشغيل للعمل مع Central: CBCentralManager على iOS، BluetoothLeScanner و BluetoothGatt على Android.

عملية مسح الأجهزة

المسح هو المرحلة الأولى من عمل Central. يستمع الجهاز على قنوات الراديو BLE (37، 38، 39) لاكتشاف حزم الإعلان التي ترسلها الأجهزة الطرفية بشكل دوري. تحتوي كل حزمة إعلان على اسم الجهاز وقائمة UUIDات الخدمة والبيانات المخصصة.

يمكن لـ Central العمل في وضعي مسح: المسح السلبي (استقبال حزم الإعلان فقط) والمسح النشط (إرسال طلب مسح للحصول على بيانات إضافية عبر استجابة المسح). المسح السلبي يوفر الطاقة لكنه يعطي معلومات أقل. المسح النشط يسمح بالحصول على بيانات كاملة لحزمة الإعلان، بما في ذلك اسم الجهاز وقائمة الخدمات الكاملة.

التصفية بواسطة UUID هي تحسين مهم. يمكن لـ Central مسح الأجهزة ذات UUID خدمة محدد فقط، متجاهلاً الباقي. هذا لا يوفر الطاقة فحسب، بل يبسط أيضاً منطق التطبيق: يتلقى المفوض الأجهزة ذات الصلة فقط.

swift
import CoreBluetooth

class BLECentralManager: NSObject, CBCentralManagerDelegate {

    private var centralManager: CBCentralManager!

    override init() {
        super.init()
        centralManager = CBCentralManager(
            delegate: self,
            queue: nil
        )
    }

    func centralManagerDidUpdateState(_ central: CBCentralManager) {
        if central.state == .poweredOn {
            central.scanForPeripherals(
                withServices: nil,
                options: [
                    CBCentralManagerScanOptionAllowDuplicatesKey: false
                ]
            )
        }
    }
}

إدارة الاتصالات

إدارة الاتصالات هي المسؤولية الرئيسية لـ Central. بعد اكتشاف Peripheral مناسب، يبدأ Central اتصالاً. يتم إنشاء اتصال BLE من خلال إجراء إنشاء الاتصال الذي يتضمن تبادل المعلمات: فاصل الاتصال، وزمن استجابة التابع، ومهلة الإشراف.

يحدد فاصل الاتصال مدى تكرار تبادل البيانات بين Central و Peripheral بعد الاتصال. يمكن أن يتراوح الفاصل من 7.5 مللي ثانية إلى 4 ثوانٍ. كلما كان الفاصل أقصر، زادت الإنتاجية، ولكن زاد استهلاك الطاقة أيضاً. زمن استجابة التابع يسمح لـ Peripheral بتخطي عدة أحداث اتصال لتوفير الطاقة. مهلة الإشراف هي أقصى وقت دون استجابة وبعدها يعتبر الاتصال مفقوداً.

Central مسؤول عن إنهاء الاتصال بعد اكتمال تبادل البيانات. عادة لا تحافظ أجهزة BLE على اتصال دائم — يتصل Central ويحصل على البيانات وينقطع. هذا نمط قياسي لأجهزة استشعار إنترنت الأشياء: يمسح Central ويجد مستشعر درجة حرارة ويتصل ويقرأ القيمة وينقطع.

المعلمةالنطاقالغرضالتوصية
فاصل الاتصال7.5 مللي ثانية – 4 ثوانٍتردد تبادل البيانات30–50 مللي ثانية للبث، 1–4 ثوانٍ للبيانات النادرة
زمن استجابة التابع0–499 حدثاًتخطي أحداث Peripheral4–10 لتوفير طاقة المستشعر
مهلة الإشراف100 مللي ثانية – 32 ثانيةمهلة فقدان الاتصال6–10 ثوانٍ لمعظم السيناريوهات
MTU23–517 بايتحجم حزمة ATTطلب الحد الأقصى عند الاتصال

Central على iOS: Core Bluetooth

Core Bluetooth هو إطار عمل Apple للعمل مع BLE على iOS و macOS. توفر فئة CBCentralManager واجهة برمجة تطبيقات كاملة لتنفيذ دور Central: المسح والاتصال وإدارة الاتصالات. يعتمد العمل مع Central على iOS على نموذج المفوض: يتلقى CBCentralManagerDelegate أحداث تغيير الحالة واكتشاف الأجهزة ونتائج الاتصال.

الخطوات الرئيسية لـ Central على iOS: تهيئة CBCentralManager، التحقق من حالة Bluetooth، بدء المسح، معالجة الأجهزة المكتشفة عبر المفوض، الاتصال بـ Peripheral المحدد، اكتشاف الخدمات والخصائص، تبادل البيانات.

swift
// الاتصال بـ Peripheral المكتشف
func centralManager(
    _ central: CBCentralManager,
    didDiscover peripheral: CBPeripheral,
    advertisementData: [String: Any],
    rssi RSSI: NSNumber
) {
    // الاحتفاظ بمرجع إلى peripheral والاتصال
    discoveredPeripheral = peripheral
    central.connect(peripheral, options: nil)
}

// اتصال ناجح
func centralManager(
    _ central: CBCentralManager,
    didConnect peripheral: CBPeripheral
) {
    peripheral.delegate = self
    peripheral.discoverServices(nil)
}

يقيد iOS عمل BLE في الخلفية: في الخلفية، يمكن للتطبيق المسح فقط بمفاتيح محددة في Info.plist، ويمكن للأجهزة المتصلة إخطار Central بتغييرات البيانات. للتطبيقات الحرجة (الأجهزة الطبية)، استخدم أوضاع الخلفية مع مفتاح bluetooth-central.

Central على Android: BluetoothLeScanner

Android يوفر واجهة برمجة تطبيقات BluetoothLeScanner لمسح أجهزة BLE و BluetoothGatt لإدارة الاتصالات. ابتداءً من Android 5.0 (API 21)، حل BluetoothLeScanner محل startLeScan القديم. تتطلب واجهة برمجة التطبيقات أذونات BLUETOOTH و BLUETOOTH_ADMIN و ACCESS_FINE_LOCATION (أو ACCESS_BACKGROUND_LOCATION لنظام Android 10+).

java
import android.bluetooth.le.*;
import android.bluetooth.*;

private BluetoothLeScanner scanner;
private BluetoothGatt bluetoothGatt;

// تكوين المسح
ScanSettings settings = new ScanSettings.Builder()
    .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
    .build();

// بدء المسح
scanner.startScan(null, settings, new ScanCallback() {
    @Override
    public void onScanResult(
            int callbackType,
            ScanResult result
    ) {
        BluetoothDevice device = result.getDevice();
        // الاتصال بالجهاز
        bluetoothGatt = device.connectGatt(
            context, false, gattCallback
        );
    }
});

على Android، من المهم مراعاة قيود المسح: ابتداءً من Android 7 (API 24)، لا يمكن بدء المسح أكثر من 5 مرات كل 30 ثانية في التطبيقات التي لا تستخدم الموقع. يتطلب Android 12+ أذونات BLUETOOTH_SCAN و BLUETOOTH_CONNECT و ADVERTISE، بالإضافة إلى طلبات وقت التشغيل لهذه الأذونات.

استهلاك الطاقة لـ Central

استهلاك الطاقة لـ Central أعلى من Peripheral بسبب الحاجة إلى مسح قنوات الراديو باستمرار. يستقبل Central حزم BLE ويعالجها ويدير الاتصالات وغالباً ما يقوم بعمليات حسابية على معالج التطبيق. وفقاً لـ Bluetooth SIG، يستهلك المسح من 30 مللي أمبير إلى 100 مللي أمبير حسب الوضع.

هناك العديد من استراتيجيات توفير الطاقة لـ Central. المسح المتقطع هو الطريقة الأكثر فعالية: يمسح Central بنوافذ قصيرة (نافذة المسح) مع فترات توقف طويلة (فاصل المسح). على سبيل المثال، مع نافذة مسح 30 مللي ثانية وفاصل مسح 1000 مللي ثانية، ينخفض استهلاك الطاقة بنسبة 97% مقارنة بالمسح المستمر.

تحسين إضافي هو التصفية بواسطة UUID. يعالج Central حزم الإعلان ذات الصلة فقط بشكل أسرع، متجاهلاً الباقي. هذا يقلل من حمل المعالج ويزيد من عمر بطارية الجهاز. يُوصى أيضاً بإيقاف المسح فوراً بعد العثور على الجهاز المطلوب وعدم الاحتفاظ بالاتصال لفترة أطول من اللازم.

الأسئلة الشائعة

هل يمكن للهاتف الذكي أن يكون Central و Peripheral في نفس الوقت؟

نعم، يدعم BLE الدور المزدوج: يمكن للجهاز أن يكون Central لبعض الأجهزة و Peripheral لأخرى في نفس الوقت. على سبيل المثال، يقرأ الهاتف الذكي البيانات من مستشعر (كـ Central) ويعلن في نفس الوقت عن خدمته الخاصة (كـ Peripheral) لنقل البيانات إلى جهاز آخر.

كم عدد الأجهزة التي يمكن لـ Central خدمتها في وقت واحد؟

تحدد مواصفات BLE حداً أقصى 7 اتصالات لـ Central واحد. عملياً، يعتمد الحد على الشركة المصنعة للشريحة: تدعم شرائح Nordic nRF52840 ما يصل إلى 20 اتصالاً، بينما لا تدعم بعض محولات Bluetooth الرخيصة أكثر من 3–4.

لماذا لا يكتشف Central جهاز استشعار BLE الخاص بي؟

قد تكون الأسباب مختلفة: المستشعر لا يعلن (ليس في وضع الإعلان)، مرشح UUID صارم جداً، Bluetooth مغلق على الهاتف الذكي، الأذونات اللازمة مفقودة (الموقع على Android)، أو المستشعر خارج النطاق (يُوصى بما يصل إلى 10 أمتار داخل المباني).

هل من الضروري الاحتفاظ بالاتصال بجهاز BLE باستمرار؟

ليس بالضرورة. للعديد من السيناريوهات، يُستخدم نمط اتصل واقرأ: يمسح Central ويتصل ويقرأ البيانات اللازمة وينقطع. الاتصال المستمر ضروري فقط للبيانات المتدفقة (النبض، مخطط كهربية القلب) أو التحكم في الجهاز في الوقت الفعلي.

كيف يمكن تقليل استهلاك الطاقة لـ Central أثناء المسح؟

استخدم المسح المتقطع مع نافذة مسح 30–50 مللي ثانية وفاصل مسح 500–1000 مللي ثانية. قم بتصفية الأجهزة حسب UUID لمعالجة حزم الإعلان ذات الصلة فقط. أوقف المسح فوراً بعد العثور على Peripheral المطلوب.

الملخص

  • Central هو مشارك نشط في اتصال BLE يبدأ المسح والاتصال وإدارة تبادل البيانات.
  • تتضمن عملية المسح استقبال حزم الإعلان على القنوات 37، 38، 39 مع إمكانية التصفية بواسطة UUID الخدمة.
  • بعد اكتشاف Peripheral، يؤسس Central اتصالاً بـ معلمات قابلة للتكوين — فاصل الاتصال، زمن استجابة التابع، مهلة الإشراف.
  • في تطوير الأجهزة المحمولة، يتم تنفيذ Central عبر CBCentralManager (iOS) أو BluetoothLeScanner + BluetoothGatt (Android).
  • يمكن لـ Central واحد إدارة ما يصل إلى 7 اتصالات في تكوين Bluetooth القياسي.
  • يمكن تحسين استهلاك الطاقة لـ Central من خلال المسح المتقطع والتصفية بواسطة UUID لزيادة عمر البطارية.
  • إدارة دورة حياة الاتصال المناسبة — من الاكتشاف إلى قطع الاتصال — تحدد كفاءة تطبيق BLE.

سنقوم بتطوير تطبيق جوال جاهز

تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.

مناقشة المشروع

اقرأ أيضًا