Съдържание:
- Стъпка 1: Сканирайте BLE устройство
- Стъпка 2: Свързване на устройство
- Стъпка 3: Извличане на характеристиките на устройството
- Стъпка 4: Четене на името на устройството
- Стъпка 5: Четене на BPM
- Стъпка 6: Четене на местоположението на сензора за тяло
Видео: Четене на стойности от BLE устройство, използващо CSR1010 и Dragonboard 410c: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Този урок показва как да се четат стойности от 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 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 публично -I
След като подканата е отворена, можем да изпратим cmd за свързване към устройството.
[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: Четене на името на устройството
Нека разгледаме характеристиките, прочетени в Generic Access Profile (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-0000b, 0000b uuid: 00002803-0000-1000-8000-00805f9b34fb дръжка: 0x000b, uuid: 00002a04-0000-1000-8000-00805f9b34fb дръжка: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34f00: -1000-8000-00805f9b34fb дръжка: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb дръжка: 0x000f, uuid: 00002902-0000-1000-8000-00805f9b34fb дръжка: 0x0010, uuid- 00002 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]> дръжка за първичен attr: 0x0001, дръжка за краен grp: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb дръжка attr: 0x0005, крайна дръжка grp: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fb дръжка attr: 0x000c, крайна дръжка grp: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb дръжка attr: 0x0014, крайна дръжка: 0x0017 uuid: 00001000-8000 00805f9b34fb дръжка attr: 0x0018, дръжка за край grp: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 дръжка attr: 0x0022, дръжка за край grp: 0xffff uuid: 0000180a-0000-1000-8000-00805f9b
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-0080bf: 00002902-0000-1000-8000-00805f9b34fb дръжка: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb дръжка: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb дръжка: 0x00-00-0000000000000000 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 (поддържа NOTIFY)
- дръжката 0x0010 е CCCD за услуга 2a38 (Местоположение на сензора за тяло) с бит 02 (поддръжка READ)
- дръжка 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
6в = 108
6а = 106
69 = 105
Стъпка 6: Четене на местоположението на сензора за тяло
Местоположението на сензора за тяло е UUID 0x2A38. Според дескриптора тази характеристика поддържа основно четене, така че можем да прочетем стойността му директно.
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x11Характеристична стойност/дескриптор: 03
Според спецификацията на SIG, 03 означава "пръст"
Препоръчано:
Устройство за аларма за студено кафе, използващо Arduino Uno: 5 стъпки
Устройство за аларма за студено кафе, използващо Arduino Uno: Създадох алармено устройство, което ще определи температурата на вашето кафе (или чай), ще ви покаже състоянието, ако все още е ГОРЕЩО, ТОПЛО или ХЛАДНО със светодиоди (съответно червено, жълто и синьо) , задейства предупредителна аларма, ако е студено и ще звъни c
Просто захранване с пейка, използващо старо зарядно устройство за лаптоп: 5 стъпки
Просто захранване с пейка, използващо старо зарядно устройство за лаптоп: Това е моето захранване за пейка, това е много проста конструкция само с 4 проводника за добавяне / свързване. Основното захранване идва от старо зарядно устройство за лаптоп, което може да достави максимум 19v и 3.4A. Заслужава да се спомене, че зарядното устройство за лаптоп е двужична версия от
Зарядно устройство за батерии 2S LiPo/Lion, използващо Micro USB 5V/2A захранване: 3 стъпки
2S зарядно устройство за LiPo/Lion батерия, използващо Micro USB 5V/2A захранване: Въведение: Този проект ще демонстрира алтернативен процес за зареждане на 2 лъвски клетки едновременно, използвайки две зарядни устройства за батерии TP4056 1S, докато изходното напрежение (7,4 V) може да бъде получено при необходимост. Обикновено за зареждане на лъвски клетки като 18650 c
Прототип - алармено устройство, използващо човешки сензор за докосване (KY -036): 4 стъпки
Прототип - алармено устройство, използващо човешки сензор за докосване (KY -036): В този проект ще проектирам алармено устройство, което ще се задейства с докосване. За този проект ще ви е необходим човешки сензор за докосване (KY-036). Нека ви дам един поглед към този проект. Както можете да видите в изображенията по -горе, сензорното докосване
Мобилно зарядно устройство, използващо IC 7805: 4 стъпки
Мобилно зарядно устройство, използващо IC 7805: Както всички знаем, входното напрежение на мобилния заряд е 5V, изходното напрежение ic 7805 е 5V. Можем ли да използваме ic 7805 за зареждане на мобилен телефон? Можете да видите този видеоклип. Отговорът е „Да“. Можем да използваме ic 7805 за зареждане на мобилен телефон. Но … Нека да видим как да го направим