Isi kandungan:
- Langkah 1: Imbas Peranti BLE
- Langkah 2: Menyambungkan Peranti
- Langkah 3: Mengambil Ciri Peranti
- Langkah 4: Membaca Nama Peranti
- Langkah 5: Membaca BPM
- Langkah 6: Membaca Lokasi Sensor Badan
Video: Membaca Nilai Dari Peranti BLE Menggunakan CSR1010 dan Dragonboard 410c: 6 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:11
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
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
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
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:
Membaca dan Membuat Grafik Data Sensor Cahaya dan Suhu Dengan Raspberry Pi: 5 Langkah
Membaca dan Membuat Grafik Data Sensor Cahaya dan Suhu Dengan Raspberry Pi: Dalam Instruksional ini, anda akan belajar bagaimana membaca sensor cahaya dan suhu dengan raspberry pi dan ADS1115 analog ke penukar digital dan grafik menggunakan matplotlib. Mari mulakan dengan bahan yang diperlukan
Cara Membaca Pelbagai Nilai Analog Menggunakan Satu Pin Analog: 6 Langkah (dengan Gambar)
Cara Membaca Beberapa Nilai Analog Menggunakan Satu Pin Analog: Dalam tutorial ini, saya akan menunjukkan kepada anda cara membaca pelbagai nilai analog dengan hanya menggunakan satu pin input analog
Membaca Data Sensor Ultrasonik (HC-SR04) pada LCD 128 × 128 dan Memvisualisasikannya Menggunakan Matplotlib: 8 Langkah
Membaca Data Sensor Ultrasonik (HC-SR04) pada LCD 128 × 128 dan Memvisualisasikannya Menggunakan Matplotlib: Dalam arahan ini, kami akan menggunakan MSP432 LaunchPad + BoosterPack untuk memaparkan data sensor ultrasonik (HC-SR04) pada 128 × 128 LCD dan hantar data ke PC secara bersiri dan bayangkan menggunakan Matplotlib
Menggunakan Raspberry Pi, Nilai Kelembapan dan Suhu Dengan Langkah SI7006: 6
Menggunakan Raspberry Pi, Nilai Kelembapan dan Suhu Dengan SI7006: Sebagai peminat Raspberry Pi, kami memikirkan beberapa eksperimen yang lebih hebat dengannya. Dalam kempen ini, kami akan mengukur suhu dan kelembapan yang perlu dikendalikan, menggunakan Raspberry Pi dan SI7006, Sensasi Kelembapan dan Suhu
Membaca dan Menulis Data ke EEPROM Luaran Menggunakan Arduino: 5 Langkah
Membaca dan Menulis Data ke EEPROM Luaran Menggunakan Arduino: EEPROM bermaksud Memori Baca-Sahaja Boleh Diprogramkan dengan Pemadaman Elektrik. EEPROM sangat penting dan berguna kerana ia adalah bentuk memori yang tidak mudah berubah. Ini bermaksud bahawa walaupun papan dimatikan, cip EEPROM masih mengekalkan program yang