Taula de continguts:

Lectura de valors des d'un dispositiu BLE mitjançant CSR1010 i Dragonboard 410c: 6 passos
Lectura de valors des d'un dispositiu BLE mitjançant CSR1010 i Dragonboard 410c: 6 passos

Vídeo: Lectura de valors des d'un dispositiu BLE mitjançant CSR1010 i Dragonboard 410c: 6 passos

Vídeo: Lectura de valors des d'un dispositiu BLE mitjançant CSR1010 i Dragonboard 410c: 6 passos
Vídeo: NO-SQL BLUEPRINTS: раскрываем секреты архитектуры! 🏗️🔑 2024, De novembre
Anonim
Lectura de valors des d’un dispositiu BLE mitjançant CSR1010 i Dragonboard 410c
Lectura de valors des d’un dispositiu BLE mitjançant CSR1010 i Dragonboard 410c

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

Recuperació de característiques del dispositiu
Recuperació de 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

Lectura del nom del dispositiu
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

Lectura de la ubicació del sensor corporal
Lectura de 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: