Мазмуну:
- 1 -кадам: BLE түзмөгүн скандоо
- 2 -кадам: түзмөктү туташтыруу
- 3 -кадам: Түзмөктүн мүнөздөмөлөрүн алуу
- 4 -кадам: Түзмөктүн атын окуу
- 5 -кадам: BPM окуу
- 6 -кадам: Дене сенсорунун жайгашкан жерин окуу
Video: CSR1010 жана Dragonboard 410c колдонулган BLE түзмөгүнөн баалуулуктарды окуу: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Бул окуу куралы Linaro менен Dragonboard 410c аркылуу BLE түзмөгүнүн CSR1010 баалуулуктарын кантип окууну көрсөтөт
Бул мисалда, 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 Sensor
2 -кадам: түзмөктү туташтыруу
Биз аппаратты туташтыруу үчүн gatttool колдонобуз
-b: Түзмөктүн 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]> connectEEге туташууга аракет кылуу: 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 11handle: 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-001 uuid: 00002803-0000-1000-8000-00805f9b34fb туткасы: 0x000b, uuid: 00002a04-0000-1000-8000-00805f9b34fb туткасы: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34f3: 0x000b00 -1000-8000-00805f9b34fb туткасы: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb туткасы: 0x000f, uuid: 00002902-0000-1000-8000-00805f9b34fb туткасы: 0x0010, uuid: 00002-800-002 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ге айландыруу, түзмөктүн аталышы: '' CSR HR Sensor"
5 -кадам: BPM окуу
[EE: 52: 5B: 04: 00: 02] [LE]> primattr туткасы: 0x0001, end grp handle: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb attr туткасы: 0x0005, end grp handle: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fb attr туткасы: 0x000c, end grp handle: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb attr туткасы: 0x0014, end grp handle: 0x0017 uuid: 00001-8f-0000-1000 00805f9b34fb attr туткасы: 0x0018, end grp handle: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 attr туткасы: 0x0022, end grp handle: 0xffff uuid: 0000180a-0000-1000-8000-00b5f9b34f
Heart Rate кызматы 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-00ff: 00002902-0000-1000-8000-00805f9b34fb туткасы: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb туткасы: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb туткасы: 0x0010, 00x0010 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 2а [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 2a37 кызматы үчүн CCCD (Жүрөктүн кагышын өлчөө) 10 бит менен (колдоо NOTIFY)
- туткасы 0x0010 02a38 (Body Sensor Жайгашуу) кызматы үчүн CCCD болуп саналат 02 (колдоо READ)
- туткасы 0x0012, бит 2 менен кызмат 2a39 (Жүрөктүн кагышын көзөмөлдөө пункту) үчүн CCCD болуп саналат (колдоо 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 6а f7 01 Билдирүү туткасы = 0x000e мааниси: 16 69 f6 01
Профилдин өзгөчөлүгүнө ылайык, экинчи он алтылык номер BPM маалыматы.
BPM:
6d = 109
6d = 109
6c = 108
6а = 106
69 = 105
6 -кадам: Дене сенсорунун жайгашкан жерин окуу
Дене сенсорунун жайгашкан жери UUID 0x2A38. Анын дескрипторуна ылайык, бул мүнөздөмө негизги окууну колдойт, андыктан биз анын баасын түз окуй алабыз.
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x11Carakterical value/descriptor: 03
SIG спецификациясына ылайык, 03 "Манжа" дегенди билдирет
Сунушталууда:
Arduino Keyboard Joystick Extender Box жана Deej колдонулган үн көзөмөлдөөчү нерсе: 8 кадам
Arduino Keyboard Joystick Extender Box жана Sound Controller Thing Deej: Эмне үчүн Мен интерфейстин элементтерин башкаруу үчүн клавиатурама кичинекей джойстикти кошкум келет, же оюндарда жана тренажерлордо (MS Flight Sim, Elite: Dangerous, Жылдыздар согушу: эскадрильялар ж. Ошондой эле, Элита үчүн: Кооптуу, мен
Raspberry Pi менен жарык жана температура сенсорунун маалыматтарын окуу жана графиктөө: 5 кадам
Raspberry Pi менен жарык жана температура сенсорунун маалыматтарын окуу жана графиктөө: Бул Нускоодо сиз малина пи жана ADS1115 аналогу менен жарык жана температура сенсорун санариптик конвертерге кантип окуп, аны matplotlib аркылуу графикке түшүрүүнү үйрөнөсүз. Керектүү материалдардан баштайлы
Бир аналог пинди колдонуу менен бир нече аналогдук баалуулуктарды кантип окуу керек: 6 кадам (сүрөттөр менен)
Бир аналог пинди колдонуу менен бир нече аналогдук баалуулуктарды кантип окуу керек: Бул үйрөткүчтө мен сизге бир эле аналогдук кирүүчү пинди колдонуу менен бир нече аналогдук баалуулуктарды кантип окууну көрсөтөм
NFC (TfCD) менен алдын ала коюлган баалуулуктарды сактоо жана калыбына келтирүү: 4 кадам
Алдын ала коюлган баалуулуктарды NFC (TfCD) менен сактоо жана калыбына келтирүү: Биз белгилүү бир маанини же жөндөөнү кантип өзгөртүү керектигин текшерип, кийинчерээк бул жөндөөнү эстеп калгыбыз келет. Бул эксперимент үчүн биз NFC тегин окуп, андан кийин маанисин сактап калдык. Кийинчерээк тег кайра сканерленип, кайра калыбына келтирүү үчүн маанини кайра жөнөтө алат
Ноутбуктун 3 жана 3 кадамдык стенди (окуу көз айнеги жана калем табагы менен): 5 кадам
Ноутбуктун 3 жана 3 кадамдуу стенди (окуу көз айнеги жана калем табагы менен): Бул $ 3 & Ноутбуктун 3 баскычын 5 мүнөттүн ичинде жасоого болот. Бул абдан күчтүү, жеңил салмактуу жана бүктөлгөн жерден кайда барбаңыз