فهرست مطالب:
- مرحله 1: اسکن دستگاه BLE
- مرحله 2: اتصال دستگاه
- مرحله 3: بازیابی ویژگی های دستگاه
- مرحله 4: خواندن نام دستگاه
- مرحله 5: خواندن BPM
- مرحله 6: خواندن مکان سنسور بدن
تصویری: خواندن مقادیر از دستگاه BLE با استفاده از CSR1010 و Dragonboard 410c: 6 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:57
این آموزش نحوه خواندن مقادیر از دستگاه 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 HR
مرحله 2: اتصال دستگاه
برای اتصال دستگاه خود از gatttool استفاده می کنیم
-b: آدرس MAC دستگاه
-t: نوع آدرس LE. می تواند عمومی یا تصادفی باشد ، باید مشخصات دستگاه را بررسی کنید. در این مورد عمومی است.
-I: حالت تعاملی gatttool. یک پیام برای ارسال cmds به دستگاه باز می شود
root@linaro -alip:/home/linaro# sudo gatttool -b EE: 52: 5B: 04: 00: 02 -t عمومی -I
هنگامی که اعلان باز شد ، می توانیم cmd را به دستگاه ارسال کنیم.
[EE: 52: 5B: 04: 00: 02] [LE]> اتصال تلاش برای اتصال به EE: 52: 5B: 04: 00: 02
اتصال با موفقیت انجام شد
[EE: 52: 5B: 04: 00: 02] [LE]>
مرحله 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 11 دستگیره: 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: 00002a0010000000000 ، 00002000-00000000 ، 0000000000 ، 0000000000 ، 00000 uuid: 00002803-0000-1000-8000-00805f9b34fb دسته: 0x000b ، uuid: 00002a04-0000-1000-8000-00805f9b34fb دسته: 0x000c ، uuid: 00002800-0000-1000-8000-00805f9b34fb: -1000-8000-00805f9b34fb دسته: 0x000e ، uuid: 00002a37-0000-1000-8000-00805f9b34fb دسته: 0x000f ، uuid: 00002902-0000-1000-8000-00805f9b34fb دسته: 0x0010-000000000-0000000-0000000 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 20 52 52 53 53 6e 73 6f 72
با تبدیل hex به ASCII ، نام دستگاه این است: '' CSR HR Sensor ''
مرحله 5: خواندن BPM
[EE: 52: 5B: 04: 00: 02] [LE]> دسته اصلیattr: 0x0001 ، دسته grp نهایی: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb دسته attr: 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 00805f9b34fb دسته attr: 0x0018 ، دسته grp نهایی: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 دسته attr: 0x0022 ، دسته grp انتهایی: 0xffff uuid: 0000180a-0000-1000-8000-008059b
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-0000050095000 ، 000005000 ، 000005000 ، 00000: 00002902-0000-1000-8000-00805f9b34fb دسته: 0x0010 ، uuid: 00002803-0000-1000-8000-00805f9b34fb دسته: 0x0011 ، uuid: 00002a38-0000-1000-8000-00805f9b34fb دسته: 0x00-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:
6d = 109
6d = 109
6c = 108
6a = 106
69 = 105
مرحله 6: خواندن مکان سنسور بدن
مکان سنسور بدن UUID 0x2A38 است. با توجه به توصیف کننده آن ، این ویژگی از خواندن اولیه پشتیبانی می کند ، بنابراین می توانیم مقدار آن را مستقیماً بخوانیم.
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x11 ارزش مشخصه/توصیف کننده: 03
طبق مشخصات SIG ، 03 به معنی "انگشت" است
توصیه شده:
نحوه خواندن داده های DHT روی LCD با استفاده از تمشک پای: 6 مرحله
نحوه خواندن داده های DHT روی LCD با استفاده از تمشک پای: دما و رطوبت نسبی داده های مهم آب و هوا در محیط ها هستند. این دو می توانند داده هایی باشند که یک ایستگاه هواشناسی کوچک ارائه می دهد. خواندن دما و رطوبت نسبی با رزبری پای را می توان با استفاده از انواع مختلف
نحوه خواندن چندین ارزش آنالوگ با استفاده از یک پین آنالوگ: 6 مرحله (همراه با تصاویر)
نحوه خواندن چندین ارزش آنالوگ با استفاده از یک پین آنالوگ: در این آموزش ، من به شما نحوه خواندن چندین مقدار آنالوگ با استفاده از تنها یک پین ورودی آنالوگ را نشان خواهم داد
خواندن اطلاعات سنسور اولتراسونیک (HC-SR04) بر روی LCD 128 × 128 و تجسم آن با استفاده از Matplotlib: 8 مرحله
خواندن داده های سنسور اولتراسونیک (HC-SR04) روی LCD 128 128 128 و تجسم آن با استفاده از Matplotlib: در این مقاله آموزشی ، ما از MSP432 LaunchPad + BoosterPack برای نمایش داده های سنسور اولتراسونیک (HC-SR04) در 128 × 128 استفاده می کنیم LCD و داده ها را به صورت سریال به رایانه ارسال کرده و با استفاده از Matplotlib تجسم کنید
مقادیر ADC را از پتانسیومترها بخوانید: 4 مرحله
مقادیر ADC را از پتانسیومتر بخوانید: در این مقاله نحوه خواندن مقادیر ADC از پتانسیومتر را به شما نشان خواهم داد. این اساس برنامه نویسی آردوینو است. که در حال خواندن مقادیر آنالوگ با استفاده از پین آنالوگ ارائه شده توسط Arduino است. علاوه بر استفاده از potentio ، چندین سنسور وجود دارد که
ذخیره و بازیابی مقادیر از پیش تعیین شده با NFC (TfCD): 4 مرحله
ذخیره و بازیابی مقادیر از پیش تعیین شده با NFC (TfCD): ما می خواهیم نحوه عملکرد تنظیم یک مقدار یا تنظیم خاص را آزمایش کرده و بعداً این تنظیم را به یاد بیاوریم. برای این آزمایش ما از تگ NFC برای خواندن و سپس ذخیره مقدار روی آن استفاده کردیم. بعداً می توان برچسب را دوباره اسکن کرد و مقدار را برای بازگرداندن یک سرور ارسال کرد