Innholdsfortegnelse:

Lese verdier fra en BLE -enhet ved hjelp av CSR1010 og Dragonboard 410c: 6 trinn
Lese verdier fra en BLE -enhet ved hjelp av CSR1010 og Dragonboard 410c: 6 trinn

Video: Lese verdier fra en BLE -enhet ved hjelp av CSR1010 og Dragonboard 410c: 6 trinn

Video: Lese verdier fra en BLE -enhet ved hjelp av CSR1010 og Dragonboard 410c: 6 trinn
Video: Золотая орда в Былинах Русских 2024, November
Anonim
Lese verdier fra en BLE -enhet ved hjelp av CSR1010 og Dragonboard 410c
Lese verdier fra en BLE -enhet ved hjelp av CSR1010 og Dragonboard 410c

Denne opplæringen viser hvordan du leser verdier fra BLE -enheten CSR1010 ved hjelp av Dragonboard 410c med Linaro

I dette eksemplet etterligner CSR1010 en pulssensor.

Trinn 1: Skann BLE -enhet

I dette trinnet, sjekk om BT -klienten din er klar for skanning av BLE -enheter.

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

LE Scan … 18: EE: 69: 00: CE: 00 (ukjent) 18: EE: 69: 00: CE: 00 (ukjent) EE: 52: 5B: 04: 00: 02 CSR HR -sensor

Trinn 2: Koble til enhet

Vi bruker gatttool for å koble til enheten vår

-b: Enhetens MAC -adresse

-t: LE -adressetype. Kan være offentlig eller tilfeldig, må sjekke enhetsspesifikasjoner. I dette tilfellet er det offentlig.

-I: interaktiv modus for gatttool. Det vil åpne en melding om å sende cmds til enheten

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

Når ledeteksten er åpen, kan vi sende connect cmd til enheten.

[EE: 52: 5B: 04: 00: 02] [LE]> koble Forsøker å koble til EE: 52: 5B: 04: 00: 02

Tilkoblingen var vellykket

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

Trinn 3: Henter enhetsegenskaper

Henter enhetsegenskaper
Henter enhetsegenskaper

Når enheten er tilkoblet, kan vi lese alle tilgjengelige tjenester ved å sende cmd "primær"

Basert på tjenesten UUID kan vi oppdage tjenestetypen i GATT -spesifikasjonen

www.bluetooth.com/specifications/gatt/services

Trinn 4: Lese enhetsnavn

Leser enhetsnavn
Leser enhetsnavn

La oss utforske egenskapene som er lest på Generic Access Profile (uuid = 1800). Først må vi få servicehåndtakets verdier, beskrevet på første bilde, i dette tilfellet starter fra 5 til 11. Nå kan vi hente alle håndtak i dette intervallet ved å bruke cmd char-desc

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

I henhold til spesifikasjonen for generisk tilgangsprofil refererer UUID 2A00 til enhetsnavn.

Med tanke på at 2a00 er håndtaket 0x0007 i enheten, la oss lese verdien

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

Ved å konvertere hex til ASCII er enhetsnavnet: '' CSR HR Sensor ''

Trinn 5: Lese BPM

[EE: 52: 5B: 04: 00: 02] [LE]> primærattr håndtak: 0x0001, ende grp håndtak: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb attr håndtak: 0x0005, ende grp håndtak: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fb attr håndtak: 0x000c, ende grp håndtak: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb attr håndtak: 0x0014, ende grp håndtak: 0x0017 uuid: 0000180f-00000 00805f9b34fb attr håndtak: 0x0018, ende grp håndtak: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 attr håndtak: 0x0022, ende grp håndtak: 0xffff uuid: 0000180a-0000-1000-8000-00805f9

Pulstjenesten UUID er 0x180d, så håndteringsintervallet er fra 0x000c til 0x0013

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

håndtak: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb håndtak: 0x000d, uuid: 00002803-0000-1000-8000-00805f9b34fb håndtak: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34f: 00002902-0000-1000-8000-00805f9b34fb håndtak: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb håndtak: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb håndtak: 0x0012, uuid: 1000-8000-00805f9b34fb håndtak: 0x0013, uuid: 00002a39-0000-1000-8000-00805f9b34fb

Leser alle de karakteristiske erklæringene (UUID 0x2803).

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

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

Legg merke til det:

- håndtak 0x000d er CCCD for service 2a37 (pulsmåling) med bit 10 (støtt VARSEL)

- håndtak 0x0010 er CCCD for service 2a38 (Body Sensor Location) med bit 02 (støtte LES)

- håndtak 0x0012 er CCCD for service 2a39 (hjertefrekvenskontrollpunkt) med bit 08 (støtte WRITE)

Nå vet vi at pulsmåling bare fungerer med varsling. Det betyr at vi først må registrere oss for verdiendringer i CCCD (UUID 0x2902), som i dette tilfellet håndterer 0xf

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

Meldingshåndtak = 0x000e verdi: 16 65 f3 01 Karakteristisk verdi ble skrevet vellykket Varslingshåndtak = 0x000e verdi: 16 6d fa 01 Meldingshåndtak = 0x000e verdi: 16 6d fa 01 Meldingshåndtak = 0x000e verdi: 16 6c f9 01 Meldingshåndtak = 0x000e verdi: 16 6a f7 01 Meldingshåndtak = 0x000e verdi: 16 69 f6 01

I henhold til profilspesifikasjonen er det andre hex -nummeret BPM -informasjonen.

BPM:

6d = 109

6d = 109

6c = 108

6a = 106

69 = 105

Trinn 6: Lesing av kroppssensorens plassering

Leser kroppssensorens plassering
Leser kroppssensorens plassering

Body Sensor Location er UUID 0x2A38. Ifølge beskrivelsen støtter denne egenskapen grunnleggende lesing, slik at vi kan lese verdien direkte.

[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x11 Karakteristisk verdi/beskrivelse: 03

I henhold til SIG -spesifikasjonen betyr 03 "Finger"

Anbefalt: