Turinys:
- 1 veiksmas: nuskaitykite BLE įrenginį
- 2 žingsnis: Įrenginio prijungimas
- 3 žingsnis: Įrenginio charakteristikų nuskaitymas
- 4 žingsnis: Įrenginio pavadinimo skaitymas
- 5 žingsnis: BPM skaitymas
- 6 veiksmas: skaitykite kūno jutiklio vietą
Video: Vertybių skaitymas iš BLE įrenginio naudojant CSR1010 ir „Dragonboard 410c“: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Ši pamoka parodo, kaip skaityti vertes iš BLE įrenginio CSR1010 naudojant „Dragonboard 410c“su „Linaro“
Šiame pavyzdyje CSR1010 imituoja širdies ritmo jutiklį.
1 veiksmas: nuskaitykite BLE įrenginį
Atlikdami šį veiksmą patikrinkite, ar jūsų BT klientas yra pasirengęs nuskaityti BLE įrenginius.
root@linaro-alip:/home/linaro# sudo hcitool lescan
LE Scan… 18: EE: 69: 00: CE: 00 (nežinoma) 18: EE: 69: 00: CE: 00 (nežinoma) EE: 52: 5B: 04: 00: 02 CSR HR jutiklis
2 žingsnis: Įrenginio prijungimas
Savo įrenginiui prijungti naudosime „gatttool“
-b: įrenginio MAC adresas
-t: LE adreso tipas. Gali būti viešas arba atsitiktinis, reikia patikrinti įrenginio specifikacijas. Šiuo atveju yra viešas.
-I: interaktyvus „gatttool“režimas. Bus atidarytas raginimas siųsti cmds į įrenginį
root@linaro -alip:/home/linaro# sudo gatttool -b EE: 52: 5B: 04: 00: 02 -t public -I
Kai raginimas bus atidarytas, galime nusiųsti „connect cmd“į įrenginį.
[EE: 52: 5B: 04: 00: 02] [LE]> prisijungti Bandoma prisijungti prie EE: 52: 5B: 04: 00: 02
Ryšys sėkmingas
[EE: 52: 5B: 04: 00: 02] [LE]>
3 žingsnis: Įrenginio charakteristikų nuskaitymas
Kai įrenginys prijungtas, galime perskaityti visas galimas paslaugas, atsiųsdami cmd „pirminis“
Remdamiesi paslaugos UUID, galime atrasti paslaugos tipą GATT specifikacijoje
www.bluetooth.com/specifications/gatt/services
4 žingsnis: Įrenginio pavadinimo skaitymas
Panagrinėkime charakteristikas, perskaitytas bendrame prieigos profilyje (uuid = 1800). Pirmiausia turime gauti aptarnavimo rankenos reikšmes, aprašytas pirmame paveikslėlyje, šiuo atveju prasideda nuo 5 iki 11. Dabar mes galime nuskaityti visas šio intervalo rankenas naudodami cmd char-desc
[EE: 52: 5B: 04: 00: 02] [LE]> char-desc 05 11handle: 0x0005, uuid: 00002800-0000-1000-8000-00805f9b34fb rankena: 0x0006, uuid: 00002803-0000-1000-8000- 00805f9b34fb rankena: 0x0007, uuid: 00002a00-0000-1000-8000-00805f9b34fb rankena: 0x0008, uuid: 00002803-0000-1000-8000-00805f9b34fb rankena: 0x0009, uuid: 00002a01-0000-1000-8000-00805f9b uuid: 00002803-0000-1000-8000-00805f9b34fb rankena: 0x000b, uuid: 00002a04-0000-1000-8000-00805f9b34fb rankena: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb rankena: 0x000d, uuid: 0000280 -1000-8000-00805f9b34fb rankena: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb rankena: 0x000f, uuid: 00002902-0000-1000-8000-00805f9b34fb rankena: 0x0010, uuid: 00002803-0000-1000-8000- 00805f9b34fb rankena: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb
Pagal bendrosios prieigos profilio specifikaciją UUID 2A00 reiškia įrenginio pavadinimą.
Atsižvelgiant į tai, kad 2a00 yra mūsų įrenginio rankena 0x0007, perskaitykime vertę
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 7Būdinga vertė/aprašas: 43 53 52 20 48 52 20 53 65 6e 73 6f 72
Konvertuojant šešiakampį į ASCII, įrenginio pavadinimas yra: '' CSR HR Sensor ''
5 žingsnis: BPM skaitymas
[EE: 52: 5B: 04: 00: 02] [LE]> pirminio rankenos rankena: 0x0001, galinės rankenos rankena: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb 00001800-0000-1000-8000-00805f9b34fb attr rankena: 0x000c, galinė grotelės rankena: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb 00805f9b34fb attr rankena: 0x0018, galinės rankenos rankena: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 attr rankena: 0x0022, galinė rankena: 0xffff uuid: 0000180a-0000-1000-8000-00805f9b34fb
Širdies ritmo paslaugos UUID yra 0x180d, todėl rankenos intervalas yra nuo 0x000c iki 0x0013
[EE: 52: 5B: 04: 00: 02] [LE]> char-desc 0x00c 0x0013
rankena: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb rankena: 0x000d, uuid: 00002803-0000-1000-8000-00805f9b34fb rankena: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb rankena: 0x000f, uu: 00002902-0000-1000-8000-00805f9b34fb rankena: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb rankena: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb rankena: 0x0012, uuid: 00002803-00 1000-8000-00805f9b34fb rankena: 0x0013, uuid: 00002a39-0000-1000-8000-00805f9b34fb
Visų būdingų deklaracijų skaitymas (UUID 0x2803).
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x000d
Būdinga vertė/aprašas: 10 0e 00 37 2a [EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x0010 Būdinga vertė/aprašas: 02 11 00 38 2a [EE: 52: 5B: 04:00:02] [LE]> char-read-hnd 0x0012 Būdinga vertė/aprašas: 08 13 00 39 2a
Pastebėti, kad:
- rankena 0x000d yra CCCD 2a37 paslaugai (širdies ritmo matavimas) su 10 bitu (palaikykite pranešimą)
- rankena 0x0010 yra CCCD, skirta 2a38 tarnybai (kūno jutiklio vieta) su antgaliu 02 (palaikymas SKAITYTI)
- rankena 0x0012 yra CCCD, skirta 2a39 paslaugai (širdies ritmo kontrolės taškas) su bitu 08 (palaikykite WRITE)
Dabar mes žinome, kad širdies ritmo matavimas veikia tik pranešus. Tai reiškia, kad pirmiausia turime užregistruoti jo CCCD vertės keitimus (UUID 0x2902), kuris šiuo atveju yra rankena 0xf
[EE: 52: 5B: 04: 00: 02] [LE]> char-write-req 0x00f 0100
Pranešimo rankena = 0x000e reikšmė: 16 65 f3 01 Būdinga reikšmė parašyta sėkmingai Pranešimo rankena = 0x000e vertė: 16 6d fa 01 Pranešimo rankena = 0x000e vertė: 16 6d fa 01 Pranešimo rankena = 0x000e vertė: 16 6c f9 01 Pranešimo rankena = 0x000e vertė: 16 6a f7 01 Pranešimo rankena = 0x000e vertė: 16 69 f6 01
Pagal profilio specifikaciją antrasis šešioliktainis skaičius yra BPM informacija.
BPM:
6d = 109
6d = 109
6c = 108
6a = 106
69 = 105
6 veiksmas: skaitykite kūno jutiklio vietą
Kūno jutiklio vieta yra UUID 0x2A38. Pagal aprašą ši charakteristika palaiko pagrindinį skaitymą, todėl jos vertę galime perskaityti tiesiogiai.
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x11Būdinga vertė/aprašas: 03
Pagal SIG specifikaciją 03 reiškia „pirštas“
Rekomenduojamas:
Šviesos ir temperatūros jutiklio duomenų skaitymas ir grafikas naudojant „Raspberry Pi“: 5 žingsniai
Šviesos ir temperatūros jutiklių duomenų skaitymas ir brėžinys naudojant „Raspberry Pi“: Šioje instrukcijoje sužinosite, kaip skaityti šviesos ir temperatūros jutiklį su aviečių pi ir ADS1115 analoginiu skaitmeniniu keitikliu ir grafikuoti jį naudojant matplotlib. Pradėkime nuo reikalingų medžiagų
Drėgmės skaitymas naudojant Ethernet jutiklį: 3 žingsniai
Drėgmės skaitymas naudojant „Ethernet“jutiklį: Projekto tikslas buvo skaityti drėgmės ir temperatūros rodmenis per eterneto tinklą, kad rezultatai būtų naudojami namų automatizavimui (namų asistentas ir kt.). T9602 jutiklis turėjo geriausią formos koeficientą ir puikų pasirodymas ar
Ultragarso jutiklio (HC-SR04) duomenų skaitymas 128 × 128 skystųjų kristalų ekrane ir vizualizavimas naudojant „Matplotlib“: 8 žingsniai
Ultragarso jutiklio (HC-SR04) duomenų skaitymas 128 × 128 skystųjų kristalų ekrane ir vizualizavimas naudojant „Matplotlib“: Šioje instrukcijoje mes naudosime MSP432 „LaunchPad + BoosterPack“, kad ultragarso jutiklio (HC-SR04) duomenys būtų rodomi 128 × 128 LCD ir išsiųskite duomenis į kompiuterį nuosekliai ir vizualizuokite juos naudodami „Matplotlib“
Temperatūros skaitymas naudojant LM35 temperatūros jutiklį su „Arduino Uno“: 4 žingsniai
Temperatūros skaitymas naudojant LM35 temperatūros jutiklį su „Arduino Uno“: Sveiki, vaikinai, šioje instrukcijoje mes išmoksime naudoti LM35 su „Arduino“. Lm35 yra temperatūros jutiklis, galintis nuskaityti temperatūros reikšmes nuo -55 ° C iki 150 ° C. Tai 3 gnybtų įrenginys, kuris tiekia analoginę įtampą, proporcingą temperatūrai. Hig
Duomenų skaitymas ir rašymas į išorinį EEPROM naudojant „Arduino“: 5 žingsniai
Duomenų skaitymas ir rašymas į išorinį EEPROM naudojant „Arduino“: EEPROM reiškia elektriškai ištrinamą programuojamą tik skaitomą atmintį. EEPROM yra labai svarbi ir naudinga, nes ji yra nepastovi atminties forma. Tai reiškia, kad net ir išjungus plokštę, EEPROM lustas vis tiek išsaugo programą, kuri