Daftar Isi:

Membaca Nilai Dari Perangkat BLE Menggunakan CSR1010 dan Dragonboard 410c: 6 Langkah
Membaca Nilai Dari Perangkat BLE Menggunakan CSR1010 dan Dragonboard 410c: 6 Langkah

Video: Membaca Nilai Dari Perangkat BLE Menggunakan CSR1010 dan Dragonboard 410c: 6 Langkah

Video: Membaca Nilai Dari Perangkat BLE Menggunakan CSR1010 dan Dragonboard 410c: 6 Langkah
Video: Live Unboxing Redragon Mechanical Keyboard Anivia + Bandingin Ukuran Keyboard | MooneChan 2024, November
Anonim
Membaca Nilai Dari Perangkat BLE Menggunakan CSR1010 dan Dragonboard 410c
Membaca Nilai Dari Perangkat BLE Menggunakan CSR1010 dan Dragonboard 410c

Tutorial ini menunjukkan cara membaca nilai dari perangkat BLE CSR1010 menggunakan Dragonboard 410c dengan Linaro

Dalam contoh ini, CSR1010 meniru sensor detak jantung.

Langkah 1: Pindai Perangkat BLE

Pada langkah ini, periksa apakah klien BT Anda siap untuk memindai perangkat BLE.

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

LE Scan …18:EE:69:00:CE:00 (tidak diketahui) 18:EE:69:00:CE:00 (tidak diketahui) EE:52:5B:04:00:02 Sensor HR CSR

Langkah 2: Menghubungkan Perangkat

Kami akan menggunakan gatttool untuk menghubungkan perangkat kami

-b: Alamat MAC perangkat

-t: tipe alamat LE. Bisa publik atau acak, perlu memeriksa spesifikasi perangkat. Dalam hal ini bersifat publik.

-I: mode interaktif gatttool. Ini akan membuka prompt untuk mengirim cmd ke perangkat

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

Setelah prompt terbuka, kami dapat mengirim connect cmd ke perangkat.

[EE:52:5B:04:00:02][LE]> connectMencoba menyambungkan ke EE:52:5B:04:00:02

Koneksi berhasil

[EE:52:5B:04:00:02][LE]>

Langkah 3: Mengambil Karakteristik Perangkat

Mengambil Karakteristik Perangkat
Mengambil Karakteristik Perangkat

Setelah perangkat terhubung, kita dapat membaca semua layanan yang tersedia dengan mengirimkan cmd "primer"

Berdasarkan UUID layanan, kita dapat menemukan jenis layanan dalam spesifikasi GATT

www.bluetooth.com/specifications/gatt/services

Langkah 4: Membaca Nama Perangkat

Membaca Nama Perangkat
Membaca Nama Perangkat

Mari kita jelajahi karakteristik yang dibaca di Generic Access Profile (uuid=1800). Pertama kita perlu mendapatkan nilai service handle, seperti yang dijelaskan pada gambar pertama, dalam hal ini, mulai dari 5 sampai 11. Sekarang kita dapat mengambil semua handle dalam interval ini dengan menggunakan 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 pegangan: 0x0007, uuid: 00002a00-0000-1000-8000-00805f9b34fb pegangan: 0x0008, uuid: 00002803-0000-1000-8000-00805f9b34fb pegangan: 0x0009, uuid: 00002a01-0000-0000-1000-8000-0 uuid: 00002803-0000-1000-8000-00805f9b34fb pegangan: 0x000b, uuid: 00002a04-0000-1000-8000-00805f9b34fb pegangan: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb pegangan: 0x000d, uuid: -1000-8000-00805f9b34fb pegangan: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb pegangan: 0x000f, uuid: 00002902-0000-1000-80000-00805f9b34fb pegangan: 0x0010, uuid: 00002803-0000-1000-8000--0000-1000-8000 00805f9b34fb pegangan: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb

Menurut spesifikasi Profil Akses Umum, UUID 2A00 mengacu pada Nama Perangkat.

Mengingat 2a00 adalah pegangan 0x0007 di perangkat kita, mari baca nilainya

[EE:52:5B:04:00:02][LE]> char-read-hnd 7Nilai karakteristik/deskriptor: 43 53 52 20 48 52 20 53 65 6e 73 6f 72

Mengubah hex ke ASCII, nama perangkatnya adalah: ''CSR HR Sensor"

Langkah 5: Membaca BPM

[EE:52:5B:04:00:02][LE]> pegangan attr utama: 0x0001, pegangan grp akhir: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb pegangan attr: 0x0005, pegangan akhir grp: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fb attr handle: 0x000c, end grp handle: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb attr handle: 0x0014, end grp handle: 0x0017 uuid: 0000180f-0000-1000-8000- 00805f9b34fb attr handle: 0x0018, end grp handle: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 attr handle: 0x0022, end grp handle: 0xffff uuid: 0000180a-0000-1000-8000-00805f9b34fb

UUID layanan Denyut Jantung adalah 0x180d, jadi interval penanganannya adalah dari 0x000c hingga 0x0013

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

pegangan: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb pegangan: 0x000d, uuid: 00002803-0000-1000-8000-00805f9b34fb pegangan: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb, pegangan: 0uid000fb: 00002902-0000-1000-8000-00805f9b34fb pegangan: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb pegangan: 0x0011, uuid: 00002a38-0000-1000-80000-00805f9b34fb pegangan: 0x0012, uuid: 00002803 1000-8000-00805f9b34fb pegangan: 0x0013, uuid: 00002a39-0000-1000-8000-00805f9b34fb

Membaca semua Deklarasi Karakteristik (UUID 0x2803).

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

Nilai/deskriptor karakteristik: 10 0e 00 37 2a [EE:52:5B:04:00:02][LE]> char-read-hnd 0x0010 Nilai karakteristik/deskriptor: 02 11 00 38 2a [EE:52:5B: 04:00:02][LE]> char-read-hnd 0x0012 Nilai karakteristik/deskriptor: 08 13 00 39 2a

Perhatikan itu:

- menangani 0x000d adalah CCCD untuk layanan 2a37 (Pengukuran Detak Jantung) dengan bit 10 (dukungan NOTIFY)

- handle 0x0010 adalah CCCD untuk layanan 2a38 (Lokasi Sensor Tubuh) dengan bit 02 (dukungan READ)

- handle 0x0012 adalah CCCD untuk service 2a39 (Heart Rate Control Point) dengan bit 08 (support WRITE)

Sekarang kita tahu bahwa Pengukuran Detak Jantung hanya berfungsi dengan pemberitahuan. Artinya kita harus register dulu untuk perubahan nilai di CCCD-nya (UUID 0x2902), yang dalam hal ini adalah handle 0xf

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

Gagang notifikasi = nilai 0x000e: 16 65 f3 01 Nilai karakteristik berhasil ditulis Gagang notifikasi = nilai 0x000e: 16 6d fa 01 Gagang notifikasi = 0x000e nilai: 16 6d fa 01 Gagang notifikasi = nilai 0x000e: 16 6c f9 01 Gagang notifikasi = nilai 0x000e: 16 6a f7 01 Gagang notifikasi = 0x000e nilai: 16 69 f6 01

Menurut spesifikasi profil, nomor hex kedua adalah informasi BPM.

BPM:

6d = 109

6d = 109

6c = 108

6a = 106

69 = 105

Langkah 6: Membaca Lokasi Sensor Tubuh

Membaca Lokasi Sensor Tubuh
Membaca Lokasi Sensor Tubuh

Lokasi Sensor Tubuh adalah UUID 0x2A38. Menurut deskriptornya, karakteristik ini mendukung pembacaan dasar, sehingga kita dapat membaca nilainya secara langsung.

[EE:52:5B:04:00:02][LE]> char-read-hnd 0x11Nilai karakteristik/deskriptor: 03

Menurut spesifikasi SIG, 03 berarti "Jari"

Direkomendasikan: