Πίνακας περιεχομένων:
- Βήμα 1: Σάρωση συσκευής BLE
- Βήμα 2: Σύνδεση συσκευής
- Βήμα 3: Ανάκτηση Χαρακτηριστικών συσκευής
- Βήμα 4: Ανάγνωση ονόματος συσκευής
- Βήμα 5: Ανάγνωση του BPM
- Βήμα 6: Ανάγνωση της θέσης του αισθητήρα σώματος
Βίντεο: Ανάγνωση τιμών από μια συσκευή BLE χρησιμοποιώντας CSR1010 και Dragonboard 410c: 6 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:37
Αυτό το σεμινάριο δείχνει πώς να διαβάζετε τιμές από τη συσκευή 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 σημαίνει "Δάχτυλο"
Συνιστάται:
Πώς να ελέγξετε μια συσκευή χρησιμοποιώντας το Raspberry Pi και ένα ρελέ - ΟΙ ΒΑΣΙΚΕΣ: 6 βήματα
Πώς να ελέγξετε μια συσκευή χρησιμοποιώντας το Raspberry Pi and a Relay - THE BASICS: Αυτό είναι ένα βασικό και απλό σεμινάριο για τον τρόπο ελέγχου μιας συσκευής χρησιμοποιώντας το Raspberry Pi και ένα Relay, χρήσιμο για την κατασκευή έργων IoT. Αυτό το σεμινάριο είναι για αρχάριους, είναι φιλικό προς ακολουθήστε ακόμη και αν έχετε μηδενική γνώση χρήσης Raspberry
Δημιουργήστε μια συσκευή αισθητήρα θερμοκρασίας Apple HomeKit χρησιμοποιώντας ένα ESP8266 και ένα BME280: 10 βήματα
Κατασκευάστε μια συσκευή αισθητήρα θερμοκρασίας Apple HomeKit χρησιμοποιώντας έναν ESP8266 και έναν BME280: Στο σημερινό διδακτικό, θα φτιάξουμε αισθητήρα θερμοκρασίας, υγρασίας και υγρασίας χαμηλού κόστους με βάση είτε τον αισθητήρα θερμοκρασίας/υγρασίας AOSONG AM2302/DHT22 είτε BME280, αισθητήρα υγρασίας YL-69. και την πλατφόρμα ESP8266/Nodemcu. Και για προβολή
Δημιουργήστε μια συσκευή Apple HomeKit Temperature Sensor (DHT22) χρησιμοποιώντας μια RaspberryPI και μια DHT22: 11 βήματα
Δημιουργήστε μια συσκευή Apple HomeKit Temperature Sensor (DHT22) χρησιμοποιώντας μια RaspberryPI και μια DHT22: Έψαχνα για έναν χαμηλού κόστους αισθητήρα θερμοκρασίας / υγρασίας που θα μπορούσα να χρησιμοποιήσω για να παρακολουθήσω τι συμβαίνει στον ανιχνευτικό μου χώρο, καθώς διαπίστωσα ότι αυτή την άνοιξη ήταν πολύ υγρό , και είχε πολύ υγρασία. Έτσι έψαχνα έναν αισθητήρα σε λογικές τιμές που θα μπορούσα να
Μια παλμική συσκευή οξύμετρου χρησιμοποιώντας Arduino Nano, MAX30100 και Bluetooth HC06 .: 5 βήματα
Μια συσκευή παλμικού οξύμετρου που χρησιμοποιεί Arduino Nano, MAX30100 και Bluetooth HC06 .: Γεια σας παιδιά, σήμερα θα δημιουργήσουμε μια αισθητηριακή συσκευή για να διαβάζουμε το επίπεδο οξυγόνου στο αίμα και τους παλμούς της καρδιάς με μη επεμβατικό τρόπο χρησιμοποιώντας τον αισθητήρα MAX30100. είναι ένα διάλυμα αισθητήρα Pulse Oximetry and heartrate monitor. Συνδυάζει δύο
LcdMarker, μια συσκευή LCD και η θήκη της από ξύλο: 5 βήματα
LcdMarker, μια συσκευή LCD και η θήκη της από ξύλο: Αυτό το διδακτικό δείχνει πώς να δημιουργήσετε μια συσκευή LCD και τη θήκη της από ξύλο. Wantedθελα να έχω μια συσκευή LCD, η οποία δείχνει το τραγούδι που παίζεται αυτή τη στιγμή από το rhythmbox. Και ήθελα να το φτιάξω μόνος μου. Αυτό το διδακτικό περιέχει 3 υποκατασκευάσματα. 1η