Table des matières:
- Étape 1: Scannez le périphérique BLE
- Étape 2: connexion de l'appareil
- Étape 3: Récupération des caractéristiques de l'appareil
- Étape 4: Lecture du nom de l'appareil
- Étape 5: Lecture du BPM
- Étape 6: Lecture de l'emplacement du capteur corporel
Vidéo: Lecture de valeurs à partir d'un périphérique BLE à l'aide de CSR1010 et Dragonboard 410c : 6 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
Ce tutoriel montre comment lire les valeurs de l'appareil BLE CSR1010 à l'aide de Dragonboard 410c avec Linaro
Dans cet exemple, le CSR1010 émule un capteur de fréquence cardiaque.
Étape 1: Scannez le périphérique BLE
Dans cette étape, vérifiez si votre client BT est prêt à analyser les appareils BLE.
root@linaro-alip:/home/linaro# sudo hcitool lescan
LE Scan …18:EE:69:00:CE:00 (inconnu) 18:EE:69:00:CE:00 (inconnu) EE:52:5B:04:00:02 CSR HR Sensor
Étape 2: connexion de l'appareil
Nous utiliserons gatttool pour connecter notre appareil
-b: adresse MAC de l'appareil
-t: type d'adresse LE. Peut être public ou aléatoire, besoin de vérifier les spécifications de l'appareil. Dans ce cas est public.
-I: mode interactif gatttool. Il ouvrira une invite pour envoyer des cmds à l'appareil
root@linaro-alip:/home/linaro# sudo gatttool -b EE:52:5B:04:00:02 -t public -I
Une fois l'invite ouverte, nous pouvons envoyer connect cmd à l'appareil.
[EE:52:5B:04:00:02][LE]> connectTentative de connexion à EE:52:5B:04:00:02
Connexion réussie
[EE:52:5B:04:00:02][LE]>
Étape 3: Récupération des caractéristiques de l'appareil
Une fois l'appareil connecté, on peut lire tous les services disponibles en envoyant la cmd "primary"
Sur la base de l'UUID du service, nous pouvons découvrir le type de service dans la spécification GATT
www.bluetooth.com/specifications/gatt/services
Étape 4: Lecture du nom de l'appareil
Explorons les caractéristiques lues sur le profil d'accès générique (uuid=1800). Nous devons d'abord obtenir les valeurs de descripteur de service, décrites sur la première image, dans ce cas, commence de 5 à 11. Maintenant, nous pouvons récupérer tous les descripteurs dans cet intervalle en utilisant le 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 poignée: 0x0007, uuid: 00002a00-0000-1000-8000-00805f9b34fb poignée: 0x0008, uuid: 00002803-0000-1000-8000-00805f9b34fb poignée: 0x0009, uuid: 00002a01-0000-10009-8000-00805, poignée uuid: 00002803-0000-1000-8000-00805f9b34fb poignée: 0x000b, uuid: 00002a04-0000-1000-8000-00805f9b34fb poignée: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb poignée: 0x0000d, uuid: -1000-8000-00805f9b34fb poignée: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb poignée: 0x000f, uuid: 00002902-0000-1000-8000-00805f9b34fb poignée: 0x0010, uuid: 00002803-0000-1000-1000- 00805f9b34fb poignée: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb
Selon la spécification du profil d'accès générique, l'UUID 2A00 fait référence au nom du périphérique.
Considérant que le 2a00 est le handle 0x0007 dans notre appareil, lisons la valeur
[EE:52:5B:04:00:02][LE]> char-read-hnd 7Valeur caractéristique/descripteur: 43 53 52 20 48 52 20 53 65 6e 73 6f 72
Conversion hexadécimale en ASCII, le nom de l'appareil est: ''CSR HR Sensor"
Étape 5: Lecture du BPM
[EE:52:5B:04:00:02][LE]> primaryattr handle: 0x0001, end grp handle: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb attr handle: 0x0005, end grp handle: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fb poignée d'attr: 0x000c, poignée d'extrémité grp: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb poignée d'attr: 0x0014, poignée d'extrémité grp: 0x0017 uuid: 0000180f-0000-1000-8000- 00805f9b34fb poignée attr: 0x0018, poignée fin grp: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 poignée attr: 0x0022, poignée fin grp: 0xffff uuid: 0000180a-0000-1000-8000-00805f9b34fb
L'UUID du service de fréquence cardiaque est 0x180d, donc l'intervalle de traitement est de 0x000c à 0x0013
[EE:52:5B:04:00:02][LE]> char-desc 0x00c 0x0013
poignée: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb poignée: 0x000d, uuid: 00002803-0000-1000-8000-00805f9b34fb poignée: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb, poignée uui000: 00002902-0000-1000-8000-00805f9b34fb poignée: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb poignée: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb poignée: 0x0012, uuid- 00002803 1000-8000-00805f9b34fb poignée: 0x0013, uuid: 00002a39-0000-1000-8000-00805f9b34fb
Lecture de toutes les déclarations de caractéristiques (UUID 0x2803).
[EE:52:5B:04:00:02][LE]> char-read-hnd 0x000d
Valeur caractéristique/descripteur: 10 0e 00 37 2a [EE:52:5B:04:00:02][LE]> char-read-hnd 0x0010 Valeur caractéristique/descripteur: 02 11 00 38 2a [EE:52:5B: 04:00:02][LE]> char-read-hnd 0x0012 Valeur caractéristique/descripteur: 08 13 00 39 2a
Remarquerez que:
- la poignée 0x000d est le CCCD pour le service 2a37 (mesure de la fréquence cardiaque) avec le bit 10 (support NOTIFY)
- le handle 0x0010 est le CCCD pour le service 2a38 (Body Sensor Location) avec le bit 02 (support READ)
- le handle 0x0012 est le CCCD pour le service 2a39 (Heart Rate Control Point) avec le bit 08 (support WRITE)
Nous savons maintenant que la mesure de la fréquence cardiaque ne fonctionne qu'avec notification. Cela signifie que nous devons d'abord enregistrer les changements de valeur dans son CCCD (UUID 0x2902), qui dans ce cas est le handle 0xf
[EE:52:5B:04:00:02][LE]> char-write-req 0x00f 0100
Descripteur de notification = valeur 0x000e: 16 65 f3 01 La valeur caractéristique a été écrite avec succès Descripteur de notification = valeur 0x000e: 16 6d fa 01 Descripteur de notification = valeur 0x000e: 16 6d fa 01 Descripteur de notification = valeur 0x000e: 16 6c f9 01 Descripteur de notification = valeur 0x000e: 16 6a f7 01 Descripteur de notification = 0x000e valeur: 16 69 f6 01
Selon la spécification du profil, le deuxième nombre hexadécimal est l'information BPM.
BPM:
6d = 109
6d = 109
6c = 108
6a = 106
69 = 105
Étape 6: Lecture de l'emplacement du capteur corporel
L'emplacement du capteur corporel est l'UUID 0x2A38. Selon son descripteur, cette caractéristique prend en charge la lecture de base, nous pouvons donc lire sa valeur directement.
[EE:52:5B:04:00:02][LE]> char-read-hnd 0x11Valeur caractéristique/descripteur: 03
Selon la spécification SIG, 03 signifie "Doigt"
Conseillé:
Comment lire plusieurs valeurs analogiques à l'aide d'une seule broche analogique : 6 étapes (avec images)
Comment lire plusieurs valeurs analogiques à l'aide d'une seule broche analogique : Dans ce didacticiel, je vais vous montrer comment lire plusieurs valeurs analogiques à l'aide d'une seule broche d'entrée analogique
Activateur de périphérique à partir du mode veille : 5 étapes
Dispositif d'activation depuis le mode veille : étant donné que la technologie a progressé à un rythme extrêmement élevé, la majorité de la population ne peut pas vivre sans la commodité d'un tel développement. En tant que personne qui a besoin d'appareils quotidiennement, ce projet Arduino présentera un activateur d'appareil. Cette
Lire les valeurs ADC à partir des potentiomètres : 4 étapes
Lire les valeurs ADC à partir de potentiomètres : Dans cet article, je vais vous montrer comment lire les valeurs ADC à partir d'un potentiomètre. C'est la base de la programmation Arduino. qui lit les valeurs analogiques à l'aide de la broche analogique fournie par Arduino. Outre l'utilisation du potentio, il existe plusieurs capteurs qui
Parler Arduino - Lire un MP3 avec Arduino sans aucun module - Lecture d'un fichier Mp3 à partir d'Arduino à l'aide de PCM : 6 étapes
Parler Arduino | Lire un MP3 avec Arduino sans aucun module | Lecture d'un fichier mp3 à partir d'Arduino à l'aide de PCM : dans ces instructions, nous allons apprendre à lire un fichier mp3 avec arduino sans utiliser de module audio
Comment reformater un périphérique de stockage externe à l'aide de Mac OS X : 10 étapes
Comment reformater un périphérique de stockage externe à l'aide de Mac OS X : vendre une vieille clé USB ? Ou ordinateur ? Utilisez ce guide simple étape par étape pour reformater votre périphérique de stockage externe sur votre Mac. Les avantages de ce reformatage d'un disque dur sont en partie la sécurité, la commodité et la réutilisation. Cela aidera à m