สารบัญ:
- ขั้นตอนที่ 1: สแกนอุปกรณ์ BLE
- ขั้นตอนที่ 2: การเชื่อมต่ออุปกรณ์
- ขั้นตอนที่ 3: ดึงข้อมูลลักษณะอุปกรณ์
- ขั้นตอนที่ 4: การอ่านชื่ออุปกรณ์
- ขั้นตอนที่ 5: อ่าน BPM
- ขั้นตอนที่ 6: การอ่านตำแหน่งเซ็นเซอร์ร่างกาย
วีดีโอ: การอ่านค่าจากอุปกรณ์ BLE โดยใช้ CSR1010 และ Dragonboard 410c: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
บทช่วยสอนนี้แสดงวิธีอ่านค่าจากอุปกรณ์ 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 Sensor
ขั้นตอนที่ 2: การเชื่อมต่ออุปกรณ์
เราจะใช้ gatttool เพื่อเชื่อมต่ออุปกรณ์ของเรา
-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]> connect กำลังพยายามเชื่อมต่อกับ EE:52:5B:04:00:02
เชื่อมต่อสำเร็จ
[EE:52:5B:04:00:02][LE]>
ขั้นตอนที่ 3: ดึงข้อมูลลักษณะอุปกรณ์
เมื่อเชื่อมต่ออุปกรณ์แล้ว เราสามารถอ่านบริการที่มีทั้งหมดได้โดยส่ง cmd "primary"
จาก 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 handle: 0x0006, uuid: 00002803-0000-1000-8000- หมายเลขอ้างอิง 00805f9b34fb: 0x0007, uuid: 00002a00-0000-1000-8000-00805f9b34fb หมายเลขอ้างอิง: 0x0008, uuid: 00002803-0000-1000-8000-00805f9b34fb หมายเลขอ้างอิง: 0x0009, uuid: 00002a01-0000-1000-8000-8000-00805f หมายเลขอ้างอิง: uuid: 00002803-0000-1000-8000-00805f9b34fb หมายเลขอ้างอิง: 0x000b, uuid: 00002a04-0000-1000-8000-00805f9b34fb หมายเลขอ้างอิง: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b000034fb หมายเลขอ้างอิง: 0x000d, uuid: uuid: uuid: -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
การแปลงเลขฐานสิบหกเป็น ASCII ชื่ออุปกรณ์คือ: ''CSR HR Sensor"
ขั้นตอนที่ 5: อ่าน BPM
[EE:52:5B:04:00:02][LE]> Primaryattr handle: 0x0001, end grp handle: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb attr handle: 0x0005, end grp handle: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fb ตัวจัดการ attr: 0x000c ตัวจัดการ end grp: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb ตัวจัดการ attr: 0x0014 ตัวจัดการท้าย grp: 0x0017 uuid: 0000180f-0000-1000-8000- 00805f9b34fb ตัวจัดการ attr: 0x0018 ตัวจัดการ end grp: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 ตัวจัดการ attr: 0x0022 ตัวจัดการ end 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 หมายเลขอ้างอิง: 0x000f: 00002902-0000-1000-8000-00805f9b34fb หมายเลขอ้างอิง: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb หมายเลขอ้างอิง: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb หมายเลขอ้างอิง: 0x0012, uu0000-: 00002803- 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 (รองรับการแจ้งเตือน)
- handle 0x0010 เป็น CCCD สำหรับ service 2a38 (Body Sensor Location) พร้อม bit 02 (รองรับ READ)
- handle 0x0012 เป็น CCCD สำหรับ service 2a39 (Heart Rate Control Point) พร้อม bit 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
รอบต่อนาที:
6d = 109
6d = 109
6c = 108
6a = 106
69 = 105
ขั้นตอนที่ 6: การอ่านตำแหน่งเซ็นเซอร์ร่างกาย
ตำแหน่งเซนเซอร์ร่างกายคือ UUID 0x2A38 ตามคำอธิบาย คุณลักษณะนี้สนับสนุนการอ่านขั้นพื้นฐาน ดังนั้นเราจึงสามารถอ่านค่าได้โดยตรง
[EE:52:5B:04:00:02][LE]> char-read-hnd 0x11Characteristic value/descriptor: 03
ตามข้อกำหนดของ SIG 03 หมายถึง "นิ้ว"
แนะนำ:
TextPlayBulb: REST เปิดใช้งาน PlayBulb โดยใช้ Raspberry Pi 3, BLE และ Telegram: 3 ขั้นตอน
TextPlayBulb: REST ที่เปิดใช้งาน PlayBulb โดยใช้ Raspberry Pi 3, BLE และ Telegram: คำแนะนำนี้แสดงวิธีเชื่อมต่อกับหลอดไฟ LED Bluetooth ของ PlayBulb Color โดยใช้ Python, Raspberry Pi 3 และไลบรารี Bluetooth และขยายการควบคุมผ่าน REST API สำหรับสถานการณ์ IoT , และเพื่อเป็นรางวัล, โครงการยังแสดงวิธีการขยาย th
Neopixel Ws2812 Rainbow LED เรืองแสงพร้อม M5stick-C - เรียกใช้ Rainbow บน Neopixel Ws2812 โดยใช้ M5stack M5stick C โดยใช้ Arduino IDE: 5 ขั้นตอน
Neopixel Ws2812 Rainbow LED เรืองแสงพร้อม M5stick-C | เรียกใช้ Rainbow บน Neopixel Ws2812 โดยใช้ M5stack M5stick C การใช้ Arduino IDE: สวัสดีทุกคนในคำแนะนำนี้ เราจะเรียนรู้วิธีใช้ neopixel ws2812 LED หรือแถบนำหรือเมทริกซ์นำหรือวงแหวน LED พร้อมบอร์ดพัฒนา m5stack m5stick-C พร้อม Arduino IDE และเราจะทำ ลายรุ้งกับมัน
การตรวจจับวัตถุด้วย Dragonboard 410c หรือ 820c โดยใช้ OpenCV และ Tensorflow.: 4 ขั้นตอน
การตรวจจับวัตถุด้วย Dragonboard 410c หรือ 820c โดยใช้ OpenCV และ Tensorflow: คำแนะนำนี้จะอธิบายวิธีติดตั้ง OpenCV, Tensorflow และเฟรมเวิร์กการเรียนรู้ของเครื่องสำหรับ Python 3.5 เพื่อเรียกใช้แอปพลิเคชัน Object Detection
การพัฒนาแอปพลิเคชันโดยใช้พิน GPIO บน DragonBoard 410c ด้วยระบบปฏิบัติการ Android และ Linux: 6 ขั้นตอน
การพัฒนาแอพพลิเคชั่นโดยใช้ GPIO Pins บน DragonBoard 410c พร้อมระบบปฏิบัติการ Android และ Linux: จุดประสงค์ของบทช่วยสอนนี้คือการแสดงข้อมูลที่จำเป็นในการพัฒนาแอพพลิเคชั่นโดยใช้พิน GPIO บนการขยายความเร็วต่ำ DragonBoard 410c บทช่วยสอนนี้นำเสนอข้อมูลสำหรับการพัฒนาแอปพลิเคชันโดยใช้หมุด GPIO พร้อม SYS บน Andr
Acesso ผ่าน SSH และ Dragonboard 410c: 5 ขั้นตอน
Acesso Via SSH a Dragonboard 410c: บทช่วยสอน Neste, será คำอธิบาย como conectar-se à บอร์ด Dragonboard 410c ผ่าน SSH e ligar um led