Taula de continguts:
- Pas 1: escanejar el dispositiu BLE
- Pas 2: Connexió del dispositiu
- Pas 3: recuperació de les característiques del dispositiu
- Pas 4: lectura del nom del dispositiu
- Pas 5: llegir el BPM
- Pas 6: llegir la ubicació del sensor corporal
Vídeo: Lectura de valors des d'un dispositiu BLE mitjançant CSR1010 i Dragonboard 410c: 6 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
Aquest tutorial mostra com llegir valors del dispositiu BLE CSR1010 mitjançant Dragonboard 410c amb Linaro
En aquest exemple, CSR1010 emula un sensor de freqüència cardíaca.
Pas 1: escanejar el dispositiu BLE
En aquest pas, comproveu si el vostre client BT està preparat per escanejar dispositius BLE.
root @ linaro-alip: / home / linaro # sudo hcitool lescan
Escaneig LE … 18: EE: 69: 00: CE: 00 (desconegut) 18: EE: 69: 00: CE: 00 (desconegut) EE: 52: 5B: 04: 00: 02 Sensor CSR HR
Pas 2: Connexió del dispositiu
Utilitzarem gatttool per connectar el nostre dispositiu
-b: adreça MAC del dispositiu
-t: tipus d'adreça LE. Pot ser públic o aleatori, cal consultar les especificacions del dispositiu. En aquest cas és públic.
-I: mode interactiu gatttool. S'obrirà una sol·licitud per enviar cmds al dispositiu
root @ linaro-alip: / home / linaro # sudo gatttool -b EE: 52: 5B: 04: 00: 02 -t public -I
Un cop obert el missatge, podem enviar connect cmd al dispositiu.
[EE: 52: 5B: 04: 00: 02] [LE]> connect Intentant connectar-vos a EE: 52: 5B: 04: 00: 02
La connexió s'ha realitzat correctament
[EE: 52: 5B: 04: 00: 02] [LE]>
Pas 3: recuperació de les característiques del dispositiu
Un cop connectat el dispositiu, podem llegir tots els serveis disponibles enviant el cmd "primari"
Basat en el UUID del servei, podem descobrir el tipus de servei a l’especificació GATT
www.bluetooth.com/specifications/gatt/services
Pas 4: lectura del nom del dispositiu
Explorem les característiques llegides al perfil d'accés genèric (uuid = 1800). En primer lloc, hem d’obtenir els valors de control de servei, descrits a la primera imatge, en aquest cas, comencen de 5 a 11. Ara podem recuperar tots els identificadors d’aquest interval utilitzant el cmd char-desc
[EE: 52: 5B: 04: 00: 02] [LE]> char-desc 05 11handle: 0x0005, uuid: 00002800-0000-1000-8000-00805f9b34fb handle: 0x0006, uuid: 00002803-0000-1000-8000- 00805f9b34fb handle: 0x0007, uuid: 00002a00-0000-1000-8000-00805f9b34fb handle: 0x0008, uuid: 00002803-0000-1000-8000-00805f9b34fb handle: 0x0009, uuid: 00002a01-0000-1000-8000-0080ffb uuid: 00002803-0000-1000-8000-00805f9b34fb handle: 0x000b, uuid: 00002a04-0000-1000-8000-00805f9b34fb handle: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb handle: 0x000d, uuid00: 0000280 -1000-8000-00805f9b34fb handle: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb handle: 0x000f, uuid: 00002902-0000-1000-8000-00805f9b34fb handle: 0x0010, uuid: 00002803-0000-1000-8000- 00805f9b34fb handle: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb
Segons l'especificació de perfil d'accés genèric, l'UUID 2A00 fa referència al nom del dispositiu.
Tenint en compte que el 2a00 és el controlador 0x0007 del nostre dispositiu, llegim el valor
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 7 Valor / descriptor característic: 43 53 52 20 48 52 20 53 65 6e 73 6f 72
En convertir hexadecimal a ASCII, el nom del dispositiu és: '' CSR HR Sensor"
Pas 5: llegir el BPM
[EE: 52: 5B: 04: 00: 02] [LE]> mànec primari: 0x0001, mànec final grp: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb mànec attr: 0x0005, mànec final grp: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fb mànec ATTR: 0x000c, mànec GRP final: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb mànec ATTR: 0x0014, mànec GRP final: 0x0017 uuid: 0000180f-0000-1000-8000- 00805f9b34fb mànec ATTR: 0x0018, mànec GRP final: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 mànec ATTR: 0x0022, mànec GRP final: 0xffff uuid: 0000180a-0000-1000-8000-00805f9b34fb
L’UUID del servei de freqüència cardíaca és 0x180d, de manera que l’interval de control és de 0x000c fins a 0x0013
[EE: 52: 5B: 04: 00: 02] [LE]> char-desc 0x00c 0x0013
handle: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb handle: 0x000d, uuid: 00002803-0000-1000-8000-00805f9b34fb handle: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb handle: 0x000f, u: 00002902-0000-1000-8000-00805f9b34fb handle: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb handle: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb handle: 0x0012, uuid: 00002803-0000 1000-8000-00805f9b34fb mànec: 0x0013, uuid: 00002a39-0000-1000-8000-00805f9b34fb
Lectura de totes les declaracions característiques (UUID 0x2803).
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x000d
Valor característic / descriptor: 10 0e 00 37 2a [EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x0010 Valor característic / descriptor: 02 11 00 38 2a [EE: 52: 5B: 04:00:02] [LE]> char-read-hnd 0x0012 Valor característic / descriptor: 08 13 00 39 2a
Adona't que:
- handle 0x000d és el CCCD per al servei 2a37 (mesurament de la freqüència cardíaca) amb el bit 10 (suport NOTIFICAR)
- handle 0x0010 és el CCCD per al servei 2a38 (Localització del sensor corporal) amb el bit 02 (suport LLEGIR)
- Handle 0x0012 és el CCCD per al servei 2a39 (punt de control de la freqüència cardíaca) amb el bit 08 (suport ESCRIPTURA)
Ara sabem que la mesura de la freqüència cardíaca només funciona amb notificacions. Vol dir que primer ens hem de registrar per als canvis de valor en el seu CCCD (UUID 0x2902), que en aquest cas és handle 0xf
[EE: 52: 5B: 04: 00: 02] [LE]> char-write-req 0x00f 0100
Mànec de notificació = valor 0x000e: 16 65 f3 01 El valor característic s'ha escrit correctament Mànec de notificació = valor 0x000e: 16 6d fa 01 Mànec de notificació = valor 0x000e: 16 6d fa 01 Mànec de notificació = valor 0x000e: 16 6c f9 01 Mànec de notificació = valor 0x000e: 16 6a f7 01 Mànec de notificació = valor 0x000e: 16 69 f6 01
Segons l'especificació del perfil, el segon número hexadecimal és la informació de BPM.
BPM:
6d = 109
6d = 109
6c = 108
6a = 106
69 = 105
Pas 6: llegir la ubicació del sensor corporal
La ubicació del sensor corporal és l’UUID 0x2A38. Segons el seu descriptor, aquesta característica admet la lectura bàsica, de manera que podem llegir el seu valor directament.
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x11Valor característic / descriptor: 03
Segons l'especificació SIG, 03 significa "dit"
Recomanat:
Com llegir diversos valors analògics mitjançant un pin analògic: 6 passos (amb imatges)
Com llegir diversos valors analògics mitjançant un pin analògic: en aquest tutorial, us mostraré com llegir diversos valors analògics amb només un pin d’entrada analògic
Dispositiu ASS (dispositiu social antisocial): 7 passos
Dispositiu ASS (dispositiu social antisocial): digueu que sou la persona que li agrada estar a prop de la gent però que no li agrada que s’acosti massa. També ets agradable a la gent i et costa dir no a la gent. Per tant, no sabeu com dir-los que es retirin. Bé, entreu: el dispositiu ASS. S
Lectura de dades del sensor d'ultrasons (HC-SR04) en una pantalla LCD de 128 × 128 i visualització mitjançant Matplotlib: 8 passos
Lectura de dades del sensor ultrasònic (HC-SR04) en una pantalla LCD de 128 × 128 i visualització mitjançant Matplotlib: en aquesta instrucció, utilitzarem el MSP432 LaunchPad + BoosterPack per mostrar les dades d’un sensor ultrasònic (HC-SR04) en un 128 × 128 LCD i envieu les dades al PC en sèrie i visualitzeu-les mitjançant Matplotlib
Lectura de la temperatura mitjançant el sensor de temperatura LM35 amb Arduino Uno: 4 passos
Lectura de la temperatura mitjançant el sensor de temperatura LM35 amb Arduino Uno: Hola, nois d’aquest instructiu, aprendrem a utilitzar LM35 amb Arduino. Lm35 és un sensor de temperatura que pot llegir valors de temperatura des de -55 ° C fins a 150 ° C. És un dispositiu de 3 terminals que proporciona una tensió analògica proporcional a la temperatura. Hig
Lectura i escriptura de dades a EEPROM externa mitjançant Arduino: 5 passos
Lectura i escriptura de dades a EEPROM externa mitjançant Arduino: EEPROM significa Memòria de només lectura programable esborrable elèctricament. L’EEPROM és molt important i útil perquè és una forma de memòria no volàtil. Això significa que fins i tot quan la placa està apagada, el xip EEPROM encara conserva el programa que