Kazalo:
- 1. korak: Skenirajte napravo BLE
- 2. korak: Priključitev naprave
- 3. korak: Pridobivanje značilnosti naprave
- 4. korak: Branje imena naprave
- 5. korak: branje BPM
- 6. korak: Branje lokacije senzorja telesa
Video: Branje vrednosti iz naprave BLE z uporabo CSR1010 in Dragonboard 410c: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
Ta vadnica prikazuje, kako prebrati vrednosti iz naprave BLE CSR1010 z uporabo Dragonboard 410c z Linarom
V tem primeru CSR1010 posnema senzor srčnega utripa.
1. korak: Skenirajte napravo BLE
V tem koraku preverite, ali je vaš odjemalec BT pripravljen za skeniranje naprav BLE.
root@linaro-alip:/home/linaro# sudo hcitool lescan
LE Skeniranje … 18: EE: 69: 00: CE: 00 (neznano) 18: EE: 69: 00: CE: 00 (neznano) EE: 52: 5B: 04: 00: 02 CSR HR senzor
2. korak: Priključitev naprave
Za povezavo naše naprave bomo uporabili gatttool
-b: MAC naslov naprave
-t: vrsta naslova LE. Lahko je javna ali naključna, potrebno je preveriti specifikacije naprave. V tem primeru je javna.
-I: interaktivni način gatttool. Odprl se bo poziv za pošiljanje cmds na napravo
root@linaro -alip:/home/linaro# sudo gatttool -b EE: 52: 5B: 04: 00: 02 -t javno -I
Ko je poziv odprt, lahko na napravo pošljemo cmd connect.
[EE: 52: 5B: 04: 00: 02] [LE]> connectPoskus povezave z EE: 52: 5B: 04: 00: 02
Povezava uspešna
[EE: 52: 5B: 04: 00: 02] [LE]>
3. korak: Pridobivanje značilnosti naprave
Ko je naprava povezana, lahko preberemo vse razpoložljive storitve, tako da cmd pošljemo »primarno«
Na podlagi UUID storitve lahko odkrijemo vrsto storitve v specifikaciji GATT
www.bluetooth.com/specifications/gatt/services
4. korak: Branje imena naprave
Raziščimo značilnosti, prebrane na Generic Access Profile (uuid = 1800). Najprej moramo dobiti vrednosti servisnega ročaja, opisane na prvi sliki, v tem primeru se začnejo od 5 do 11. Zdaj lahko vse ročaje v tem intervalu pridobimo s pomočjo cmd char-desc
[EE: 52: 5B: 04: 00: 02] [LE]> char-desc 05 11 ročaj: 0x0005, uuid: 00002800-0000-1000-8000-00805f9b34fb ročaj: 0x0006, uuid: 00002803-0000-1000-8000- 00805f9b34fb ročaj: 0x0007, uuid: 00002a00-0000-1000-8000-00805f9b34fb ročaj: 0x0008, uuid: 00002803-0000-1000-8000-00805f9b34fb ročaj: 0x0009, uuid: 00002a01-0000b, 00000, 800000 uuid: 00002803-0000-1000-8000-00805f9b34fb ročaj: 0x000b, uuid: 00002a04-0000-1000-8000-00805f9b34fb ročaj: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34f00 ročaj: 0id3: 0x0: 0 -1000-8000-00805f9b34fb ročaj: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb ročaj: 0x000f, uuid: 00002902-0000-1000-8000-00805f9b34fb ročaj: 0x0010, uuid: 00002 00805f9b34fb ročaj: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb
V skladu s specifikacijo splošnega profila dostopa se UUID 2A00 nanaša na ime naprave.
Glede na to, da je 2a00 ročaj 0x0007 v naši napravi, preberemo vrednost
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 7 Značilna vrednost/opis: 43 53 52 20 48 52 20 53 65 6e 73 6f 72
Če pretvorite šestnajstiško besedilo v ASCII, je ime naprave: '' CSR HR Sensor ''
5. korak: branje BPM
[EE: 52: 5B: 04: 00: 02] [LE]> ročaj primarnega atr: 0x0001, ročaj končnega grpa: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb ročaj attr: 0x0005, ročaj končnega grpa: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fb attr ročaj: 0x000c, ročaj na koncu grpa: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb ročaj attr: 0x0014, ročaj na koncu grpa: 0x0017 uuid: 00001000-8000 00805f9b34fb ročaj attr: 0x0018, ročaj konca grp: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 ročaj attr: 0x0022, ročaj konca grp: 0xffff uuid: 0000180a-0000-1000-8000-00805f9b
UUID storitve srčnega utripa je 0x180d, zato je interval ročaja od 0x000c do 0x0013
[EE: 52: 5B: 04: 00: 02] [LE]> char-desc 0x00c 0x0013
ročaj: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb ročaj: 0x000d, uuid: 00002803-0000-1000-8000-00805f9b34fb ročaj: 0x000e, uuid: 00002a37-0000-1000-8000-0080bb: 00002902-0000-1000-8000-00805f9b34fb ročaj: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb ročaj: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb ročaj: 0x00-00: 0x00: 0x00: 0x00: 0x00: 0 1000-8000-00805f9b34fb ročaj: 0x0013, uuid: 00002a39-0000-1000-8000-00805f9b34fb
Branje vseh značilnih deklaracij (UUID 0x2803).
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x000d
Značilna vrednost/deskriptor: 10 0e 00 37 2a [EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x0010 Značilna vrednost/deskriptor: 02 11 00 38 2a [EE: 52: 5B: 04:00:02] [LE]> char-read-hnd 0x0012 Značilna vrednost/opis: 08 13 00 39 2a
Upoštevajte, da:
- ročaj 0x000d je CCCD za storitev 2a37 (merjenje srčnega utripa) z bitom 10 (podpora NOTIFY)
- ročaj 0x0010 je CCCD za storitev 2a38 (lokacija senzorja telesa) z bitom 02 (podpora READ)
- ročaj 0x0012 je CCCD za storitev 2a39 (kontrolna točka srčnega utripa) z bitom 08 (podpira WRITE)
Zdaj vemo, da merjenje srčnega utripa deluje samo z obvestilom. To pomeni, da se moramo najprej registrirati za spremembe vrednosti v njegovem CCCD (UUID 0x2902), ki je v tem primeru ročaj 0xf
[EE: 52: 5B: 04: 00: 02] [LE]> char-write-req 0x00f 0100
Ročaj obvestila = vrednost 0x000e: 16 65 f3 01 Značilna vrednost je bila uspešno zapisana Ročica obvestila = vrednost 0x000e: 16 6d fa 01 Ročaj obvestila = vrednost 0x000e: 16 6d fa 01 Ročica obvestila = vrednost 0x000e: 16 6c f9 01 Ročica obvestila = 0x000e vrednost: 16 6a f7 01 Ročaj za obvestilo = vrednost 0x000e: 16 69 f6 01
V skladu s specifikacijo profila je druga šestnajst številka informacija BPM.
BPM:
6d = 109
6d = 109
6c = 108
6a = 106
69 = 105
6. korak: Branje lokacije senzorja telesa
Lokacija senzorja telesa je UUID 0x2A38. Po svojem opisu ta lastnost podpira osnovno branje, zato lahko neposredno preberemo njeno vrednost.
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x11 Značilna vrednost/opis: 03
V skladu s specifikacijo SIG 03 pomeni "prst"
Priporočena:
Branje podatkov ultrazvočnega senzorja (HC-SR04) na LCD-zaslonu 128 × 128 in vizualizacija z uporabo Matplotliba: 8 korakov
Branje podatkov ultrazvočnega senzorja (HC-SR04) na LCD-zaslonu 128 × 128 in vizualizacija z uporabo Matplotliba: V tem navodilu bomo za prikaz podatkov ultrazvočnega senzorja (HC-SR04) na zaslonu 128 × 128 uporabili MSP432 LaunchPad + BoosterPack LCD in podatke serijsko pošljite na osebni računalnik ter si jih z Matplotlibom vizualizirajte
Branje in pisanje podatkov v zunanji EEPROM z uporabo Arduina: 5 korakov
Branje in pisanje podatkov v zunanji EEPROM z uporabo Arduina: EEPROM pomeni Električno izbrisljiv programabilni pomnilnik samo za branje. EEPROM je zelo pomemben in uporaben, ker je nehlapna oblika pomnilnika. To pomeni, da tudi ko je plošča izklopljena, čip EEPROM še vedno ohranja program, ki
Branje in pisanje iz serijskih vrat z Raspberry Pi z uporabo Wemosa: 5 korakov
Branje in pisanje iz zaporednih vrat z Raspberry Pi z uporabo Wemosa: Komuniciranje z Raspberry Pi z uporabo Wemos D1 mini R2
Naredi naprave IoT z uporabo LED nizov: 9 korakov (s slikami)
Naredi naprave IoT z uporabo LED nizov: (Izjava o omejitvi odgovornosti: Nisem materni govornik angleščine.) Že pred časom je moja žena kupila nekaj LED svetilk, s katerimi je ponoči osvetlila vrt. Ustvarili so zelo lepo vzdušje. Postavili so jih okoli dreves, toda uganite, kaj se je moralo zgoditi, smo
Avtomatizirajte svoje domače naprave z uporabo MESH in Logitech Harmony: 5 korakov (s slikami)
Avtomatizirajte svoje domače naprave z uporabo MESH in Logitech Harmony: Iščete način za avtomatizacijo domačih naprav z malo truda? Ste naveličani uporabe daljinskega upravljalnika za vklop naprav " Vklop " in " Izklop "? Naprave lahko avtomatizirate s senzorjem gibanja MESH in Logitech Ha