Obsah:
- Krok 1: Naskenujte zařízení BLE
- Krok 2: Připojení zařízení
- Krok 3: Získání charakteristik zařízení
- Krok 4: Čtení názvu zařízení
- Krok 5: Čtení BPM
- Krok 6: Čtení polohy snímače těla
Video: Čtení hodnot ze zařízení BLE pomocí CSR1010 a Dragonboard 410c: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
Tento tutoriál ukazuje, jak číst hodnoty ze zařízení BLE CSR1010 pomocí Dragonboard 410c s Linaro
V tomto případě CSR1010 emuluje snímač srdečního tepu.
Krok 1: Naskenujte zařízení BLE
V tomto kroku zkontrolujte, zda je váš klient BT připraven pro skenování zařízení BLE.
root@linaro-alip:/home/linaro# sudo hcitool lescan
LE Scan… 18: EE: 69: 00: CE: 00 (neznámý) 18: EE: 69: 00: CE: 00 (neznámý) EE: 52: 5B: 04: 00: 02 CSR HR Sensor
Krok 2: Připojení zařízení
K připojení našeho zařízení použijeme gatttool
-b: MAC adresa zařízení
-t: Typ adresy LE. Může být veřejný nebo náhodný, je třeba zkontrolovat specifikace zařízení. V tomto případě je veřejný.
-I: interaktivní režim gatttool. Otevře se výzva k odeslání cmds do zařízení
root@linaro -alip:/home/linaro# sudo gatttool -b EE: 52: 5B: 04: 00: 02 -t public -I
Jakmile je výzva otevřena, můžeme odeslat connect cmd do zařízení.
[EE: 52: 5B: 04: 00: 02] [LE]> connectAptempting to connect to EE: 52: 5B: 04: 00: 02
Připojení úspěšné
[EE: 52: 5B: 04: 00: 02] [LE]>
Krok 3: Získání charakteristik zařízení
Jakmile je zařízení připojeno, můžeme přečíst všechny dostupné služby odesláním cmd „primární“
Na základě UUID služby můžeme zjistit typ služby ve specifikaci GATT
www.bluetooth.com/specifications/gatt/services
Krok 4: Čtení názvu zařízení
Prozkoumejme vlastnosti načtené na Generic Access Profile (uuid = 1800). Nejprve musíme získat hodnoty popisovače služby, popsané na prvním obrázku, v tomto případě začíná od 5 do 11. Nyní můžeme načíst všechny úchyty v tomto intervalu pomocí cmd char-desc
[EE: 52: 5B: 04: 00: 02] [LE]> char-desc 05 11 rukojeť: 0x0005, uuid: 00002800-0000-1000-8000-00805f9b34fb rukojeť: 0x0006, uuid: 00002803-0000-1000-8000- 00805f9b34fb rukojeť: 0x0007, uuid: 00002a00-0000-1000-8000-00805f9b34fb rukojeť: 0x0008, uuid: 00002803-0000-1000-8000-00805f9b34fb rukojeť: 0x0009, uuid: 00002a01-0000b9005b uuid: 00002803-0000-1000-8000-00805f9b34fb rukojeť: 0x000b, uuid: 00002a04-0000-1000-8000-00805f9b34fb rukojeť: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb rukojeť: 0x000d uu -1000-8000-00805f9b34fb rukojeť: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb rukojeť: 0x000f, uuid: 00002902-0000-1000-8000-00805f9b34fb rukojeť: 0x0010, uuid: 00002803-0000-1 00805f9b34fb rukojeť: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb
Podle specifikace generického přístupového profilu UUID 2A00 odkazuje na název zařízení.
Vzhledem k tomu, že 2a00 je rukojeť 0x0007 v našem zařízení, přečtěte si hodnotu
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 7 Typická hodnota/deskriptor: 43 53 52 20 48 52 20 53 65 6e 73 6f 72
Při převodu hexu na ASCII je název zařízení: „CSR HR Sensor“
Krok 5: Čtení BPM
[EE: 52: 5B: 04: 00: 02] [LE]> držadlo primární baterie: 0x0001, koncová rukojeť grp: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb rukojeť attr: 0x0005, koncová rukojeť grp: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fb rukojeť attr: 0x000c, koncová rukojeť grp: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb rukojeť attr: 0x0014, koncová rukojeť grp: 0x0017 uuid: 0000180f-0000-1000-8000 00805f9b34fb rukojeť attr: 0x0018, koncová rukojeť grp: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 attr rukojeť: 0x0022, koncová rukojeť grp: 0xffff uuid: 0000180a-0000-1000-8000-00805f9b34
UUID služby Heart Rate je 0x180d, takže interval zpracování je od 0x000c do 0x0013
[EE: 52: 5B: 04: 00: 02] [LE]> char-desc 0x00c 0x0013
rukojeť: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb rukojeť: 0x000d, uuid: 00002803-0000-1000-8000-00805f9b34fb rukojeť: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb rukojeť: 0x000d: 00002902-0000-1000-8000-00805f9b34fb rukojeť: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb rukojeť: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb rukojeť: 0x0012, uuid 00: 00 1000-8000-00805f9b34fb rukojeť: 0x0013, uuid: 00002a39-0000-1000-8000-00805f9b34fb
Přečtení všech charakteristických prohlášení (UUID 0x2803).
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x000d
Charakteristická hodnota/deskriptor: 10 0e 00 37 2a [EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x0010 Charakteristická hodnota/deskriptor: 02 11 00 38 2a [EE: 52: 5B: 04:00:02] [LE]> char-read-hnd 0x0012 Charakteristická hodnota/deskriptor: 08 13 00 39 2a
Všimněte si, že:
- rukojeť 0x000d je CCCD pro službu 2a37 (měření tepové frekvence) s bitem 10 (podpora UPOZORNĚNÍ)
- rukojeť 0x0010 je CCCD pro službu 2a38 (umístění snímače těla) s bitem 02 (podpora READ)
- rukojeť 0x0012 je CCCD pro službu 2a39 (kontrolní bod srdečního tepu) s bitem 08 (podpora WRITE)
Nyní víme, že měření srdečního tepu funguje pouze s oznámením. To znamená, že nejprve se musíme zaregistrovat pro změny hodnot v jeho CCCD (UUID 0x2902), což je v tomto případě handle 0xf
[EE: 52: 5B: 04: 00: 02] [LE]> char-write-req 0x00f 0100
Oznamovací úchyt = hodnota 0x000e: 16 65 f3 01 Údajová hodnota byla úspěšně zapsána Oznamovací popisovač = hodnota 0x000e: 16 6d fa 01 Oznamovací rukojeť = 0x000e hodnota: 16 6d fa 01 Oznamovací rukojeť = hodnota 0x000e: 16 6c f9 01 Oznamovací rukojeť = hodnota 0x000e: 16 6a f7 01 Oznamovací úchyt = hodnota 0x000e: 16 69 f6 01
Podle specifikace profilu je druhým hexadecimálním číslem informace o BPM.
BPM:
6d = 109
6d = 109
6c = 108
6a = 106
69 = 105
Krok 6: Čtení polohy snímače těla
Umístění tělesného senzoru je UUID 0x2A38. Podle svého deskriptoru tato charakteristika podporuje základní čtení, takže můžeme její hodnotu číst přímo.
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x11Charakteristická hodnota/deskriptor: 03
Podle specifikace SIG 03 znamená „prst“
Doporučuje:
Jak číst více analogových hodnot pomocí jednoho analogového pinu: 6 kroků (s obrázky)
Jak číst více analogových hodnot pomocí jednoho analogového pinu: V tomto tutoriálu vám ukážu, jak číst více analogových hodnot pomocí pouze jednoho analogového vstupního pinu
Čtení dat ultrazvukového senzoru (HC-SR04) na displeji 128 × 128 LCD a jeho vizualizace pomocí Matplotlib: 8 kroků
Čtení dat ultrazvukového senzoru (HC-SR04) na displeji 128 × 128 LCD a jeho vizualizace pomocí Matplotlib: V tomto pokynu použijeme MSP432 LaunchPad + BoosterPack k zobrazení dat ultrazvukového senzoru (HC-SR04) na 128 × 128 LCD a odesílejte data sériově do PC a vizualizujte je pomocí Matplotlib
Čtení a zápis dat do externí EEPROM pomocí Arduina: 5 kroků
Čtení a zápis dat do externí EEPROM pomocí Arduina: EEPROM znamená elektricky vymazatelná programovatelná paměť pouze pro čtení. EEPROM je velmi důležitá a užitečná, protože je energeticky nezávislou formou paměti. To znamená, že i když je deska vypnutá, čip EEPROM stále zachovává program, který
Ovládání zařízení pomocí hlasového ovládání pomocí NodeMCU: 7 kroků (s obrázky)
Ovládání zařízení pomocí hlasového ovládání pomocí NodeMCU: Chci jen pozdravit všechny, toto je poprvé, co píšu instruktážní projekt. Angličtina není můj rodný jazyk, takže se pokusím udělat co nejkratší a nejsrozumitelnější. Ovládání zařízení hlasovým příkazem není nic zvláštního
Ovládejte elektrická zařízení pomocí dálkového ovladače (dálkového ovládání) pomocí displeje teploty a vlhkosti: 9 kroků
Ovládejte svá elektrická zařízení dálkovým ovládáním televizoru (dálkovým ovladačem) pomocí displeje teploty a vlhkosti: Ahoj, jsem Abhay a je to můj první blog o instruktážích a dnes vám ukážu, jak pomocí dálkového ovladače k televizi ovládat své elektrické spotřebiče. jednoduchý projekt. díky atl laboratoři za podporu a poskytnutí materiálu