Kazalo:

Branje vrednosti iz naprave BLE z uporabo CSR1010 in Dragonboard 410c: 6 korakov
Branje vrednosti iz naprave BLE z uporabo CSR1010 in Dragonboard 410c: 6 korakov

Video: Branje vrednosti iz naprave BLE z uporabo CSR1010 in Dragonboard 410c: 6 korakov

Video: Branje vrednosti iz naprave BLE z uporabo CSR1010 in Dragonboard 410c: 6 korakov
Video: 🚀 AMAZON 2.0 - ИНТЕРНЕТ МАГАЗИН с нуля за 6 часов [Next / React / Nest / PostgreSQL / Prisma / TS] 2024, November
Anonim
Branje vrednosti iz naprave BLE z uporabo CSR1010 in Dragonboard 410c
Branje vrednosti iz naprave BLE z uporabo CSR1010 in Dragonboard 410c

Ta vadnica prikazuje, kako prebrati vrednosti iz naprave BLE CSR1010 z uporabo Dragonboard 410c z Linarom

V tem primeru CSR1010 posnema senzor srčnega utripa.

1. korak: Skenirajte napravo BLE

V tem koraku preverite, ali je vaš odjemalec BT pripravljen za skeniranje naprav BLE.

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

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

2. korak: Priključitev naprave

Za povezavo naše naprave bomo uporabili gatttool

-b: MAC naslov naprave

-t: vrsta naslova LE. Lahko je javna ali naključna, potrebno je preveriti specifikacije naprave. V tem primeru je javna.

-I: interaktivni način gatttool. Odprl se bo poziv za pošiljanje cmds na napravo

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

Ko je poziv odprt, lahko na napravo pošljemo cmd connect.

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

Povezava uspešna

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

3. korak: Pridobivanje značilnosti naprave

Pridobivanje značilnosti naprave
Pridobivanje značilnosti naprave

Ko je naprava povezana, lahko preberemo vse razpoložljive storitve, tako da cmd pošljemo »primarno«

Na podlagi UUID storitve lahko odkrijemo vrsto storitve v specifikaciji GATT

www.bluetooth.com/specifications/gatt/services

4. korak: Branje imena naprave

Branje imena naprave
Branje imena naprave

Raziščimo značilnosti, prebrane na Generic Access Profile (uuid = 1800). Najprej moramo dobiti vrednosti servisnega ročaja, opisane na prvi sliki, v tem primeru se začnejo od 5 do 11. Zdaj lahko vse ročaje v tem intervalu pridobimo s pomočjo cmd char-desc

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

V skladu s specifikacijo splošnega profila dostopa se UUID 2A00 nanaša na ime naprave.

Glede na to, da je 2a00 ročaj 0x0007 v naši napravi, preberemo vrednost

[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 7 Značilna vrednost/opis: 43 53 52 20 48 52 20 53 65 6e 73 6f 72

Če pretvorite šestnajstiško besedilo v ASCII, je ime naprave: '' CSR HR Sensor ''

5. korak: branje BPM

[EE: 52: 5B: 04: 00: 02] [LE]> ročaj primarnega atr: 0x0001, ročaj končnega grpa: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb ročaj attr: 0x0005, ročaj končnega grpa: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fb attr ročaj: 0x000c, ročaj na koncu grpa: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb ročaj attr: 0x0014, ročaj na koncu grpa: 0x0017 uuid: 00001000-8000 00805f9b34fb ročaj attr: 0x0018, ročaj konca grp: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 ročaj attr: 0x0022, ročaj konca grp: 0xffff uuid: 0000180a-0000-1000-8000-00805f9b

UUID storitve srčnega utripa je 0x180d, zato je interval ročaja od 0x000c do 0x0013

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

ročaj: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb ročaj: 0x000d, uuid: 00002803-0000-1000-8000-00805f9b34fb ročaj: 0x000e, uuid: 00002a37-0000-1000-8000-0080bb: 00002902-0000-1000-8000-00805f9b34fb ročaj: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb ročaj: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb ročaj: 0x00-00: 0x00: 0x00: 0x00: 0x00: 0 1000-8000-00805f9b34fb ročaj: 0x0013, uuid: 00002a39-0000-1000-8000-00805f9b34fb

Branje vseh značilnih deklaracij (UUID 0x2803).

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

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

Upoštevajte, da:

- ročaj 0x000d je CCCD za storitev 2a37 (merjenje srčnega utripa) z bitom 10 (podpora NOTIFY)

- ročaj 0x0010 je CCCD za storitev 2a38 (lokacija senzorja telesa) z bitom 02 (podpora READ)

- ročaj 0x0012 je CCCD za storitev 2a39 (kontrolna točka srčnega utripa) z bitom 08 (podpira WRITE)

Zdaj vemo, da merjenje srčnega utripa deluje samo z obvestilom. To pomeni, da se moramo najprej registrirati za spremembe vrednosti v njegovem CCCD (UUID 0x2902), ki je v tem primeru ročaj 0xf

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

Ročaj obvestila = vrednost 0x000e: 16 65 f3 01 Značilna vrednost je bila uspešno zapisana Ročica obvestila = vrednost 0x000e: 16 6d fa 01 Ročaj obvestila = vrednost 0x000e: 16 6d fa 01 Ročica obvestila = vrednost 0x000e: 16 6c f9 01 Ročica obvestila = 0x000e vrednost: 16 6a f7 01 Ročaj za obvestilo = vrednost 0x000e: 16 69 f6 01

V skladu s specifikacijo profila je druga šestnajst številka informacija BPM.

BPM:

6d = 109

6d = 109

6c = 108

6a = 106

69 = 105

6. korak: Branje lokacije senzorja telesa

Branje lokacije senzorja telesa
Branje lokacije senzorja telesa

Lokacija senzorja telesa je UUID 0x2A38. Po svojem opisu ta lastnost podpira osnovno branje, zato lahko neposredno preberemo njeno vrednost.

[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x11 Značilna vrednost/opis: 03

V skladu s specifikacijo SIG 03 pomeni "prst"

Priporočena: