جدول المحتويات:

قراءة القيم من جهاز BLE باستخدام CSR1010 و Dragonboard 410c: 6 خطوات
قراءة القيم من جهاز BLE باستخدام CSR1010 و Dragonboard 410c: 6 خطوات

فيديو: قراءة القيم من جهاز BLE باستخدام CSR1010 و Dragonboard 410c: 6 خطوات

فيديو: قراءة القيم من جهاز BLE باستخدام CSR1010 و Dragonboard 410c: 6 خطوات
فيديو: ELDER SCROLLS BLADES NOOBS LIVE FROM START 2024, شهر نوفمبر
Anonim
قراءة القيم من جهاز BLE باستخدام CSR1010 و Dragonboard 410c
قراءة القيم من جهاز BLE باستخدام CSR1010 و Dragonboard 410c

يوضح هذا البرنامج التعليمي كيفية قراءة القيم من جهاز BLE CSR1010 باستخدام Dragonboard 410c مع Linaro

في هذا المثال ، يحاكي CSR1010 مستشعر معدل ضربات القلب.

الخطوة 1: فحص جهاز BLE

في هذه الخطوة ، تحقق مما إذا كان عميل BT جاهزًا لمسح أجهزة BLE.

root @ linaro-alip: / home / linaro # sudo hcitool lescan

LE Scan… 18: EE: 69: 00: CE: 00 (غير معروف) 18: EE: 69: 00: CE: 00 (غير معروف) EE: 52: 5B: 04: 00: 02 جهاز استشعار الموارد البشرية CSR

الخطوة 2: توصيل الجهاز

سوف نستخدم جاتتول لتوصيل أجهزتنا

-b: عنوان MAC للجهاز

-t: نوع العنوان LE. يمكن أن تكون عامة أو عشوائية ، تحتاج إلى التحقق من مواصفات الجهاز. في هذه الحالة عامة.

-I: الوضع التفاعلي gatttool. سيفتح موجهًا لإرسال أوامر cmds إلى الجهاز

root @ linaro-alip: / home / linaro # sudo gatttool -b EE: 52: 5B: 04: 00: 02 -t public -I

بمجرد فتح المطالبة ، يمكننا إرسال اتصال cmd بالجهاز.

[EE: 52: 5B: 04: 00: 02] [LE]> اتصال محاولة الاتصال بـ EE: 52: 5B: 04: 00: 02

تم الاتصال بنجاح

[EE: 52: 5B: 04: 00: 02] [جنيه]>

الخطوة 3: استرجاع خصائص الجهاز

استرجاع خصائص الجهاز
استرجاع خصائص الجهاز

بمجرد توصيل الجهاز ، يمكننا قراءة جميع الخدمات المتاحة عن طريق إرسال cmd "أساسي"

بناءً على UUID الخاص بالخدمة ، يمكننا اكتشاف نوع الخدمة في مواصفات GATT

www.bluetooth.com/specifications/gatt/services

الخطوة 4: قراءة اسم الجهاز

قراءة اسم الجهاز
قراءة اسم الجهاز

دعنا نستكشف الخصائص التي نقرأها في ملف تعريف الوصول العام (uuid = 1800). نحتاج أولاً إلى الحصول على قيم مقبض الخدمة ، الموضحة في الصورة الأولى ، في هذه الحالة ، تبدأ من 5 حتى 11. الآن يمكننا استرداد جميع المقابض في هذه الفترة الزمنية باستخدام cmd char-desc

[EE: 52: 5B: 04: 00: 02] [LE]> char-desc 05 11handle: 0x0005، uuid: 00002800-0000-1000-8000-00805f9b34fb المقبض: 0x0006 ، uuid: 00002803-0000-1000-8000- 00805f9b34fb مقبض: 0x0007 ، uuid: 00002a00-0000-1000-8000-00805f9b34fb مقبض: 0x0008 ، uuid: 00002803-0000-1000-8000-00805f9b34fb مقبض: 0x0009 ، uuid: 00009a01-0000-1000-8000-00b805 uuid: 00002803-0000-1000-8000-00805f9b34fb مقبض: 0x000b ، uuid: 00002a04-0000-1000-8000-00805f9b34fb مقبض: 0x000c ، uuid: 00002800-0000-1000-8000-00805f9b34fb مقبض: 0x000d2 -1000-8000-00805f9b34fb مقبض: 0x000e ، uuid: 00002a37-0000-1000-8000-00805f9b34fb مقبض: 0x000f ، uuid: 00002902-0000-1000-8000-00805f9b34fb مقبض: 0x0010 ، uuid: 00002803-0000-1000-8000 00805f9b34fb مقبض: 0x0011 ، uuid: 00002a38-0000-1000-8000-00805f9b34fb

وفقًا لمواصفات ملف تعريف الوصول العام ، يشير UUID 2A00 إلى اسم الجهاز.

بالنظر إلى أن 2a00 هو المقبض 0x0007 في أجهزتنا ، فلنقرأ القيمة

[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 7 قيمة مميزة / واصف: 43 53 52 20 48 52 20 53 65 6e 73 6f 72

تحويل hex إلى ASCII ، اسم الجهاز هو: "CSR HR Sensor"

الخطوة 5: قراءة BPM

[EE: 52: 5B: 04: 00: 02] [LE]> مقبض أساسي: 0x0001 ، مقبض نهاية المجموعة الشاملة: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb مقبض سمة: 0x0005 ، مقبض grp النهائي: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fb مقبض Attr: 0x000c ، مقبض نهاية GRP: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb مقبض Attr: 0x0014 ، مقبض grp النهائي: 0x0017 uuid: 0000180f-0000-1000-8000- 00805f9b34fb مقبض Attr: 0x0018 ، مقبض GRP النهائي: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 مقبض attr: 0x0022 ، مقبض grp النهائي: 0xffff uuid: 0000180a-0000-1000-8000-00805f9b34fb

UUID لخدمة معدل ضربات القلب هو 0x180d ، لذا فإن الفاصل الزمني للمعالجة يبدأ من 0x000c حتى 0x0013

[EE: 52: 5B: 04: 00: 02] [LE]> char-desc 0x00c 0x0013

المقبض: 0x000c ، uuid: 00002800-0000-1000-8000-00805f9b34fb المقبض: 0x000d ، uuid: 00002803-0000-1000-8000-00805f9b34fb المقبض: 0x000e ، uuid: 00002a37-0000-1000-8000-00805f9b34fb مقبض:: 00002902-0000-1000-8000-00805f9b34fb مقبض: 0x0010 ، uuid: 00002803-0000-1000-8000-00805f9b34fb مقبض: 0x0011 ، uuid: 00002a38-0000-1000-8000-00805f9b34fb مقبض: 0x0012 ، uuid: 0000 1000-8000-00805f9b34fb المقبض: 0x0013 ، uuid: 00002a39-0000-1000-8000-00805f9b34fb

قراءة كافة البيانات المميزة (UUID 0x2803).

[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x000d

القيمة / الواصف المميز: 10 0e 00 37 2a [EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x0010 القيمة / الوصف المميز: 02 11 00 38 2a [EE: 52: 5B: 04:00:02] [LE]> char-read-hnd 0x0012 القيمة / الوصف المميز: 08 13 00 39 2a

لاحظ أن:

- المقبض 0x000d هو CCCD للخدمة 2a37 (قياس معدل ضربات القلب) مع بت 10 (دعم الإخطار)

- المقبض 0x0010 هو CCCD للخدمة 2a38 (موقع مستشعر الجسم) مع بت 02 (دعم القراءة)

- المقبض 0x0012 هو CCCD للخدمة 2a39 (نقطة التحكم في معدل ضربات القلب) مع بت 08 (دعم WRITE)

نحن نعلم الآن أن قياس معدل ضربات القلب لا يعمل إلا مع الإشعار. هذا يعني أنه يتعين علينا أولاً التسجيل لتغييرات القيمة في CCCD (UUID 0x2902) ، والذي في هذه الحالة هو مقبض 0xf

[EE: 52: 5B: 04: 00: 02] [LE]> char-write-req 0x00f 0100

مقبض الإخطار = 0x000e القيمة: 16 65 f3 01 تمت كتابة القيمة المميزة بنجاح مقبض الإخطار = قيمة 0x000e: 16 6d fa 01 مقبض الإخطار = قيمة 0x000e: 16 6d fa 01 مقبض الإخطار = قيمة 0x000e: 16 6c f9 01 مقبض الإخطار = قيمة 0x000e: 16 6a f7 01 مقبض الإعلام = 0x000e القيمة: 16 69 f6 01

وفقًا لمواصفات الملف الشخصي ، فإن الرقم السداسي العشري الثاني هو معلومات BPM.

BPM:

6 د = 109

6 د = 109

6 ج = 108

6 أ = 106

69 = 105

الخطوة 6: قراءة موقع جهاز استشعار الجسم

قراءة موقع جهاز استشعار الجسم
قراءة موقع جهاز استشعار الجسم

موقع جهاز استشعار الجسم هو UUID 0x2A38. هذه الخاصية ، حسب واصفها ، تدعم القراءة الأساسية ، حتى نتمكن من قراءة قيمتها مباشرة.

[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x11 قيمة مميزة / واصف: 03

وفقًا لمواصفات SIG ، يعني 03 "الإصبع"

موصى به: