Inhoudsopgave:
- Stap 1: Scan BLE-apparaat
- Stap 2: Apparaat aansluiten
- Stap 3: Apparaatkenmerken ophalen
- Stap 4: Apparaatnaam lezen
- Stap 5: De BPM aflezen
- Stap 6: De locatie van de lichaamssensor aflezen
Video: Waarden lezen vanaf een BLE-apparaat met CSR1010 en Dragonboard 410c: 6 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Deze zelfstudie laat zien hoe u waarden van BLE-apparaat CSR1010 kunt lezen met Dragonboard 410c met Linaro
In dit voorbeeld emuleert de CSR1010 een hartslagsensor.
Stap 1: Scan BLE-apparaat
Controleer in deze stap of uw BT-client klaar is om BLE-apparaten te scannen.
root@linaro-alip:/home/linaro# sudo hcitool lescan
LE Scan …18:EE:69:00:CE:00 (onbekend) 18:EE:69:00:CE:00 (onbekend) EE:52:5B:04:00:02 CSR HR-sensor
Stap 2: Apparaat aansluiten
We zullen gatttool gebruiken om ons apparaat aan te sluiten
-b: MAC-adres apparaat
-t: LE-adrestype. Kan openbaar of willekeurig zijn, moet de apparaatspecificaties controleren. In dit geval is het openbaar.
-I: gatttool interactieve modus. Er wordt een prompt geopend om cmds naar het apparaat te sturen
root@linaro-alip:/home/linaro# sudo gatttool -b EE:52:5B:04:00:02 -t openbaar -I
Zodra de prompt is geopend, kunnen we connect cmd naar het apparaat sturen.
[EE:52:5B:04:00:02][LE]> connectProbeert verbinding te maken met EE:52:5B:04:00:02
Verbinding succesvol
[EE:52:5B:04:00:02][LE]>
Stap 3: Apparaatkenmerken ophalen
Zodra het apparaat is aangesloten, kunnen we alle beschikbare services lezen door de cmd "primair" te verzenden
Op basis van de service-UUID kunnen we het servicetype in de GATT-specificatie ontdekken
www.bluetooth.com/specifications/gatt/services
Stap 4: Apparaatnaam lezen
Laten we eens kijken naar de kenmerken die zijn gelezen op Generic Access Profile (uuid=1800). Eerst moeten we de service-handle-waarden ophalen, beschreven op de eerste afbeelding, in dit geval begint het van 5 tot 11. Nu kunnen we alle handvatten in dit interval ophalen met behulp van de cmd char-desc
[EE:52:5B:04:00:02][LE]> char-desc 05 11handvat: 0x0005, uuid: 00002800-0000-1000-80000-00805f9b34fb handvat: 0x0006, uuid: 00002803-0000-1000-8000- 00805f9b34fb handvat: 0x0007, uuid: 00002a00-0000-1000-8000-00805f9b34fb handvat: 0x0008, uuid: 00002803-0000-1000-8000-00805f9b34fb handvat: 0x0009, uuid: 00002a01-0000-1000-8000-00805f9b34fb uuid: 00002803-0000-1000-8000-00805f9b34fb handgreep: 0x000b, uuid: 00002a04-0000-1000-8000-000805f9b34fb handgreep: 0x000c, uuid: 00002800-0000-1000-8000-000805f9b34fb handgreep: 0x000d, uuid: 00002803- -1000-8000-000805f9b34fb handvat: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb handvat: 0x000f, uuid: 00002902-0000-1000-8000-000805f9b34fb handvat: 0x0010, uuid: 00002803-0000-1000-8000- 00805f9b34fb handvat: 0x0011, uuid: 00002a38-0000-1000-80000-00805f9b34fb
Volgens de Generic Access Profile-specificatie verwijst de UUID 2A00 naar Device Name.
Aangezien de 2a00 het handvat 0x0007 in ons apparaat is, laten we de waarde lezen
[EE:52:5B:04:00:02][LE]> char-read-hnd 7 Karakteristieke waarde/descriptor: 43 53 52 20 48 52 20 53 65 6e 73 6f 72
Hex converteren naar ASCII, de apparaatnaam is: ''CSR HR Sensor"
Stap 5: De BPM aflezen
[EE:52:5B:04:00:02][LE]> primaryattr handle: 0x0001, end grp handle: 0x0004 uuid: 00001801-0000-1000-8000-000805f9b34fb attr handle: 0x0005, end grp handle: 0x000b uuid: 00001800-0000-1000-8000-000805f9b34fb attr handgreep: 0x000c, einde handgreep: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb attr handgreep: 0x0014, einde handgreep: 0x0017 uuid: 0000180f-0000-1000-8000- 00805f9b34fb attr handgreep: 0x0018, uiteinde handgreep: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 attr handgreep: 0x0022, einde handgreep: 0xffff uuid: 0000180a-0000-1000-8000-000805f9b34fb
De UUID van de hartslagservice is 0x180d, dus het handvatinterval is van 0x000c tot 0x0013
[EE:52:5B:04:00:02][LE]> char-desc 0x00c 0x0013
handvat: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb handvat: 0x000d, uuid: 00002803-0000-1000-8000-00805f9b34fb handvat: 0x000e, uuid: 00002a37-0000-1000-8000-000805f9b34fb handvat: 0x000f, uuid: 00002902-0000-1000-8000-000805f9b34fb handvat: 0x0010, uuid: 00002803-0000-1000-8000-000805f9b34fb handvat: 0x0011, uuid: 00002a38-0000-1000-8000-000805f9b34fb handvat: 0x0012, uuid: 00002803-0000- 1000-8000-000805f9b34fb handvat: 0x0013, uuid: 00002a39-0000-1000-8000-000805f9b34fb
Alle Kenmerkverklaringen lezen (UUID 0x2803).
[EE:52:5B:04:00:02][LE]> char-read-hnd 0x000d
Kenmerkwaarde/descriptor: 10 0e 00 37 2a [EE:52:5B:04:00:02][LE]> char-read-hnd 0x0010 Kenmerkwaarde/descriptor: 02 11 00 38 2a [EE:52:5B: 04:00:02][LE]> char-read-hnd 0x0012 Karakteristieke waarde/descriptor: 08 13 00 39 2a
Let erop dat:
- handvat 0x000d is de CCCD voor service 2a37 (Hartslagmeting) met bit 10 (ondersteuning NOTIFY)
- handvat 0x0010 is de CCCD voor service 2a38 (Body Sensor Location) met bit 02 (ondersteuning LEZEN)
- handvat 0x0012 is de CCCD voor service 2a39 (Heart Rate Control Point) met bit 08 (ondersteuning WRITE)
Nu weten we dat hartslagmeting alleen werkt met melding. Het betekent dat we ons eerst moeten registreren voor waardeveranderingen in de CCCD (UUID 0x2902), in dit geval handle 0xf
[EE:52:5B:04:00:02][LE]> char-write-req 0x00f 0100
Meldingshandvat = 0x000e-waarde: 16 65 f3 01 Kenmerkwaarde is met succes geschreven Meldingshandvat = 0x000e-waarde: 16 6d fa 01 Meldingshandvat = 0x000e-waarde: 16 6d fa 01 Meldingshandvat = 0x000e-waarde: 16 6c f9 01 Meldingshandvat = 0x000e-waarde: 16 6a f7 01 Meldingshandvat = 0x000e waarde: 16 69 f6 01
Volgens de profielspecificatie is het tweede hexadecimale nummer de BPM-informatie.
BPM:
6d = 109
6d = 109
6c = 108
6a = 106
69 = 105
Stap 6: De locatie van de lichaamssensor aflezen
Lichaamssensorlocatie is de UUID 0x2A38. Volgens de descriptor ondersteunt dit kenmerk basislezen, zodat we de waarde ervan direct kunnen lezen.
[EE:52:5B:04:00:02][LE]> char-read-hnd 0x11 Karakteristieke waarde/descriptor: 03
Volgens SIG-specificatie betekent 03 "vinger"
Aanbevolen:
Meerdere analoge waarden lezen met één analoge pin - Ajarnpa
Meerdere analoge waarden lezen met één analoge pin: in deze tutorial laat ik je zien hoe je meerdere analoge waarden kunt lezen met slechts één analoge ingangspin
ADC-waarden lezen van potentiometers: 4 stappen:
Lees ADC-waarden van potentiometers: In dit artikel laat ik u zien hoe u ADC-waarden van een potentiometer kunt lezen. Dit is de basis van Arduino-programmering. die analoge waarden leest met behulp van de analoge pin die door Arduino wordt geleverd. Naast het gebruik van de potentio, zijn er verschillende sensoren die
Lezen en schrijven vanaf seriële poort met Raspberry Pi met Wemos - Ajarnpa
Lezen en schrijven vanaf seriële poort met Raspberry Pi met Wemos: communiceren met een Raspberry Pi met een Wemos D1 mini R2
Vooraf ingestelde waarden opslaan en herstellen met NFC (TfCD): 4 stappen
Vooraf ingestelde waarden opslaan en herstellen met NFC (TfCD): We willen testen hoe het werkt om een bepaalde waarde of instelling aan te passen en deze instelling later terug te roepen. Voor dit experiment hebben we een NFC-tag gebruikt om de waarde erop te lezen en vervolgens op te slaan. Later kan de tag opnieuw worden gescand en de waarde terugsturen om een cer
Een Linux-distro op een computer uitvoeren vanaf een iPod-opmerking Plz First One Posted: 5 stappen
Hoe een Linux-distro op een computer te draaien vanaf een iPod Commentaar Plz Eerste geplaatst: ik heb een populaire distro geplaatst. van Linux op mijn oude ipod en draaide het op mijn computer nogal coolWAARSCHUWING!!!!!!!!!: DIT ZAL ALLE GEGEVENS OP UW IPOD VERNIETIGEN, maar onthoud dat de ipod kan worden gereset met i tunesi een video gemaakt waar ik geen tijd voor had neem alle foto