Sadržaj:
- Korak 1: Skenirajte BLE uređaj
- Korak 2: Povezivanje uređaja
- Korak 3: Dohvaćanje karakteristika uređaja
- Korak 4: Čitanje naziva uređaja
- Korak 5: Čitanje BPM -a
- Korak 6: Čitanje lokacije senzora tijela
Video: Očitavanje vrijednosti s BLE uređaja pomoću CSR1010 i Dragonboard 410c: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
Ovaj vodič prikazuje kako čitati vrijednosti s BLE uređaja CSR1010 pomoću Dragonboard 410c s Linarom
U ovom primjeru CSR1010 oponaša senzor otkucaja srca.
Korak 1: Skenirajte BLE uređaj
U ovom koraku provjerite je li vaš BT klijent spreman za skeniranje BLE uređaja.
root@linaro-alip:/home/linaro# sudo hcitool lescan
LE Skeniranje … 18: EE: 69: 00: CE: 00 (nepoznato) 18: EE: 69: 00: CE: 00 (nepoznato) EE: 52: 5B: 04: 00: 02 CSR HR senzor
Korak 2: Povezivanje uređaja
Za povezivanje našeg uređaja koristit ćemo gatttool
-b: MAC adresa uređaja
-t: LE adresa tipa. Može biti javna ili nasumična, potrebno je provjeriti specifikacije uređaja. U ovom slučaju je javan.
-I: interaktivni način rada gatttool -a. Otvorit će se upit za slanje cmds -a na uređaj
root@linaro -alip:/home/linaro# sudo gatttool -b EE: 52: 5B: 04: 00: 02 -t javno -I
Nakon što se upit otvori, možemo poslati cmd connect za uređaj.
[EE: 52: 5B: 04: 00: 02] [LE]> connectPokušaj povezivanja na EE: 52: 5B: 04: 00: 02
Veza je uspjela
[EE: 52: 5B: 04: 00: 02] [LE]>
Korak 3: Dohvaćanje karakteristika uređaja
Nakon što je uređaj spojen, možemo pročitati sve dostupne usluge slanjem cmd -a "primarni"
Na temelju UUID -a usluge, možemo otkriti vrstu usluge u GATT specifikaciji
www.bluetooth.com/specifications/gatt/services
Korak 4: Čitanje naziva uređaja
Istražimo karakteristike pročitane na Generic Access Profile (uuid = 1800). Prvo moramo dobiti vrijednosti uslužnog ručka, opisane na prvoj slici, u ovom slučaju, počinje od 5 do 11. Sada možemo dohvatiti sve ručke u ovom intervalu pomoću cmd char-desc
[EE: 52: 5B: 04: 00: 02] [LE]> char-desc 05 11 ručka: 0x0005, uuid: 00002800-0000-1000-8000-00805f9b34fb ručka: 0x0006, uuid: 00002803-0000-1000-8000- 00805f9b34fb ručka: 0x0007, uuid: 00002a00-0000-1000-8000-00805f9b34fb ručka: 0x0008, uuid: 00002803-0000-1000-8000-00805f9b34fb ručka: 0x0009, uuid: 00002a01-0000b, 000000, 900000 uuid: 00002803-0000-1000-8000-00805f9b34fb ručka: 0x000b, uuid: 00002a04-0000-1000-8000-00805f9b34fb ručka: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34f00 ručica: 0x000: 0x0: -1000-8000-00805f9b34fb ručka: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb ručka: 0x000f, uuid: 00002902-0000-1000-8000-00805f9b34fb ručka: 0x0010, uuid- 00002 00805f9b34fb ručka: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb
Prema specifikaciji generičkog profila pristupa, UUID 2A00 se odnosi na naziv uređaja.
S obzirom da je 2a00 ručica 0x0007 u našem uređaju, pročitajmo vrijednost
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 7Karakteristična vrijednost/deskriptor: 43 53 52 20 48 52 20 53 65 6e 73 6f 72
Pretvarajući hex u ASCII, naziv uređaja je: '' CSR HR Sensor"
Korak 5: Čitanje BPM -a
[EE: 52: 5B: 04: 00: 02] [LE]> primarna ručka: 0x0001, ručica krajnjeg grpa: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb attr ručka: 0x0005, krajnja grp ručka: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fb attr ručka: 0x000c, ručka na kraju grla: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb ručica attr: 0x0014, ručica na kraju grla: 0x0017 uuid: 0-100008-0000 00805f9b34fb attr ručka: 0x0018, završna grp ručka: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 attr ručka: 0x0022, end grp ručka: 0xffff uuid: 0000180a-0000-1000-8000-00805f934
UUID usluge otkucaja srca je 0x180d, pa je interval rukovanja od 0x000c do 0x0013
[EE: 52: 5B: 04: 00: 02] [LE]> char-desc 0x00c 0x0013
ručka: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb ručka: 0x000d, uuid: 00002803-0000-1000-8000-00805f9b34fb ručka: 0x000e, uuid: 00002a37-0000-1000-8000-0080bb: 00002902-0000-1000-8000-00805f9b34fb ručka: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb ručka: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34f000 ručica: 0x00: 0x00, 0x00: 0x00, 0x00: 0x00: 0 1000-8000-00805f9b34fb ručka: 0x0013, uuid: 00002a39-0000-1000-8000-00805f9b34fb
Čitanje svih karakterističnih deklaracija (UUID 0x2803).
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x000d
Karakteristična vrijednost/deskriptor: 10 0e 00 37 2a [EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x0010 Karakteristična vrijednost/deskriptor: 02 11 00 38 2a [EE: 52: 5B: 04:00:02] [LE]> char-read-hnd 0x0012 Karakteristična vrijednost/deskriptor: 08 13 00 39 2a
Primijetite da:
- ručka 0x000d je CCCD za uslugu 2a37 (mjerenje pulsa) s bitom 10 (podrška NOTIFY)
- ručka 0x0010 je CCCD za uslugu 2a38 (lokacija senzora tijela) s bitom 02 (podrška READ)
- ručka 0x0012 je CCCD za uslugu 2a39 (kontrolna točka otkucaja srca) s bitom 08 (podrška za WRITE)
Sada znamo da mjerenje otkucaja srca radi samo uz obavijest. To znači da se prvo moramo registrirati za promjene vrijednosti u njenom CCCD -u (UUID 0x2902), koji je u ovom slučaju ručka 0xf
[EE: 52: 5B: 04: 00: 02] [LE]> char-write-req 0x00f 0100
Ručica obavijesti = 0x000e vrijednost: 16 65 f3 01 Karakteristična vrijednost uspješno je napisana Ručka obavijesti = 0x000e vrijednost: 16 6d fa 01 Ručka obavijesti = 0x000e vrijednost: 16 6d fa 01 Ručka obavijesti = 0x000e vrijednost: 16 6c f9 01 Ručka obavijesti = 0x000e vrijednost: 16 6a f7 01 Ručka za obavijest = 0x000e vrijednost: 16 69 f6 01
Prema specifikaciji profila, drugi heksadecimalni broj su BPM informacije.
BPM:
6d = 109
6d = 109
6c = 108
6a = 106
69 = 105
Korak 6: Čitanje lokacije senzora tijela
Lokacija senzora tijela je UUID 0x2A38. Prema opisu, ova karakteristika podržava osnovno čitanje, pa možemo direktno pročitati njenu vrijednost.
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x11Karakteristična vrijednost/deskriptor: 03
Prema SIG specifikaciji, 03 znači "prst"
Preporučuje se:
Kako čitati više analognih vrijednosti pomoću jednog analognog pina: 6 koraka (sa slikama)
Kako čitati više analognih vrijednosti pomoću jednog analognog pina: U ovom vodiču pokazat ću vam kako čitati više analognih vrijednosti koristeći samo jedan pin za analogni ulaz
Učitavanje vrijednosti vibracijskog senzora u IOT ThingSpeak pomoću NodeMCU: 4 koraka
Učitavanje vrijednosti senzora vibracija u IOT ThingSpeak pomoću NodeMCU: Postoji nekoliko kritičnih strojeva ili skupe opreme koji trpe oštećenja zbog vibracija. U tom slučaju potreban je senzor vibracija kako bi se utvrdilo proizvode li stroj ili oprema vibracije ili ne. Identifikacija objekta koji
Očitavanje temperature pomoću LM35 temperaturnog senzora s Arduino Uno: 4 koraka
Očitavanje temperature pomoću LM35 temperaturnog senzora s Arduino Uno: Zdravo momci, u ovim uputama naučit ćemo kako koristiti LM35 s Arduinom. Lm35 je temperaturni senzor koji može očitati vrijednosti temperature od -55 ° C do 150 ° C. To je uređaj sa 3 terminala koji daje analogni napon proporcionalan temperaturi. Najviše
Upravljajte do 4 servo uređaja pomoću pametnog telefona ili bilo kojeg uređaja sa audio izlazom: 3 koraka
Upravljajte do 4 serva pomoću pametnog telefona ili bilo kojeg uređaja sa audio izlazom: Ovdje predstavljam jednostavnu elektroničku montažu za upravljanje do četiri servo servera sa bilo kojim uređajem koji može čitati audio datoteku
Povećanje vrijednosti 7 segmenata pomoću Push Butoon sa 8051: 4 koraka (sa slikama)
Povećanje vrijednosti 7 segmenata pomoću Push Butoon -a sa 8051: U ovom projektu povećaćemo vrijednost prikaza za 7 segmenata pomoću dugmeta sa 8051 mikrokontrolerom