Sadržaj:

Očitavanje vrijednosti s BLE uređaja pomoću CSR1010 i Dragonboard 410c: 6 koraka
Očitavanje vrijednosti s BLE uređaja pomoću CSR1010 i Dragonboard 410c: 6 koraka

Video: Očitavanje vrijednosti s BLE uređaja pomoću CSR1010 i Dragonboard 410c: 6 koraka

Video: Očitavanje vrijednosti s BLE uređaja pomoću CSR1010 i Dragonboard 410c: 6 koraka
Video: ESP32 Tutorial 9 - Using Push button to Toggle LED, Push ON, Push OFF -SunFounder ESP32 IoT kit 2024, Decembar
Anonim
Očitavanje vrijednosti s BLE uređaja pomoću CSR1010 i Dragonboard 410c
Očitavanje vrijednosti s BLE uređaja pomoću CSR1010 i Dragonboard 410c

Ovaj vodič prikazuje kako čitati vrijednosti s BLE uređaja CSR1010 pomoću Dragonboard 410c s Linarom

U ovom primjeru CSR1010 oponaša senzor otkucaja srca.

Korak 1: Skenirajte BLE uređaj

U ovom koraku provjerite je li vaš BT klijent spreman za skeniranje BLE uređaja.

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

LE Skeniranje … 18: EE: 69: 00: CE: 00 (nepoznato) 18: EE: 69: 00: CE: 00 (nepoznato) EE: 52: 5B: 04: 00: 02 CSR HR senzor

Korak 2: Povezivanje uređaja

Za povezivanje našeg uređaja koristit ćemo gatttool

-b: MAC adresa uređaja

-t: LE adresa tipa. Može biti javna ili nasumična, potrebno je provjeriti specifikacije uređaja. U ovom slučaju je javan.

-I: interaktivni način rada gatttool -a. Otvorit će se upit za slanje cmds -a na uređaj

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

Nakon što se upit otvori, možemo poslati cmd connect za uređaj.

[EE: 52: 5B: 04: 00: 02] [LE]> connectPokušaj povezivanja na EE: 52: 5B: 04: 00: 02

Veza je uspjela

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

Korak 3: Dohvaćanje karakteristika uređaja

Preuzimanje karakteristika uređaja
Preuzimanje karakteristika uređaja

Nakon što je uređaj spojen, možemo pročitati sve dostupne usluge slanjem cmd -a "primarni"

Na temelju UUID -a usluge, možemo otkriti vrstu usluge u GATT specifikaciji

www.bluetooth.com/specifications/gatt/services

Korak 4: Čitanje naziva uređaja

Čitanje naziva uređaja
Čitanje naziva uređaja

Istražimo karakteristike pročitane na Generic Access Profile (uuid = 1800). Prvo moramo dobiti vrijednosti uslužnog ručka, opisane na prvoj slici, u ovom slučaju, počinje od 5 do 11. Sada možemo dohvatiti sve ručke u ovom intervalu pomoću cmd char-desc

[EE: 52: 5B: 04: 00: 02] [LE]> char-desc 05 11 ručka: 0x0005, uuid: 00002800-0000-1000-8000-00805f9b34fb ručka: 0x0006, uuid: 00002803-0000-1000-8000- 00805f9b34fb ručka: 0x0007, uuid: 00002a00-0000-1000-8000-00805f9b34fb ručka: 0x0008, uuid: 00002803-0000-1000-8000-00805f9b34fb ručka: 0x0009, uuid: 00002a01-0000b, 000000, 900000 uuid: 00002803-0000-1000-8000-00805f9b34fb ručka: 0x000b, uuid: 00002a04-0000-1000-8000-00805f9b34fb ručka: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34f00 ručica: 0x000: 0x0: -1000-8000-00805f9b34fb ručka: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb ručka: 0x000f, uuid: 00002902-0000-1000-8000-00805f9b34fb ručka: 0x0010, uuid- 00002 00805f9b34fb ručka: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb

Prema specifikaciji generičkog profila pristupa, UUID 2A00 se odnosi na naziv uređaja.

S obzirom da je 2a00 ručica 0x0007 u našem uređaju, pročitajmo vrijednost

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

Pretvarajući hex u ASCII, naziv uređaja je: '' CSR HR Sensor"

Korak 5: Čitanje BPM -a

[EE: 52: 5B: 04: 00: 02] [LE]> primarna ručka: 0x0001, ručica krajnjeg grpa: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb attr ručka: 0x0005, krajnja grp ručka: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fb attr ručka: 0x000c, ručka na kraju grla: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb ručica attr: 0x0014, ručica na kraju grla: 0x0017 uuid: 0-100008-0000 00805f9b34fb attr ručka: 0x0018, završna grp ručka: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 attr ručka: 0x0022, end grp ručka: 0xffff uuid: 0000180a-0000-1000-8000-00805f934

UUID usluge otkucaja srca je 0x180d, pa je interval rukovanja od 0x000c do 0x0013

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

ručka: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb ručka: 0x000d, uuid: 00002803-0000-1000-8000-00805f9b34fb ručka: 0x000e, uuid: 00002a37-0000-1000-8000-0080bb: 00002902-0000-1000-8000-00805f9b34fb ručka: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb ručka: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34f000 ručica: 0x00: 0x00, 0x00: 0x00, 0x00: 0x00: 0 1000-8000-00805f9b34fb ručka: 0x0013, uuid: 00002a39-0000-1000-8000-00805f9b34fb

Čitanje svih karakterističnih deklaracija (UUID 0x2803).

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

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

Primijetite da:

- ručka 0x000d je CCCD za uslugu 2a37 (mjerenje pulsa) s bitom 10 (podrška NOTIFY)

- ručka 0x0010 je CCCD za uslugu 2a38 (lokacija senzora tijela) s bitom 02 (podrška READ)

- ručka 0x0012 je CCCD za uslugu 2a39 (kontrolna točka otkucaja srca) s bitom 08 (podrška za WRITE)

Sada znamo da mjerenje otkucaja srca radi samo uz obavijest. To znači da se prvo moramo registrirati za promjene vrijednosti u njenom CCCD -u (UUID 0x2902), koji je u ovom slučaju ručka 0xf

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

Ručica obavijesti = 0x000e vrijednost: 16 65 f3 01 Karakteristična vrijednost uspješno je napisana Ručka obavijesti = 0x000e vrijednost: 16 6d fa 01 Ručka obavijesti = 0x000e vrijednost: 16 6d fa 01 Ručka obavijesti = 0x000e vrijednost: 16 6c f9 01 Ručka obavijesti = 0x000e vrijednost: 16 6a f7 01 Ručka za obavijest = 0x000e vrijednost: 16 69 f6 01

Prema specifikaciji profila, drugi heksadecimalni broj su BPM informacije.

BPM:

6d = 109

6d = 109

6c = 108

6a = 106

69 = 105

Korak 6: Čitanje lokacije senzora tijela

Čitanje lokacije senzora tijela
Čitanje lokacije senzora tijela

Lokacija senzora tijela je UUID 0x2A38. Prema opisu, ova karakteristika podržava osnovno čitanje, pa možemo direktno pročitati njenu vrijednost.

[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x11Karakteristična vrijednost/deskriptor: 03

Prema SIG specifikaciji, 03 znači "prst"

Preporučuje se: