Bluetooth و Bluetooth Low Energy هما معياران للاتصال اللاسلكي لنقل البيانات لمسافات قصيرة. يوفر Bluetooth Classic (BR/EDR) قناة دفق مستقرة للصوت والملفات، بينما تم تحسين BLE للتشغيل الموفر للطاقة مع أجهزة الاستشعار والأجهزة الطرفية. وفقًا لـ Bluetooth SIG، 2025، يتم شحن أكثر من 5 مليارات جهاز مع دعم BLE سنويًا — أصبح المعيار أساس إنترنت الأشياء والإلكترونيات القابلة للارتداء وملحقات الأجهزة المحمولة.
النقاط الرئيسية
Bluetooth هو معيار شبكة شخصية لاسلكية (WPAN) يعمل في نطاق ISM 2.4 جيجاهرتز، مصمم للاتصال بين الأجهزة على مسافات تصل إلى 100 متر. تحدد مواصفة IEEE 802.15.1 الطبقتين المادية و MAC، بينما تحدد حزمة Bluetooth SIG ملفات التعريف عالية المستوى لسيناريوهات محددة: سماعات الصوت (HSP)، نقل الملفات (OPP)، إدخال لوحة المفاتيح (HID).
انقسم المعيار إلى فرعين منذ الإصدار 4.0 (2010): Bluetooth Classic (BR/EDR — Basic Rate / Enhanced Data Rate) و Bluetooth Low Energy (BLE، المعروف سابقًا باسم Bluetooth Smart). Classic مصمم للتدفقات المستمرة — مكالمات الصوت والموسيقى والملفات. تم إنشاء BLE للتطبيقات حيث تُنقل البيانات في حزم قصيرة مع فترات توقف تصل إلى عشرات الثواني أو الدقائق — أجهزة قياس معدل ضربات القلب والعلامات وأجهزة استشعار درجة الحرارة.
وفقًا لـ Bluetooth SIG (2025)، فإن 99% من الهواتف الذكية الجديدة تدعم كلا الإصدارين، ويضم نظام BLE البيئي أكثر من 15 نوعًا من ملفات التعريف من Blood Pressure إلى Environmental Sensing.
يعتمد الاختيار بين Classic و BLE على السيناريو: لدفق الصوت فقط Classic مناسب، لاستقصاء جهاز استشعار مرة في الساعة — فقط BLE. يستخدم BR/EDR 79 قناة بتباعد 1 ميجاهرتز وقفز التردد التكيفي (AFH)، مما يوفر مقاومة لتداخل Wi-Fi.
| المعامل | Bluetooth Classic (BR/EDR) | Bluetooth Low Energy (BLE) |
|---|---|---|
| سرعة النقل | 1–3 ميجابت/ثانية (EDR) | 125 كيلوبت/ثانية – 2 ميجابت/ثانية (LE 2M PHY) |
| التيار الأقصى | 10–30 مللي أمبير | 5–15 مللي أمبير |
| وقت البث | ~100 مللي ثانية | ~3 مللي ثانية |
| طوبولوجيا | Piconet (سيد واحد، حتى 7 عبيد) | Broadcaster / Observer / Peripheral / Central |
| ملفات التعريف | HFP، A2DP، HSP، SPP، OPP | قائمة على GATT (HRS، BLS، CTS، إلخ.) |
| الأجهزة النموذجية | سماعات الرأس، مكبرات الصوت، حر اليدين في السيارة | أساور اللياقة البدنية، العلامات، أجهزة قياس النبض، أجهزة استشعار إنترنت الأشياء |
| التوافق | غير متوافق مع BLE على المستوى المادي | الرقائق ثنائية الوضع تدعم كلا الحزمتين |
أضاف BLE 5.x LE Coded PHY لزيادة المدى حتى 1 كم (في المناطق المفتوحة) و LE Audio مع برنامج ترميز LC3 — الإصدار الجديد يعمل تدريجياً على طمس الحدود بين Classic و BLE لسيناريوهات الصوت.
تنقسم حزمة BLE إلى ثلاث طبقات: المتحكم (Controller) (الطبقة المادية وطبقة الارتباط)، المضيف (Host) (L2CAP، ATT، GATT، مدير الأمان)، و التطبيق (Application) (تنفيذ ملف التعريف في التطبيق). يسمح هذا الفصل لصانع الرقاقة بتنفيذ المتحكم في البرامج الثابتة، بينما يعمل مطور تطبيق الهاتف المحمول فقط مع تجريدات GATT.
تدير طبقة الارتباط (LL) وقت البث: يتحول الجهاز بين حالات الاستعداد والإعلان والمسح والبدء والاتصال. في حالة الاتصال، يتفق Central و Peripheral على فترة الاتصال — التردد الذي يتبادلان به حزم البيانات. الفاصل الزمني النموذجي هو 7.5–1000 مللي ثانية؛ كلما كان التبادل أكثر تكرارًا، زاد الإنتاجية وزاد استهلاك الطاقة.
ينفذ مدير الأمان (SM) تشفير AES-128 مع تبادل المفاتيح عبر بروتوكول الإقران. هناك ثلاثة أوضاع: Just Works (بدون إدخال PIN)، Passkey Entry (رمز مكون من 6 أرقام على الشاشة)، و OOB (NFC أو QR). للأجهزة القابلة للارتداء، يُستخدم Just Works عادةً، للأجهزة الطبية — OOB مع تحقق إضافي.
وفقًا لـ Bluetooth Core Specification 5.4 (2023)، لا يتجاوز وقت إنشاء الاتصال الآمن في وضع LE Secure Connections 300 مللي ثانية بفاصل اتصال 30 مللي ثانية.
ATT (بروتوكول السمة) هو نموذج النقل الأساسي حيث يخزن الخادم (الجهاز الطرفي) السمات ويقرأها أو يكتبها العميل (الهاتف الذكي). يبني GATT (ملف تعريف السمة العام) تسلسلاً هرميًا فوق ATT: Service ← Characteristic ← Descriptor.
كل خدمة هي مجموعة منطقية من الخصائص تصف وظيفة جهاز واحدة: خدمة معدل ضربات القلب (UUID 0x180D) تحتوي على خاصية قياس معدل ضربات القلب (UUID 0x2A37) مع واصف تهيئة خاصية العميل (0x2902) الذي يتحكم في الإشعارات. يحصل مطور تطبيق الهاتف المحمول على قائمة الخدمات عبر discoverServices()، ثم يجد الخاصية المطلوبة بواسطة UUID ويشترك في الإشعارات.
يستخدم BLE UUIDs ذات 16 بت للخدمات الموحدة من Bluetooth SIG و UUIDs ذات 128 بت للخدمات المخصصة للشركة المصنعة. على سبيل المثال، يمكن لحافظة متتبعة تعريف خدمة A000-… مع خاصية لنقل مستوى شحن بطاريتها.
private val gattCallback = object BluetoothGattCallback() {
override fun onServicesDiscovered(
gatt: BluetoothGatt, status: Int
) {
val service = gatt.getService(UUID.fromString("0000180d-0000-1000-8000-00805f9b34fb"))
val char = service?.getCharacteristic(
UUID.fromString("00002a37-0000-1000-8000-00805f9b34fb")
)
gatt.setCharacteristicNotification(char, true)
}
override fun onCharacteristicChanged(
gatt: BluetoothGatt, char: BluetoothGattCharacteristic
) {
val heartRate = char.getIntValue(BluetoothGattCharacteristic.FORMAT_UINT8, 1)
updateUi("النبض: $heartRate نبضة/دقيقة")
}
}
في المثال، يجد التطبيق خدمة Heart Rate عبر UUID القياسي لـ Bluetooth SIG، ويحصل على خاصية قياس النبض ويشترك في إشعاراتها — كلما تغير النبض، يرسل الجهاز الطرفي البيانات دون طلب صريح من Central.
الإعلان (Advertising) هو آلية رئيسية في BLE حيث يرسل الجهاز الطرفي بشكل دوري حزم بث (PDUs إعلانية) على ثلاث قنوات أساسية (37، 38، 39). يمسح الجهاز المركزي هذه القنوات، ويتلقى بيانات الإعلان، ويمكنه بدء اتصال.
تحتوي حزمة الإعلان على ما يصل إلى 31 بايت من الحمولة: الأعلام، مستوى طاقة الإرسال، الاسم المحلي، UUIDs الخدمات، بيانات خاصة بالشركة المصنعة. هذا يكفي لنقل قراءات الاستشعار دون إنشاء اتصال — وضع Connectionless (نوع Broadcaster). لنقل البيانات المستمر (على سبيل المثال، درجة الحرارة مرة في الدقيقة)، يُستخدم اتصال بفاصل يصل إلى 1000 مللي ثانية.
على المنصات المحمولة، يبدأ المسح عبر startScan() (Android) أو scanForPeripherals() (iOS). يتيح التصفية بواسطة UUID الخدمة توفير الطاقة بعدم معالجة جميع الأجهزة المرئية — يتلقى التطبيق رد اتصال فقط للعلامات أو أجهزة الاستشعار ذات الصلة.
import CoreBluetooth
class ScannerViewController: UIViewController {
private var centralManager: CBCentralManager!
override func viewDidLoad() {
centralManager = CBCentralManager(
delegate: self, queue: nil
)
}
func centralManagerDidUpdateState(central: CBCentralManager) {
if central.state == .poweredOn {
centralManager.scanForPeripherals(
withServices: nil, options: nil
)
}
}
func centralManager(
central: CBCentralManager,
didDiscover peripheral: CBPeripheral,
advertisementData: [String : Any],
rssi RSSI: NSNumber
) {
if let name = advertisementData[CBAdvertisementDataLocalNameKey] {
print("تم العثور على الجهاز: \(name)")
}
}
}
بعد اكتشاف الجهاز، يستدعي Central connect()، مررًا كائن CBPeripheral. يتم التفاوض على معلمات الاتصال (الفاصل، زمن الوصول، مهلة الإشراف) على مستوى طبقة الارتباط — لا يديرها المطور مباشرة، لكن يمكنه التأثير عبر requestConnectionPriority على Android.
توفر كلتا المنصتين المحمولتين واجهات برمجة تطبيقات أصلية للعمل مع BLE. يستخدم Core Bluetooth (iOS) نهج المفوض: يبدأ المدير المركزي العمليات، ويبلغ الكائن الطرفي عن النتائج عبر طرق المفوض. تم بناء android.bluetooth (Android) على واجهات رد الاتصال ويدعم عمليات GATT المتوازية مع أجهزة متعددة.
الاختلافات الرئيسية بين المنصتين:
وفقًا لاختبارات Bluetooth SIG (2024)، يبلغ متوسط وقت اتصال BLE بين الهاتف الذكي وسوار اللياقة البدنية 150–300 مللي ثانية على Android و 100–250 مللي ثانية على iOS — الفرق ناتج عن سياسات إدارة وحدة الترددات الراديوية.
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
class BleService {
final FlutterBluePlus fbp = FlutterBluePlus();
Future<void> scanAndConnect(String deviceName) async {
await fbp.startScan(timeout: Duration(seconds: 15));
await for (final result in fbp.scanResults) {
if (result.device.advName == deviceName) {
await fbp.stopScan();
await result.device.connect();
break;
}
}
}
}
يحصل مطور Flutter على واجهة API موحدة؛ تحت الغطاء، يترجم flutter_blue_plus الاستدعاءات إلى android.bluetooth الأصلي أو Core Bluetooth. يقلل هذا النهج من وقت تطوير التطبيق للعمل مع الأجهزة الطرفية BLE على كلتا المنصتين.
الأسئلة الشائعة
Bluetooth Classic (BR/EDR) مصمم للبث المستمر — مكالمات الصوت والموسيقى ونقل الملفات. BLE محسّن لحزم البيانات القصيرة باستهلاك طاقة ضئيل — أجهزة الاستشعار والعلامات وأجهزة تتبع اللياقة البدنية. يستهلك Classic 10–30 مللي أمبير، و BLE — 5–15 مللي أمبير في الذروة.
على المستوى المادي، غير متوافقين — تشكيل وخريطة قنوات مختلفان. ومع ذلك، فإن معظم الرقائق الحديثة هي ثنائية الوضع وتنفذ كلا الحزمتين. يمكن للهاتف الذكي المزود برقاقة ثنائية الوضع التواصل في وقت واحد مع سماعة Classic ومتتبع BLE.
فترة الاتصال هي الوقت بين حزمتي بيانات في اتصال قائم. تتراوح القيمة من 7.5 مللي ثانية إلى 4 ثوانٍ. كلما كانت الفترة أقصر، زاد الإنتاجية وزاد استهلاك الطاقة. لمستشعر درجة حرارة يقرأ مرة في الدقيقة، تُستخدم فترة 1000 مللي ثانية.
الإقران هو عملية تبادل مفاتيح التشفير بين Central و Peripheral. يدعم BLE ثلاث طرق: Just Works (بدون تأكيد)، Passkey Entry (إدخال PIN على الشاشة)، و OOB (التبادل عبر NFC أو QR). بعد الإقران، تخزن الأجهزة المفاتيح (الربط) ولا تطلب إعادة المصادقة عند الاتصالات اللاحقة.
الأكثر شيوعًا: Heart Rate Profile (0x180D) لأجهزة قياس النبض، Blood Pressure Profile (0x1810) لأجهزة قياس الضغط، Environmental Sensing (0x181A) لأجهزة استشعار درجة الحرارة والرطوبة، Battery Service (0x180F) لمستوى الشحن، Device Information (0x180A) للطراز والرقم التسلسلي.
الملخص
سنقوم بتطوير تطبيق جوال جاهز
تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.
اقرأ أيضًا