Мазмұны:
- 1 -қадам: BLE құрылғысын сканерлеңіз
- 2 -қадам: құрылғыны қосу
- 3 -қадам: құрылғының сипаттамаларын алу
- 4 -қадам: Құрылғы атауын оқу
- 5 -қадам: BPM оқу
- 6 -қадам: Дене сенсорының орналасуын оқу
Бейне: CSR1010 және Dragonboard 410c көмегімен BLE құрылғысынан мәндерді оқу: 6 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Бұл оқулық Linaro көмегімен Dragonboard 410c көмегімен BSR 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 сенсоры
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
Сұрау ашылғаннан кейін біз құрылғыға connect 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: 00002a09-0000000000000000 uuid: 00002803-0000-1000-8000-00805f9b34fb тұтқасы: 0x000b, uuid: 00002a04-0000-1000-8000-00805f9b34fb тұтқасы: 0x000c, uuid: 00002800-0000-1000-8000-00805f9u300f00: 0x000b00 -1000-8000-00805f9b34fb тұтқасы: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb тұтқасы: 0x000f, uuid: 00002902-0000-1000-8000-00805f9b34fb тұтқасы: 0x0010, uuid: 00002000 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
Он алтылықты ASCII -ге түрлендіру, құрылғының атауы: '' CSR HR Sensor ''
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 аттракционының тұтқасы: 0x000c, соңы грп тұтқасы: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb аттракцион: 0x0014, соңғы грп тұтқасы: 0x0017 uuid: 0000180f-0000-1000 00805f9b34fb аттракционының тұтқасы: 0x0018, соңы грпінің тұтқасы: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 attr тұтқасы: 0x0022, соңғы грп тұтқасы: 0xffff uuid: 0000180a-0000-1000-8000-00b5f9b34f
Жүрек соғу жылдамдығының 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-00fff: 00002902-0000-1000-8000-00805f9b34fb тұтқасы: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb тұтқасы: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb тұтқасы: 0x0010 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 2а [EE: 52: 5B: 04:00:02] [LE]> char-read-hnd 0x0012 Сипаттамалық мән/дескриптор: 08 13 00 39 2а
Назар аударыңыз:
- 0x000d тұтқасы 2a37 (жүрек соғу жиілігін өлшеу) қызметіне арналған 10 -разрядты CCCD болып табылады (NOTIFY қолдау)
- 0x0010 тұтқасы 02a38 (Дене сенсорының орналасуы) қызметіне арналған CCCD, 02 битпен (ОҚУ -ды қолдау)
- 0x0012 тұтқасы - 08 биті бар 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 0x11Сипаттамалық мән/дескриптор: 03
SIG спецификациясына сәйкес 03 «саусақ» дегенді білдіреді
Ұсынылған:
Raspberry Pi көмегімен жарық пен температура сенсорының мәліметтерін оқу және сызу: 5 қадам
Raspberry Pi көмегімен жарық пен температура сенсорының деректерін оқу және сызу: Бұл нұсқаулықта сіз таңқурай pi мен ADS1115 аналогы бар жарық пен температура сенсорын цифрлық түрлендіргішке қалай оқуға болатынын және оны matplotlib көмегімен диаграммалауды үйренесіз. Қажетті материалдардан бастайық
ScanUp NFC оқу құралы/жазушысы және зағиптарға, нашар көретіндерге және басқа адамдарға арналған дыбыс жазғыш: 4 қадам (суреттермен)
ScanUp NFC Reader/жазушы және зағиптарға, нашар көретіндерге және басқаларға арналған аудиожазғыш: Мен өнеркәсіптік дизайнды оқимын, бұл жоба менің семестрімнің жұмысы. Мақсаты - көру қабілеті нашар және зағип жандарға SD картасына WAV форматында дыбыс жазуға және NFC белгісімен қоңырау шалуға мүмкіндік беретін құрылғы арқылы қолдау көрсету. Сонымен
Оқу құралы: Arduino UNO көмегімен ұяшықты қалай калибрлеу және интерфейс: 3 қадам
Оқу құралы: Arduino UNO көмегімен ұяшықты қалай калибрлеуге және интерфейсті жүктеуге болады: Сәлеметсіздерме балалар, біз сізге оқулықты көрсетеміз: Arduino UNO көмегімен жүктеме ұяшығын немесе HX711 теңгерім модулін калибрлеу және интерфейс. дәл A / D түрлендіргіші. Бұл чип жоғары дайындыққа арналған
Ультрадыбыстық сенсордың (HC-SR04) деректерін 128 × 128 СКД-де оқу және оны Matplotlib көмегімен визуализациялау: 8 қадам
Ультрадыбыстық сенсордың (HC-SR04) деректерін 128 × 128 СКД бойынша оқу және оны Matplotlib көмегімен визуализациялау: Бұл нұсқаулықта біз ультрадыбыстық сенсордың (HC-SR04) деректерін 128 × 128 дисплейде көрсету үшін MSP432 LaunchPad + BoosterPack қолданамыз. СКД және деректерді компьютерге дәйекті түрде жіберіңіз және оны Matplotlib көмегімен визуализациялаңыз
NFC (TfCD) көмегімен алдын ала орнатылған мәндерді сақтау және қалпына келтіру: 4 қадам
Алдын ала орнатылған мәндерді NFC (TfCD) көмегімен сақтау және қалпына келтіру: Біз белгілі бір мәнді немесе параметрді реттеу үшін оның қалай жұмыс істейтінін тексергіміз келеді және кейінірек бұл параметрді еске түсіреміз. Бұл эксперимент үшін біз NFC тегін оқыдық, содан кейін оған мәнді сақтадық. Кейінірек тегті қайтадан сканерлеуге және керекті қалпына келтіру үшін мәнді жіберуге болады