Mục lục:
- Bước 1: Quét thiết bị BLE
- Bước 2: Kết nối thiết bị
- Bước 3: Truy xuất các đặc điểm của thiết bị
- Bước 4: Đọc tên thiết bị
- Bước 5: Đọc BPM
- Bước 6: Đọc vị trí cảm biến cơ thể
Video: Đọc giá trị từ thiết bị BLE bằng CSR1010 và Dragonboard 410c: 6 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:34
Hướng dẫn này cho thấy cách đọc các giá trị từ thiết bị BLE CSR1010 bằng Dragonboard 410c với Linaro
Trong ví dụ này, CSR1010 đang mô phỏng cảm biến nhịp tim.
Bước 1: Quét thiết bị BLE
Trong bước này, hãy kiểm tra xem ứng dụng khách BT của bạn đã sẵn sàng để quét các thiết bị BLE chưa.
root @ linaro-alip: / home / linaro # sudo hcitool lescan
LE Scan… 18: EE: 69: 00: CE: 00 (không xác định) 18: EE: 69: 00: CE: 00 (không xác định) EE: 52: 5B: 04: 00: 02 CSR HR Sensor
Bước 2: Kết nối thiết bị
Chúng tôi sẽ sử dụng gatttool để kết nối thiết bị của mình
-b: Địa chỉ MAC của thiết bị
-t: Kiểu địa chỉ LE. Có thể công khai hoặc ngẫu nhiên, cần kiểm tra thông số thiết bị. Trong trường hợp này là công khai.
-Tôi: chế độ tương tác gatttool. Nó sẽ mở lời nhắc gửi cmd tới thiết bị
root @ linaro-alip: / home / linaro # sudo gatttool -b EE: 52: 5B: 04: 00: 02 -t public -I
Khi lời nhắc mở ra, chúng tôi có thể gửi cmd kết nối đến thiết bị.
[EE: 52: 5B: 04: 00: 02] [LE]> connectPhải kết nối với EE: 52: 5B: 04: 00: 02
Kết nối thành công
[EE: 52: 5B: 04: 00: 02] [LE]>
Bước 3: Truy xuất các đặc điểm của thiết bị
Sau khi thiết bị được kết nối, chúng tôi có thể đọc tất cả các dịch vụ hiện có bằng cách gửi cmd "chính"
Dựa trên UUID dịch vụ, chúng tôi có thể khám phá loại dịch vụ trong đặc tả GATT
www.bl Bluetooth.com/specification/gatt/services
Bước 4: Đọc tên thiết bị
Hãy cùng khám phá các đặc điểm được đọc trên Hồ sơ truy cập chung (uuid = 1800). Đầu tiên, chúng ta cần lấy các giá trị xử lý dịch vụ, được mô tả trên hình đầu tiên, trong trường hợp này, bắt đầu từ 5 đến 11. Bây giờ chúng ta có thể truy xuất tất cả các xử lý trong khoảng thời gian này bằng cách sử dụng 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 xử lý: 0x0007, uuid: 00002a00-0000-1000-8000-00805f9b34fb xử lý: 0x0008, uuid: 00002803-0000-1000-8000-00805f9b34fb xử lý: 0x0009, uuid: 00002a01-000080af9f9 uuid: 00002803-0000-1000-8000-00805f9b34fb xử lý: 0x000b, uuid: 00002a04-0000-1000-8000-00805f9b34fb xử lý: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb uuid: 0x000d, 0000280 -1000-8000-00805f9b34fb xử lý: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb xử lý: 0x000f, uuid: 00002902-0000-1000-8000-00805f9b34fb xử lý: 0x0010, uuid: 00002803-0000 00805f9b34fb xử lý: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb
Theo thông số kỹ thuật Cấu hình truy cập chung, UUID 2A00 đề cập đến Tên thiết bị.
Xem xét rằng 2a00 là tay cầm 0x0007 trong thiết bị của chúng tôi, hãy đọc giá trị
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 7 Giá trị đặc trưng / bộ mô tả: 43 53 52 20 48 52 20 53 65 6e 73 6f 72
Chuyển đổi hex sang ASCII, tên thiết bị là: '' CSR HR Sensor"
Bước 5: Đọc BPM
[EE: 52: 5B: 04: 00: 02] [LE]> bộ điều khiển chính: 0x0001, bộ điều khiển grp kết thúc: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb Bộ điều khiển đính kèm: 0x0005, bộ điều khiển grp kết thúc: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fb Tay cầm điều chỉnh: 0x000c, tay cầm grp kết thúc: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb Tay cầm điều chỉnh: 0x0014, tay cầm grp cuối: 0x0017 uuid: 0000180f-0000-1000-8000- 00805f9b34fb Bộ điều khiển đính kèm: 0x0018, bộ điều khiển grp cuối: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 Bộ điều khiển đính kèm: 0x0022, bộ điều khiển grp cuối: 0xffff uuid: 0000180a-0000-1000-8000-00805f9b34fb
UUID của dịch vụ Nhịp tim là 0x180d, do đó, khoảng thời gian xử lý là từ 0x000c cho đến 0x0013
[EE: 52: 5B: 04: 00: 02] [LE]> char-desc 0x00c 0x0013
xử lý: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb xử lý: 0x000d, uuid: 00002803-0000-1000-8000-00805f9b34fb xử lý: 0x000e, uuid: 00002a37-0000-1000-8000-00805 uuidb34000fb, xử lý: 0x34000fb: 00002902-0000-1000-8000-00805f9b34fb xử lý: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb xử lý: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb xử lý: 0x00 000012, uuid: 0x000012, uuid: 1000-8000-00805f9b34fb xử lý: 0x0013, uuid: 00002a39-0000-1000-8000-00805f9b34fb
Đọc tất cả các Khai báo Đặc điểm (UUID 0x2803).
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x000d
Giá trị đặc trưng / bộ mô tả: 10 0e 00 37 2a [EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x0010 Giá trị đặc trưng / bộ mô tả: 02 11 00 38 2a [EE: 52: 5B: 04:00:02] [LE]> char-read-hnd 0x0012 Giá trị đặc tính / bộ mô tả: 08 13 00 39 2a
Thông báo rằng:
- tay cầm 0x000d là CCCD cho dịch vụ 2a37 (Đo nhịp tim) với bit 10 (hỗ trợ THÔNG BÁO)
- tay cầm 0x0010 là CCCD cho dịch vụ 2a38 (Vị trí cảm biến cơ thể) với bit 02 (hỗ trợ ĐỌC)
- tay cầm 0x0012 là CCCD cho dịch vụ 2a39 (Điểm kiểm soát nhịp tim) với bit 08 (hỗ trợ WRITE)
Giờ đây, chúng tôi biết rằng tính năng Đo nhịp tim chỉ hoạt động khi có thông báo. Có nghĩa là trước tiên chúng ta phải đăng ký các thay đổi giá trị trong CCCD của nó (UUID 0x2902), trong trường hợp này là xử lý 0xf
[EE: 52: 5B: 04: 00: 02] [LE]> char-write-req 0x00f 0100
Xử lý thông báo = 0x000e giá trị: 16 65 f3 01 Giá trị đặc tính được ghi thành công Xử lý thông báo = 0x000e giá trị: 16 6d fa 01 Xử lý thông báo = 0x000e giá trị: 16 6d fa 01 Xử lý thông báo = 0x000e giá trị: 16 6c f9 01 Xử lý thông báo = giá trị 0x000e: 16 6a f7 01 Xử lý thông báo = giá trị 0x000e: 16 69 f6 01
Theo đặc điểm kỹ thuật hồ sơ, số hex thứ hai là thông tin BPM.
BPM:
6d = 109
6d = 109
6c = 108
6a = 106
69 = 105
Bước 6: Đọc vị trí cảm biến cơ thể
Vị trí Cảm biến Cơ thể là UUID 0x2A38. Theo bộ mô tả của nó, đặc tính này hỗ trợ đọc cơ bản, vì vậy chúng ta có thể đọc trực tiếp giá trị của nó.
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x11 Giá trị đặc trưng / bộ mô tả: 03
Theo đặc điểm kỹ thuật của SIG, 03 có nghĩa là "Ngón tay"
Đề xuất:
Cách đọc nhiều giá trị tương tự bằng một pin tương tự: 6 bước (có hình ảnh)
Cách đọc nhiều giá trị tương tự bằng một chân tương tự: Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách đọc nhiều giá trị tương tự chỉ bằng một chân đầu vào tương tự
Bộ định tuyến WIFI an toàn - Bảo vệ và quyền riêng tư chống vi rút, phần mềm độc hại và mã độc ransomware: 5 bước
Bộ định tuyến WIFI an toàn - Chống vi rút, phần mềm độc hại và phần mềm độc hại và bảo vệ quyền riêng tư: Bảo vệ điểm cuối chi phí thấp bằng cách sử dụng RaspBerryPI 4 và mã nguồn mở. Chặn những thứ sau TRƯỚC KHI chúng tiếp cận máy tính hoặc điện thoại của bạn: Vi rút phần mềm độc hại RansomWareAlso cung cấp: Kiểm soát của phụ huynh đối với các trang web Người lớn / Căm ghét Bảo vệ quyền riêng tư của bạn thông qua Quảng cáo
Xây dựng bộ đọc âm lượng xe tăng với giá dưới 30 đô la bằng cách sử dụng ESP32: 5 bước (có hình ảnh)
Xây dựng Bộ đọc khối lượng xe tăng với giá dưới 30 đô la Sử dụng ESP32: Internet of Things đã đưa rất nhiều ứng dụng thiết bị phức tạp trước đây vào nhà của nhiều nhà sản xuất rượu và nấu rượu thủ công. Các ứng dụng với cảm biến mức đã được sử dụng trong nhiều thập kỷ trong các nhà máy lọc dầu lớn, nhà máy xử lý nước và hóa chất
Cách đọc các bài đọc tương tự trên Raspberry Pi: 5 bước
Cách đọc các bài đọc tương tự trên Raspberry Pi: Xin chào mọi người! Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách chúng ta có thể nắm bắt trực tiếp các giá trị tương tự bằng Raspberry Pi. Như chúng ta đều biết rằng Raspberry Pi là một mô-đun máy tính mini khá mạnh mẽ, được những người có sở thích và những người yêu nghề
Đọc giá trị ADC từ chiết áp: 4 bước
Đọc giá trị ADC từ chiết áp: Trong bài viết này, tôi sẽ chỉ cho bạn cách đọc giá trị ADC từ chiết áp. Đây là cơ sở của lập trình Arduino. đang đọc các giá trị tương tự bằng cách sử dụng chân Analog do Arduino cung cấp. Ngoài việc sử dụng potentio, có một số cảm biến