Indholdsfortegnelse:
- Trin 1: Scan BLE -enhed
- Trin 2: Tilslutning af enhed
- Trin 3: Hentning af enhedsegenskaber
- Trin 4: Læsning af enhedsnavn
- Trin 5: Læsning af BPM
- Trin 6: Læsning af kropssensorens placering
Video: Læsning af værdier fra en BLE -enhed ved hjælp af CSR1010 og Dragonboard 410c: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
Denne vejledning viser, hvordan du læser værdier fra BLE -enhed CSR1010 ved hjælp af Dragonboard 410c med Linaro
I dette eksempel efterligner CSR1010 en pulssensor.
Trin 1: Scan BLE -enhed
I dette trin skal du kontrollere, om din BT -klient er klar til at scanne BLE -enheder.
root@linaro-alip:/home/linaro# sudo hcitool lescan
LE Scan … 18: EE: 69: 00: CE: 00 (ukendt) 18: EE: 69: 00: CE: 00 (ukendt) EE: 52: 5B: 04: 00: 02 CSR HR -sensor
Trin 2: Tilslutning af enhed
Vi vil bruge gatttool til at forbinde vores enhed
-b: Enhedens MAC -adresse
-t: LE -adressetype. Kan være offentlig eller tilfældig, skal tjekkes enhedsspecifikationer. I dette tilfælde er det offentligt.
-I: gatttool interaktiv tilstand. Det åbner en prompt om at sende cmds til enheden
root@linaro -alip:/home/linaro# sudo gatttool -b EE: 52: 5B: 04: 00: 02 -t public -I
Når prompten er åben, kan vi sende connect cmd til enheden.
[EE: 52: 5B: 04: 00: 02] [LE]> connect Forsøger at oprette forbindelse til EE: 52: 5B: 04: 00: 02
Forbindelsen lykkedes
[EE: 52: 5B: 04: 00: 02] [LE]>
Trin 3: Hentning af enhedsegenskaber
Når enheden er tilsluttet, kan vi læse alle tilgængelige tjenester ved at sende cmd "primær"
Baseret på tjenesten UUID kan vi opdage servicetypen i GATT -specifikation
www.bluetooth.com/specifications/gatt/services
Trin 4: Læsning af enhedsnavn
Lad os undersøge de egenskaber, der er læst på Generic Access Profile (uuid = 1800). Først skal vi hente servicehåndtagets værdier, beskrevet på første billede, i dette tilfælde starter fra 5 til 11. Nu kan vi hente alle håndtag i dette interval ved hjælp af cmd char-desc
[EE: 52: 5B: 04: 00: 02] [LE]> char-desc 05 11 håndtag: 0x0005, uuid: 00002800-0000-1000-8000-00805f9b34fb håndtag: 0x0006, uuid: 00002803-0000-1000-8000- 00805f9b34fb håndtag: 0x0007, uuid: 00002a00-0000-1000-8000-00805f9b34fb håndtag: 0x0008, uuid: 00002803-0000-1000-8000-00805f9b34fb håndtag: 0x0009, uuid: 00002a01-0000-10008000 uuid: 00002803-0000-1000-8000-00805f9b34fb håndtag: 0x000b, uuid: 00002a04-0000-1000-8000-00805f9b34fb håndtag: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb håndtag: 0x000 -1000-8000-00805f9b34fb håndtag: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb håndtag: 0x000f, uuid: 00002902-0000-1000-8000-00805f9b34fb håndtag: 0x0010, uuid: 00002803 00805f9b34fb håndtag: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb
I henhold til specifikationen for generisk adgangsprofil refererer UUID 2A00 til enhedsnavn.
I betragtning af at 2a00 er håndtaget 0x0007 i vores enhed, lad os læse værdien
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 7 Karakteristisk værdi/deskriptor: 43 53 52 20 48 52 20 53 65 6e 73 6f 72
Ved konvertering af hex til ASCII er enhedsnavnet: '' CSR HR Sensor ''
Trin 5: Læsning af BPM
[EE: 52: 5B: 04: 00: 02] [LE]> primærattr-håndtag: 0x0001, ende-grp-håndtag: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb attr-håndtag: 0x0005, ende-grp-håndtag: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fb attr håndtag: 0x000c, ende grp håndtag: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb attr håndtag: 0x0014, ende grp håndtag: 0x0017 uuid: 0000180f-00000 00805f9b34fb attr håndtag: 0x0018, ende grp håndtag: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 attr håndtag: 0x0022, ende grp håndtag: 0xffff uuid: 0000180a-0000-1000-8000-00805f9
Pulsservice UUID er 0x180d, så håndteringsintervallet er fra 0x000c til 0x0013
[EE: 52: 5B: 04: 00: 02] [LE]> char-desc 0x00c 0x0013
håndtag: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb håndtag: 0x000d, uuid: 00002803-0000-1000-8000-00805f9b34fb håndtag: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34f: 00002902-0000-1000-8000-00805f9b34fb håndtag: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb håndtag: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb håndtag: 0x0012, uuid: 1000-8000-00805f9b34fb håndtag: 0x0013, uuid: 00002a39-0000-1000-8000-00805f9b34fb
Læser alle de karakteristiske erklæringer (UUID 0x2803).
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x000d
Karakteristisk værdi/beskrivelse: 10 0e 00 37 2a [EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x0010 Karakteristisk værdi/deskriptor: 02 11 00 38 2a [EE: 52: 5B: 04:00:02] [LE]> char-read-hnd 0x0012 Karakteristisk værdi/deskriptor: 08 13 00 39 2a
Læg mærke til det:
- håndtag 0x000d er CCCD for service 2a37 (pulsmåling) med bit 10 (understøtt NOTIFY)
- håndtag 0x0010 er CCCD for service 2a38 (Body Sensor Location) med bit 02 (understøtt LÆS)
- håndtag 0x0012 er CCCD for service 2a39 (hjertefrekvenskontrolpunkt) med bit 08 (support WRITE)
Nu ved vi, at pulsmåling kun fungerer med underretning. Det betyder, at vi først skal registrere for værdiændringer i dens CCCD (UUID 0x2902), som i dette tilfælde håndterer 0xf
[EE: 52: 5B: 04: 00: 02] [LE]> char-write-req 0x00f 0100
Notifikationshåndtag = 0x000e værdi: 16 65 f3 01 Karakteristisk værdi blev skrevet med succes Notification handle = 0x000e value: 16 6d fa 01 Notification handle = 0x000e value: 16 6d fa 01 Notification handle = 0x000e value: 16 6c f9 01 Notification handle = 0x000e value: 16 6a f7 01 Notifikationshåndtag = 0x000e værdi: 16 69 f6 01
Ifølge profilspecifikationen er det andet hex -nummer BPM -informationen.
BPM:
6d = 109
6d = 109
6c = 108
6a = 106
69 = 105
Trin 6: Læsning af kropssensorens placering
Body Sensor Location er UUID 0x2A38. Ifølge dens deskriptor understøtter denne egenskab grundlæggende læsning, så vi kan læse dens værdi direkte.
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x11 Karakteristisk værdi/deskriptor: 03
Ifølge SIG -specifikationen betyder 03 "Finger"
Anbefalede:
Sådan læses flere analoge værdier ved hjælp af en analog pin: 6 trin (med billeder)
Sådan læses flere analoge værdier ved hjælp af en analog pin: I denne vejledning vil jeg vise dig, hvordan du læser flere analoge værdier ved hjælp af kun en analog input -pin
Læsning af ultralydssensor (HC-SR04) Data på en 128 × 128 LCD og visualisering ved hjælp af Matplotlib: 8 trin
Læsning af ultralydssensor (HC-SR04) Data på en 128 × 128 LCD og visualisering af dem ved hjælp af Matplotlib: I denne instruks vil vi bruge MSP432 LaunchPad + BoosterPack til at vise en ultralydssensors (HC-SR04) data på en 128 × 128 LCD og send dataene til pc serielt og visualiser dem ved hjælp af Matplotlib
Læs ADC -værdier fra potentiometre: 4 trin
Læs ADC -værdier fra potentiometre: I denne artikel vil jeg vise dig, hvordan du læser ADC -værdier fra et potentiometer. Dette er grundlaget for Arduino -programmering. som læser analoge værdier ved hjælp af den analoge pin leveret af Arduino. udover at bruge potentio, er der flere sensorer, der
Læsning og skrivning af data til ekstern EEPROM ved hjælp af Arduino: 5 trin
Læsning og skrivning af data til ekstern EEPROM Brug af Arduino: EEPROM står for elektrisk sletbar programmerbar skrivebeskyttet hukommelse. EEPROM er meget vigtig og nyttig, fordi den er en ikke-flygtig form for hukommelse. Det betyder, at selv når kortet er slukket, bevarer EEPROM -chippen stadig det program, der
Objektdetektion W/ Dragonboard 410c eller 820c ved hjælp af OpenCV og Tensorflow .: 4 trin
Object Detection W/ Dragonboard 410c eller 820c Brug af OpenCV og Tensorflow .: Denne instruktionsbog beskriver, hvordan du installerer OpenCV, Tensorflow og machine learning -rammer til Python 3.5 til at køre Object Detection -applikationen