Innholdsfortegnelse:
- Trinn 1: Skann BLE -enhet
- Trinn 2: Koble til enhet
- Trinn 3: Henter enhetsegenskaper
- Trinn 4: Lese enhetsnavn
- Trinn 5: Lese BPM
- Trinn 6: Lesing av kroppssensorens plassering
Video: Lese verdier fra en BLE -enhet ved hjelp av CSR1010 og Dragonboard 410c: 6 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
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
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
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
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:
DIY -- Hvordan lage en edderkopprobot som kan kontrolleres ved hjelp av smarttelefon ved hjelp av Arduino Uno: 6 trinn
DIY || Hvordan lage en edderkopprobot som kan kontrolleres ved hjelp av smarttelefon ved hjelp av Arduino Uno: Mens du lager en edderkopprobot, kan du lære så mange ting om robotikk. Som å lage roboter er både underholdende og utfordrende. I denne videoen skal vi vise deg hvordan du lager en Spider -robot, som vi kan bruke ved hjelp av smarttelefonen vår (Androi
Hvordan lese flere analoge verdier ved hjelp av en analog pin: 6 trinn (med bilder)
Hvordan lese flere analoge verdier ved hjelp av en analog pin: I denne opplæringen skal jeg vise deg hvordan du leser flere analoge verdier ved å bruke bare en analog inngangspinne
Lese ultralydsensor (HC-SR04) Data på en 128 × 128 LCD og visualisere den ved hjelp av Matplotlib: 8 trinn
Lese ultralydsensor (HC-SR04) Data på en 128 × 128 LCD og visualisere den ved hjelp av Matplotlib: I denne instruksen vil vi bruke MSP432 LaunchPad + BoosterPack til å vise en ultralydsensors (HC-SR04) data på en 128 × 128 LCD og send dataene til PC serielt og visualiser dem ved hjelp av Matplotlib
Les ADC -verdier fra potensiometre: 4 trinn
Les ADC -verdier fra potensiometre: I denne artikkelen vil jeg vise deg hvordan du leser ADC -verdier fra et potensiometer. Dette er grunnlaget for Arduino -programmering. som leser analoge verdier ved hjelp av den analoge pinnen levert av Arduino. i tillegg til å bruke potensioet, er det flere sensorer som
Lese og skrive data til ekstern EEPROM ved hjelp av Arduino: 5 trinn
Lese og skrive data til eksternt EEPROM Bruke Arduino: EEPROM står for Electrically Erasable Programmable Read-Only Memory. EEPROM er veldig viktig og nyttig fordi det er en ikke-flyktig form for minne. Dette betyr at selv når kortet er slått av, beholder EEPROM -brikken fortsatt programmet som