Isi kandungan:

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

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

Video: Membaca Nilai Dari Peranti BLE Menggunakan CSR1010 dan Dragonboard 410c: 6 Langkah
Video: Islam's Solution to Nihilism: with Yusuf Ponders @YusufPonders 2024, November
Anonim
Membaca Nilai Dari Peranti BLE Menggunakan CSR1010 dan Dragonboard 410c
Membaca Nilai Dari Peranti BLE Menggunakan CSR1010 dan Dragonboard 410c

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

Dalam contoh ini, CSR1010 meniru sensor denyut jantung.

Langkah 1: Imbas Peranti BLE

Dalam langkah ini, periksa sama ada klien BT anda sudah siap untuk mengimbas peranti BLE.

root @ linaro-alip: / rumah / 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: Menyambungkan Peranti

Kami akan menggunakan gatttool untuk menyambungkan peranti kami

-b: Alamat MAC peranti

-t: Jenis alamat LE. Boleh umum atau rawak, perlu periksa spesifikasi peranti. Dalam kes ini adalah umum.

-I: mod interaktif gatttool. Ini akan membuka arahan untuk menghantar cmds ke peranti

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

Setelah arahan dibuka, kita dapat menghantar cmd sambung ke peranti.

[EE: 52: 5B: 04: 00: 02] [LE]> sambung Mencuba untuk menyambung ke EE: 52: 5B: 04: 00: 02

Sambungan berjaya

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

Langkah 3: Mengambil Ciri Peranti

Mengambil Ciri Peranti
Mengambil Ciri Peranti

Setelah peranti disambungkan, kita dapat membaca semua perkhidmatan yang tersedia dengan menghantar cmd "primer"

Berdasarkan UUID perkhidmatan, kami dapat mengetahui jenis perkhidmatan dalam spesifikasi GATT

www.bluetooth.com/specifications/gatt/services

Langkah 4: Membaca Nama Peranti

Nama Peranti Membaca
Nama Peranti Membaca

Mari kita terokai ciri yang dibaca pada Profil Akses Generik (uuid = 1800). Mula-mula kita perlu mendapatkan nilai pegangan servis, yang dijelaskan pada gambar pertama, dalam kes ini, bermula dari 5 hingga 11. Sekarang kita dapat mengambil semua pegangan dalam selang ini dengan menggunakan cmd char-desc

[EE: 52: 5B: 04: 00: 02] [LE]> char-desc 05 11handle: 0x0005, uuid: 00002800-0000-1000-8000-00805f9b34fb pemegang: 0x0006, uuid: 00002803-0000-1000-8000- Pemegang 00805f9b34fb: 0x0007, uuid: 00002a00-0000-1000-8000-00805f9b34fb pemegang: 0x0008, uuid: 00002803-0000-1000-8000-00805f9b34fb pegangan: 0x0009, uuid: 00002a01-0000bb00000 uuid: 00002803-0000-1000-8000-00805f9b34fb pemegang: 0x000b, uuid: 00002a04-0000-1000-8000-00805f9b34fb pemegang: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb pegangan: 0x000 -1000-8000-00805f9b34fb pemegang: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb pemegang: 0x000f, uuid: 00002902-0000-1000-8000-00805f9b34fb pemegang: 0x0010, uuid: 00002803 Pemegang 00805f9b34fb: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb

Menurut spesifikasi Profil Akses Generik, UUID 2A00 merujuk kepada Nama Peranti.

Memandangkan bahawa 2a00 adalah pegangan 0x0007 pada peranti kami, mari baca nilainya

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

Mengubah hex menjadi ASCII, nama peranti adalah: '' CSR HR Sensor ''

Langkah 5: Membaca BPM

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

UUID perkhidmatan Denyut Jantung adalah 0x180d, jadi selang pengendalian adalah dari 0x000c hingga 0x0013

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

pemegang: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb pemegang: 0x000d, uuid: 00002803-0000-1000-8000-00805f9b34fb pemegang: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9bff: Pegangan 00002902-0000-1000-8000-00805f9b34fb: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb pemegang: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb pegangan: 0x0012, ux0012, u000000 1000-8000-00805f9b34fb pemegang: 0x0013, uuid: 00002a39-0000-1000-8000-00805f9b34fb

Membaca semua Pernyataan Ciri (UUID 0x2803).

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

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

Perhatikan bahawa:

- pegangan 0x000d adalah CCCD untuk perkhidmatan 2a37 (Pengukuran Denyutan Jantung) dengan bit 10 (sokongan NOTIFY)

- pemegang 0x0010 adalah CCCD untuk perkhidmatan 2a38 (Lokasi Sensor Badan) dengan bit 02 (sokongan BACA)

- pemegang 0x0012 adalah CCCD untuk perkhidmatan 2a39 (Titik Kawalan Denyutan Jantung) dengan bit 08 (sokongan MENULIS)

Sekarang kita tahu bahawa Pengukuran Denyutan Jantung hanya berfungsi dengan pemberitahuan. Ini bermaksud bahawa pertama kita harus mendaftar untuk perubahan nilai pada CCCDnya (UUID 0x2902), yang dalam hal ini menangani 0xf

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

Pemegang pemberitahuan = 0x000e nilai: 16 65 f3 01 Nilai ciri berjaya ditulis Pegangan pemberitahuan = 0x000e nilai: 16 6d fa 01 Pegangan pemberitahuan = 0x000e nilai: 16 6d fa 01 Pemberitahuan pemegang = 0x000e nilai: 16 6c f9 01 Pemberitahuan = 0x000e nilai: 16 6a f7 01 Pemegang pemberitahuan = 0x000e nilai: 16 69 f6 01

Mengikut spesifikasi profil, nombor heksa kedua adalah maklumat BPM.

BPM:

6d = 109

6d = 109

6c = 108

6a = 106

69 = 105

Langkah 6: Membaca Lokasi Sensor Badan

Membaca Lokasi Sensor Badan
Membaca Lokasi Sensor Badan

Lokasi Sensor Badan adalah UUID 0x2A38. Menurut penerangkannya, ciri ini menyokong bacaan asas, jadi kita dapat membaca nilainya secara langsung.

[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x11Ciri ciri / perihal: 03

Menurut spesifikasi SIG, 03 bermaksud "Jari"

Disyorkan: