Innehållsförteckning:
- Steg 1: Skanna BLE -enhet
- Steg 2: Anslut enhet
- Steg 3: Hämta enhetens egenskaper
- Steg 4: Läsa enhetsnamn
- Steg 5: Läser BPM
- Steg 6: Läsa kroppssensorns plats
Video: Läsa värden från en BLE -enhet med CSR1010 och Dragonboard 410c: 6 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Denna handledning visar hur man läser värden från BLE -enhet CSR1010 med Dragonboard 410c med Linaro
I det här exemplet emulerar CSR1010 en pulssensor.
Steg 1: Skanna BLE -enhet
I det här steget, kontrollera om din BT -klient är redo att skanna BLE -enheter.
root@linaro-alip:/home/linaro# sudo hcitool lescan
LE Scan … 18: EE: 69: 00: CE: 00 (okänd) 18: EE: 69: 00: CE: 00 (okänd) EE: 52: 5B: 04: 00: 02 CSR HR -sensor
Steg 2: Anslut enhet
Vi kommer att använda gatttool för att ansluta vår enhet
-b: Enhetens MAC -adress
-t: LE -adresstyp. Kan vara offentlig eller slumpmässig, behöver kontrollera enhetsspecifikationer. I det här fallet är det offentligt.
-I: gatttool interaktivt läge. Det öppnar en uppmaning att skicka cmds till enheten
root@linaro -alip:/home/linaro# sudo gatttool -b EE: 52: 5B: 04: 00: 02 -t public -I
När uppmaningen är öppen kan vi skicka connect cmd till enheten.
[EE: 52: 5B: 04: 00: 02] [LE]> connect Försöker ansluta till EE: 52: 5B: 04: 00: 02
Anslutningen lyckades
[EE: 52: 5B: 04: 00: 02] [LE]>
Steg 3: Hämta enhetens egenskaper
När enheten är ansluten kan vi läsa alla tillgängliga tjänster genom att skicka cmd "primär"
Baserat på tjänsten UUID kan vi upptäcka servicetypen i GATT -specifikationen
www.bluetooth.com/specifications/gatt/services
Steg 4: Läsa enhetsnamn
Låt oss utforska egenskaperna som läses på Generic Access Profile (uuid = 1800). Först måste vi få servicehandtagets värden, som beskrivs på första bilden, i det här fallet, börjar från 5 till 11. Nu kan vi hämta alla handtag i detta intervall med hjälp av cmd char-desc
[EE: 52: 5B: 04: 00: 02] [LE]> char-desc 05 11handtag: 0x0005, uuid: 00002800-0000-1000-8000-00805f9b34fb handtag: 0x0006, uuid: 00002803-0000-1000-8000- 00805f9b34fb handtag: 0x0007, uuid: 00002a00-0000-1000-8000-00805f9b34fb handtag: 0x0008, uuid: 00002803-0000-1000-8000-00805f9b34fb handtag: 0x0009, uuid: 00002a01-0000-10008000 uuid: 00002803-0000-1000-8000-00805f9b34fb handtag: 0x000b, uuid: 00002a04-0000-1000-8000-00805f9b34fb handtag: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb handtag: 0x000 -1000-8000-00805f9b34fb handtag: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb handtag: 0x000f, uuid: 00002902-0000-1000-8000-00805f9b34fb handtag: 0x0010, uuid: 00002803- 00805f9b34fb handtag: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb
Enligt specifikationen för generisk åtkomstprofil hänvisar UUID 2A00 till enhetsnamn.
Med tanke på att 2a00 är handtaget 0x0007 i vår enhet, låt oss läsa värdet
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 7 Karakteristiskt värde/beskrivning: 43 53 52 20 48 52 20 53 65 6e 73 6f 72
Omvandlar hex till ASCII, är enhetens namn: '' CSR HR Sensor ''
Steg 5: Läser BPM
[EE: 52: 5B: 04: 00: 02] [LE]> primärattr-handtag: 0x0001, änd-grp-handtag: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb attr-handtag: 0x0005, slut-grp-handtag: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fb attr-handtag: 0x000c, änd-grp-handtag: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb attr-handtag: 0x0014, slutet grp-handtag: 0x0017 uuid: 0000180f-00000 00805f9b34fb attr-handtag: 0x0018, end-grp-handtag: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 attr-handtag: 0x0022, änd-grp-handtag: 0xffff uuid: 0000180a-0000-1000-8000-00805f9
Pulstjänsten UUID är 0x180d, så hanteringsintervallet är från 0x000c till 0x0013
[EE: 52: 5B: 04: 00: 02] [LE]> char-desc 0x00c 0x0013
handtag: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb handtag: 0x000d, uuid: 00002803-0000-1000-8000-00805f9b34fb handtag: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34f: 00002902-0000-1000-8000-00805f9b34fb handtag: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb handtag: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb handtag: 0x0012, uuid: 1000-8000-00805f9b34fb handtag: 0x0013, uuid: 00002a39-0000-1000-8000-00805f9b34fb
Läser alla karaktäristiska deklarationer (UUID 0x2803).
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x000d
Karakteristiskt värde/beskrivning: 10 0e 00 37 2a [EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x0010 Karakteristiskt värde/beskrivning: 02 11 00 38 2a [EE: 52: 5B: 04:00:02] [LE]> char-read-hnd 0x0012 Karakteristiskt värde/deskriptor: 08 13 00 39 2a
Lägg märke till att:
- handtag 0x000d är CCCD för service 2a37 (pulsmätning) med bit 10 (stöd NOTIFY)
- handtag 0x0010 är CCCD för service 2a38 (Body Sensor Location) med bit 02 (stöd LÄS)
- handtag 0x0012 är CCCD för service 2a39 (pulskontrollpunkt) med bit 08 (stöd WRITE)
Nu vet vi att pulsmätning endast fungerar med aviseringar. Det betyder att vi först måste registrera oss för värdeförändringar i dess CCCD (UUID 0x2902), som i detta fall hanterar 0xf
[EE: 52: 5B: 04: 00: 02] [LE]> char-write-req 0x00f 0100
Meddelandehandtag = 0x000e värde: 16 65 f3 01 Karakteristiskt värde skrevs framgångsrikt Meddelandehandtag = 0x000e värde: 16 6d fa 01 Meddelandehandtag = 0x000e värde: 16 6d fa 01 Meddelandehandtag = 0x000e värde: 16 6c f9 01 Meddelandehandtag = 0x000e värde: 16 6a f7 01 Meddelandehandtag = 0x000e värde: 16 69 f6 01
Enligt profilspecifikationen är det andra hexanumret BPM -informationen.
BPM:
6d = 109
6d = 109
6c = 108
6a = 106
69 = 105
Steg 6: Läsa kroppssensorns plats
Body Sensor Location är UUID 0x2A38. Enligt dess deskriptor stöder denna egenskap grundläggande läsning, så att vi kan läsa dess värde direkt.
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x11 Karakteristiskt värde/beskrivning: 03
Enligt SIG -specifikationen betyder 03 "Finger"
Rekommenderad:
Läsa och rita ljus- och temperatursensordata med Raspberry Pi: 5 steg
Läsa och rita ljus- och temperatursensordata med Raspberry Pi: I den här instruktionsboken lär du dig att läsa en ljus- och temperatursensor med hallon pi och ADS1115 analog till digital omvandlare och rita den med matplotlib. Låt oss börja med det material som behövs
Läsa ultraljudssensor (HC-SR04) Data på en 128 × 128 LCD och visualisera den med Matplotlib: 8 steg
Läsa ultraljudssensor (HC-SR04) Data på en 128 × 128 LCD-skärm och visualisera den med Matplotlib: I denna instruktör kommer vi att använda MSP432 LaunchPad + BoosterPack för att visa en ultraljudssensors (HC-SR04) data på en 128 × 128 LCD och skicka data till PC seriellt och visualisera dem med Matplotlib
Läs ADC -värden från potentiometrar: 4 steg
Läs ADC -värden från potentiometrar: I den här artikeln kommer jag att visa dig hur du läser ADC -värden från en potentiometer. Detta är grunden för Arduino -programmering. som läser analoga värden med den analoga stiftet som tillhandahålls av Arduino. förutom att använda potentio, finns det flera sensorer som
Spara och återställ förinställda värden med NFC (TfCD): 4 steg
Spara och återställ förinställda värden med NFC (TfCD): Vi vill testa hur det fungerar att justera ett visst värde eller en inställning och senare återkalla denna inställning. För detta experiment använde vi en NFC -tagg för att läsa och sedan spara värdet på den. Senare kan taggen skannas igen och skicka värdet tillbaka för att återställa en cer
Hacka TV -tuner för att läsa jordbilder från satelliter: 7 steg (med bilder)
Hacka TV -tuner för att läsa jordbilder från satelliter: Det finns många satelliter ovanför våra huvuden. Visste du att du bara kunde ta emot överföringar från dem med din dator, TV -tuner och enkla DIY -antenner? Till exempel bilder av jorden i realtid. Jag ska visa dig hur. Du behöver:- 2 w