Πίνακας περιεχομένων:

Ανάγνωση τιμών από μια συσκευή BLE χρησιμοποιώντας CSR1010 και Dragonboard 410c: 6 βήματα
Ανάγνωση τιμών από μια συσκευή BLE χρησιμοποιώντας CSR1010 και Dragonboard 410c: 6 βήματα

Βίντεο: Ανάγνωση τιμών από μια συσκευή BLE χρησιμοποιώντας CSR1010 και Dragonboard 410c: 6 βήματα

Βίντεο: Ανάγνωση τιμών από μια συσκευή BLE χρησιμοποιώντας CSR1010 και Dragonboard 410c: 6 βήματα
Βίντεο: Η ΣΙΝΤΕΡΕΛΑ ΚΑΝΕΙ ΤΑΤΟΥ ΣΕ ΚΡΥΦΟ ΣΗΜΕΙΟ 2024, Νοέμβριος
Anonim
Ανάγνωση τιμών από μια συσκευή BLE χρησιμοποιώντας CSR1010 και Dragonboard 410c
Ανάγνωση τιμών από μια συσκευή BLE χρησιμοποιώντας CSR1010 και Dragonboard 410c

Αυτό το σεμινάριο δείχνει πώς να διαβάζετε τιμές από τη συσκευή BLE CSR1010 χρησιμοποιώντας το Dragonboard 410c με το Linaro

Σε αυτό το παράδειγμα, το CSR1010 μιμείται έναν αισθητήρα καρδιακών παλμών.

Βήμα 1: Σάρωση συσκευής BLE

Σε αυτό το βήμα, ελέγξτε αν ο πελάτης BT είναι έτοιμος για σάρωση συσκευών BLE.

root@linaro-alip:/home/linaro# sudo hcitool lescan

LE Scan… 18: EE: 69: 00: CE: 00 (άγνωστο) 18: EE: 69: 00: CE: 00 (άγνωστο) EE: 52: 5B: 04: 00: 02 Αισθητήρας CSR HR

Βήμα 2: Σύνδεση συσκευής

Θα χρησιμοποιήσουμε το gatttool για να συνδέσουμε τη συσκευή μας

-β: Διεύθυνση MAC συσκευής

-t: τύπος διεύθυνσης LE. Μπορεί να είναι δημόσια ή τυχαία, χρειάζεται έλεγχος προδιαγραφών συσκευής. Σε αυτή την περίπτωση είναι δημόσια.

-I: διαδραστική λειτουργία gatttool. Θα ανοίξει μια προτροπή για αποστολή cmds στη συσκευή

root@linaro -alip:/home/linaro# sudo gatttool -b EE: 52: 5B: 04: 00: 02 -t public -I

Μόλις ανοίξει η προτροπή, μπορούμε να στείλουμε τη σύνδεση cmd στη συσκευή.

[EE: 52: 5B: 04: 00: 02] [LE]> σύνδεση Προσπάθεια σύνδεσης με EE: 52: 5B: 04: 00: 02

Η σύνδεση ήταν επιτυχής

[ΕΕ: 52: 5Β: 04: 00: 02] [LE]>

Βήμα 3: Ανάκτηση Χαρακτηριστικών συσκευής

Ανάκτηση Χαρακτηριστικών Συσκευής
Ανάκτηση Χαρακτηριστικών Συσκευής

Μόλις συνδεθεί η συσκευή, μπορούμε να διαβάσουμε όλες τις διαθέσιμες υπηρεσίες στέλνοντας το cmd "κύριο"

Με βάση το UUID υπηρεσίας, μπορούμε να ανακαλύψουμε τον τύπο υπηρεσίας στις προδιαγραφές GATT

www.bluetooth.com/specifications/gatt/services

Βήμα 4: Ανάγνωση ονόματος συσκευής

Ανάγνωση ονόματος συσκευής
Ανάγνωση ονόματος συσκευής

Ας εξερευνήσουμε τα χαρακτηριστικά που διαβάζονται στο Γενικό προφίλ πρόσβασης (uuid = 1800). Πρώτα πρέπει να λάβουμε τις τιμές της λαβής υπηρεσίας, που περιγράφονται στην πρώτη εικόνα, σε αυτήν την περίπτωση, ξεκινά από 5 έως 11. Τώρα μπορούμε να ανακτήσουμε όλες τις λαβές σε αυτό το διάστημα χρησιμοποιώντας το cmd char-desc

[EE: 52: 5B: 04: 00: 02] [LE]> char-desc 05 11 χειρισμός: 0x0005, uuid: 00002800-0000-1000-8000-00805f9b34fb λαβή: 0x0006, uuid: 00002803-0000-1000-8000- Λαβή 00805f9b34fb: 0x0007, uuid: 00002a00-0000-1000-8000-00805f9b34fb λαβή: 0x0008, uuid: 00002803-0000-1000-8000-00805f9b34fb λαβή: 0x0009, uuid: 00002a0010000000, 00002000, 00002000, 00002000, 0000000, 00002000, 00002000, 0000000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 000, 00, 0000, 0000, 0000, 000, 000, 00, 00, 0000, 000, 00, 00, 00, 00, 00, 0000, 0000, 000, 00, 00, 00, 00, 00, 0000, και. uuid: 00002803-0000-1000-8000-00805f9b34fb λαβή: 0x000b, uuid: 00002a04-0000-1000-8000-00805f9b34fb λαβή: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb: -1000-8000-00805f9b34fb λαβή: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb λαβή: 0x000f, uuid: 00002902-0000-1000-8000-00805f9b34fb λαβή: 0x0010, uuid: 000000000 00805f9b34fb λαβή: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb

Σύμφωνα με την προδιαγραφή γενικού προφίλ πρόσβασης, το UUID 2A00 αναφέρεται στο όνομα συσκευής.

Λαμβάνοντας υπόψη ότι το 2a00 είναι η λαβή 0x0007 στη συσκευή μας, ας διαβάσουμε την τιμή

[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 7 Χαρακτηριστική αξία/περιγραφέας: 43 53 52 20 20 52 52 53 53 6e 73 6f 72

Μετατρέποντας το hex σε ASCII, το όνομα της συσκευής είναι: '' CSR HR Sensor ''

Βήμα 5: Ανάγνωση του BPM

[EE: 52: 5B: 04: 00: 02] [LE]> κύρια λαβή: 0x0001, λαβή τελικού grp: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb λαβή attr: 0x0005, τελική λαβή grp: 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-00 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-0080599

Το UUID της υπηρεσίας καρδιακού ρυθμού είναι 0x180d, οπότε το διάστημα χειρισμού είναι από 0x000c έως 0x0013

[EE: 52: 5B: 04: 00: 02] [LE]> char-desc 0x00c 0x0013

λαβή: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb χειρολαβή: 0x000d, uuid: 00002803-0000-1000-8000-00805f9b34fb λαβή: 0x000e, uuid: 00002a37-0000-1000-8000-0000050090050090050009000005009005000,: 00002902-0000-1000-8000-00805f9b34fb λαβή: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb λαβή: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb Λαβή 1000-8000-00805f9b34fb: 0x0013, uuid: 00002a39-0000-1000-8000-00805f9b34fb

Ανάγνωση όλων των Χαρακτηριστικών Δηλώσεων (UUID 0x2803).

[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x000d

Χαρακτηριστική αξία/περιγραφέας: 10 0e 00 37 2a [ΕΕ: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x0010 Χαρακτηριστική τιμή/περιγραφέας: 02 11 00 38 2a [ΕΕ: 52: 5B: 04:00:02] [LE]> char-read-hnd 0x0012 Χαρακτηριστική αξία/περιγραφέας: 08 13 00 39 2a

Σημειώσε ότι:

- η λαβή 0x000d είναι το CCCD για την υπηρεσία 2a37 (μέτρηση καρδιακού ρυθμού) με bit 10 (υποστήριξη NOTIFY)

- η λαβή 0x0010 είναι το CCCD για την υπηρεσία 2a38 (Θέση αισθητήρα σώματος) με bit 02 (υποστήριξη ΔΙΑΒΑΣΤΕ)

- η λαβή 0x0012 είναι το CCCD για την υπηρεσία 2a39 (Σημείο ελέγχου καρδιακού ρυθμού) με bit 08 (υποστήριξη WRITE)

Τώρα γνωρίζουμε ότι η μέτρηση καρδιακού ρυθμού λειτουργεί μόνο με ειδοποίηση. Σημαίνει ότι πρώτα πρέπει να εγγραφούμε για αλλαγές τιμών στο CCCD του (UUID 0x2902), το οποίο σε αυτή την περίπτωση είναι η χειρολαβή 0xf

[EE: 52: 5B: 04: 00: 02] [LE]> char-write-req 0x00f 0100

Λαβή ειδοποίησης = τιμή 0x000e: 16 65 f3 01 Η χαρακτηριστική τιμή γράφτηκε με επιτυχία Λαβή ειδοποίησης = τιμή 0x000e: 16 6d fa 01 Λαβή ειδοποίησης = 0x000e τιμή: 16 6d fa 01 Λαβή ειδοποίησης = 0x000e τιμή: 16 6c f9 01 Λαβή ειδοποίησης = 0x000e τιμή: 16 6a f7 01 Λαβή ειδοποίησης = 0x000e τιμή: 16 69 f6 01

Σύμφωνα με τις προδιαγραφές προφίλ, ο δεύτερος εξαγωνικός αριθμός είναι οι πληροφορίες BPM.

BPM:

6δ = 109

6δ = 109

6c = 108

6α = 106

69 = 105

Βήμα 6: Ανάγνωση της θέσης του αισθητήρα σώματος

Ανάγνωση της θέσης του αισθητήρα σώματος
Ανάγνωση της θέσης του αισθητήρα σώματος

Η θέση του αισθητήρα σώματος είναι το UUID 0x2A38. Σύμφωνα με τον περιγραφέα του, αυτό το χαρακτηριστικό υποστηρίζει τη βασική ανάγνωση, ώστε να μπορούμε να διαβάσουμε την τιμή του απευθείας.

[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x11 Χαρακτηριστική αξία/περιγραφέας: 03

Σύμφωνα με τις προδιαγραφές της SIG, 03 σημαίνει "Δάχτυλο"

Συνιστάται: