Inhaltsverzeichnis:
- Schritt 1: BLE-Gerät scannen
- Schritt 2: Gerät anschließen
- Schritt 3: Abrufen von Geräteeigenschaften
- Schritt 4: Lesen des Gerätenamens
- Schritt 5: Lesen der BPM
- Schritt 6: Lesen der Körpersensorposition
Video: Lesen von Werten von einem BLE-Gerät mit CSR1010 und Dragonboard 410c - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:20
Dieses Tutorial zeigt, wie man Werte vom BLE-Gerät CSR1010 mit Dragonboard 410c mit Linaro liest
In diesem Beispiel emuliert CSR1010 einen Herzfrequenzsensor.
Schritt 1: BLE-Gerät scannen
Überprüfen Sie in diesem Schritt, ob Ihr BT-Client zum Scannen von BLE-Geräten bereit ist.
root@linaro-alip:/home/linaro# sudo hcitool lescan
LE Scan …18:EE:69:00:CE:00 (unbekannt) 18:EE:69:00:CE:00 (unbekannt) EE:52:5B:04:00:02 CSR HR-Sensor
Schritt 2: Gerät anschließen
Wir werden gatttool verwenden, um unser Gerät zu verbinden
-b: Geräte-MAC-Adresse
-t: LE-Adresstyp. Kann öffentlich oder zufällig sein, Gerätespezifikation muss überprüft werden. In diesem Fall ist öffentlich.
-I: interaktiver gatttool-Modus. Es wird eine Aufforderung zum Senden von cmds an das Gerät geöffnet
root@linaro-alip:/home/linaro# sudo gatttool -b EE:52:5B:04:00:02 -t public -I
Sobald die Eingabeaufforderung geöffnet ist, können wir connect cmd an das Gerät senden.
[EE:52:5B:04:00:02][LE]> connectVersuch, eine Verbindung zu EE:52:5B:04:00:02 herzustellen
Verbindung erfolgreich
[EE:52:5B:04:00:02][LE]>
Schritt 3: Abrufen von Geräteeigenschaften
Sobald das Gerät verbunden ist, können wir alle verfügbaren Dienste lesen, indem wir das cmd "primary" senden
Anhand der Dienst-UUID können wir den Diensttyp in der GATT-Spezifikation ermitteln
www.bluetooth.com/specifications/gatt/services
Schritt 4: Lesen des Gerätenamens
Lassen Sie uns die Merkmale des generischen Zugriffsprofils (uuid=1800) untersuchen. Zuerst müssen wir die Service-Handle-Werte abrufen, die im ersten Bild beschrieben sind, in diesem Fall von 5 bis 11. Jetzt können wir alle Handles in diesem Intervall mit dem cmd char-desc abrufen
[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-00805f9b000f uuid: 00002803-0000-1000-8000-00805f9b34fb Handle: 0x000b, uuid: 00002a04-0000-1000-8000-00805f9b34fb 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, uuid: 00002902-0000-1000-8000-00805f9b34fb Handle: 0x0010, uuid: 00002803-0000-1000-8000- 00805f9b34fb handle: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb
Gemäß der Generic Access Profile-Spezifikation bezieht sich die UUID 2A00 auf den Gerätenamen.
Wenn man bedenkt, dass 2a00 das Handle 0x0007 in unserem Gerät ist, lesen wir den Wert
[EE:52:5B:04:00:02][LE]> char-read-hnd 7Charakteristischer Wert/Deskriptor: 43 53 52 20 48 52 20 53 65 6e 73 6f 72
Beim Konvertieren von Hex in ASCII lautet der Gerätename: "CSR HR Sensor"
Schritt 5: Lesen der 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 attr handle: 0x000c, end grp handle: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb attr handle: 0x0014, end grp handle: 0x0017 uuid: 0000180f-0000-1000-8000- 00805f9b34fb attr handle: 0x0018, end grp handle: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 attr handle: 0x0022, end grp handle: 0xffff uuid: 0000180a-0000-1000-8000-00805f9b34fb
Die UUID des Herzfrequenzdienstes ist 0x180d, das Handle-Intervall reicht also von 0x000c bis 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, uuid: 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 handle: 0x0013, uuid: 00002a39-0000-1000-8000-00805f9b34fb
Lesen aller Merkmalsdeklarationen (UUID 0x2803).
[EE:52:5B:04:00:02][LE]> char-read-hnd 0x000d
Charakteristischer Wert/Deskriptor: 10 0e 00 37 2a [EE:52:5B:04:00:02][LE]> char-read-hnd 0x0010 Charakteristischer Wert/Deskriptor: 02 11 00 38 2a [EE:52:5B: 04:00:02][LE]> char-read-hnd 0x0012 Charakteristischer Wert/Deskriptor: 08 13 00 39 2a
Beachte das:
- Handle 0x000d ist das CCCD für Service 2a37 (Heart Rate Measurement) mit Bit 10 (unterstützt NOTIFY)
- Handle 0x0010 ist das CCCD für Service 2a38 (Body Sensor Location) mit Bit 02 (Unterstützung von READ)
- Handle 0x0012 ist das CCCD für Service 2a39 (Heart Rate Control Point) mit Bit 08 (Unterstützung WRITE)
Jetzt wissen wir, dass die Herzfrequenzmessung nur mit Benachrichtigung funktioniert. Das bedeutet, dass wir uns zuerst für Wertänderungen in seiner CCCD (UUID 0x2902) registrieren müssen, die in diesem Fall das Handle 0xf. ist
[EE:52:5B:04:00:02][LE]> char-write-req 0x00f 0100
Benachrichtigungshandle = 0x000e-Wert: 16 65 f3 01 Merkmalswert wurde erfolgreich geschrieben Benachrichtigungshandle = 0x000e-Wert: 16 6d fa 01 Benachrichtigungshandle = 0x000e-Wert: 16 6d fa 01 Benachrichtigungshandle = 0x000e-Wert: 16 6c f9 01 Benachrichtigungshandle = 0x000e-Wert: 16 6a f7 01 Benachrichtigungshandle = 0x000e Wert: 16 69 f6 01
Gemäß der Profilspezifikation ist die zweite Hex-Zahl die BPM-Information.
BPM:
6d = 109
6d = 109
6c = 108
6a = 106
69 = 105
Schritt 6: Lesen der Körpersensorposition
Die Position des Körpersensors ist die UUID 0x2A38. Laut seinem Deskriptor unterstützt dieses Merkmal das grundlegende Lesen, sodass wir seinen Wert direkt ablesen können.
[EE:52:5B:04:00:02][LE]> char-read-hnd 0x11Eigenschaftswert/Deskriptor: 03
03 bedeutet laut SIG-Spezifikation "Finger"
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
So lesen Sie eine Mikrometerschraube ab: 3 Schritte
Wie man eine Mikrometerschraube liest.: Hallo, mein Name ist Damian Paul. Ich bin Student im zweiten Jahr am Lake Area Technical Institute im Programm Präzisionsbearbeitung. Ich betreibe seit über 2 Jahren CNC-Maschinen, bevor ich das Lake Area Technical Institute besuchte. Heute gehe ich
So verstecken Sie Dateien, die andere nicht sehen oder lesen sollen.: 7 Schritte
So verstecken Sie Dateien, die andere nicht sehen und oder lesen möchten.: Dieses Instructable zeigt Ihnen, wie Sie das Format einer Datei ändern, um sie nutzlos zu machen, es sei denn, Sie wissen, welcher Dateityp es ursprünglich war. Zum Beispiel ein mpeg (Filmdatei) in ein txt/doc (Text/Dokument) ändern, damit Sie es nicht abspielen können, geschweige denn die Informationen sehen
So reparieren Sie einen Wechselrichter mit LCD-Hintergrundbeleuchtung. Mit einem Fujiplus FP-988D. für 0 $.: 9 Schritte
So reparieren Sie einen Wechselrichter mit LCD-Hintergrundbeleuchtung. Mit einem Fujiplus FP-988D. für $ 0.: In diesem anweisbaren werde ich Sie durch die Reparatur eines toten LCD-Hintergrundlicht-Wechselrichters mit den Teilen führen, die Sie haben. Sie können feststellen, ob Sie ein totes Gegenlicht haben, indem Sie zuerst andere Möglichkeiten ausschließen. Monitor auf mehreren Computern überprüfen. Stellen Sie sicher, dass
So kommunizieren Sie mit einem Alien-Artefakt oder . . .: 4 Schritte (mit Bildern)
Wie man mit einem außerirdischen Artefakt kommuniziert oder…: *** Enge Begegnungen der seltsam-minzigen Art. *** Dieses Instructable zeigt Ihnen, wie Sie eine Altoids-Version des Mutterschiffs "Close Encounters" bauen und damit interagieren. Dies kann ein wichtiges Training für den Tag sein, an dem das Bright White Be