תוכן עניינים:

קריאת ערכים ממכשיר 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 סריקה … 18: EE: 69: 00: CE: 00 (לא ידוע) 18: EE: 69: 00: CE: 00 (לא ידוע) EE: 52: 5B: 04: 00: 02 חיישן HR CSR

שלב 2: חיבור התקן

אנו נשתמש ב- gatttool לחיבור המכשיר שלנו

-b: כתובת MAC של המכשיר

-t: סוג כתובת LE. יכול להיות ציבורי או אקראי, צריך לבדוק את מפרט המכשיר. במקרה זה הוא ציבורי.

-אני: מצב אינטראקטיבי של gatttool. הוא יפתח הודעה לשלוח cmds למכשיר

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

לאחר הפקודה פתוחה, נוכל לשלוח cmd connect למכשיר.

[EE: 52: 5B: 04: 00: 02] [LE]> התחבר מנסה להתחבר ל- EE: 52: 5B: 04: 00: 02

החיבור הצליח

[EE: 52: 5B: 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: 00002a01-0000-10008 uuid: 00002803-0000-1000-8000-00805f9b34fb ידית: 0x000b, uuid: 00002a04-0000-1000-8000-00805f9b34fb ידית: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb ידית: 0x000 ידית -1000-8000-00805f9b34fb: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb ידית: 0x000f, uuid: 00002902-0000-1000-8000-00805f9b34fb ידית: 0x0010, uuid: 00002803 ידית 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 48 52 20 53 65 6e 73 6f 72

המרת hex ל- ASCII, שם המכשיר הוא: '' חיישן HR CSR"

שלב 5: קריאת BPM

[EE: 52: 5B: 04: 00: 02] [LE]> ידית אטראטרית ראשית: 0x0001, ידית סוף קצה: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb ידית אטר: 0x0005, ידית אחורית סוף: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fb ידית ATR: 0x000c, ידית סוף קצה: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb ידית attr: 0x0014, ידית סוף grp: 0x0017 uuid: 0000180f-0000 00805f9b34fb ידית אטר: 0x0018, ידית סוף קצה: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 ידית אטר: 0x0022, אחיזה אחרונה: 0xffff uuid: 0000180a-0000-1000-8000-00805f9

שירות קצב הלב 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-00805f9b34f: ידית 00002902-0000-1000-8000-00805f9b34fb: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb ידית: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb ידית: 0x0012, uuid: 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 [EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x0010 ערך אופייני/מתאר: 02 11 00 38 2a [EE: 52: 5B: 04:00:02] [LE]> char-read-hnd 0x0012 ערך אופייני/מתאר: 08 13 00 39 2a

שים לב ש:

- ידית 0x000d היא CCCD לשירות 2a37 (מדידת קצב לב) עם סיביות 10 (תמיכה הודעה)

- ידית 0x0010 היא CCCD לשירות 2a38 (מיקום חיישן גוף) עם סיביות 02 (תמיכה לקרוא)

- ידית 0x0012 היא CCCD לשירות 2a39 (נקודת בקרת דופק) עם ביט 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:

6d = 109

6d = 109

6c = 108

6a = 106

69 = 105

שלב 6: קריאת מיקום חיישן הגוף

קריאת מיקום חיישן הגוף
קריאת מיקום חיישן הגוף

מיקום חיישן הגוף הוא UUID 0x2A38. על פי המתאר שלו, מאפיין זה תומך בקריאה בסיסית, כך שנוכל לקרוא את ערכו ישירות.

[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x11 ערך אופייני/מתאר: 03

על פי מפרט SIG, 03 פירושו "אצבע"

מוּמלָץ: