Что такое ble менеджер

Протокол Bluetooth Low Energy: поддержка устройствами и специфика работы

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер

Способов трансляции данных «по воздуху» создано и используется довольно много. Популярностью обзавелся протокол BLE, который внедрен в электронику различного типа и успешно используется и по сей день. Что из себя представляет данный протокол и в каких сферах применим — рассмотрено в этой статье.

Зачем разработали BLE

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер

После изучения и успешного применения передачи информации без проводов, появилась потребность передавать данные, используя устройства с автономными источниками питания. Проблема состоит в том, что с этим устройством должно работать еще одно, которое постоянно передает данные либо слушает эфир.

Если у приемника и передатчика имеется батарейное питание, то наблюдаются проблемы со связью при разрыве постоянной передачи связи для экономии энергии, которые решили с новым протоколом передачи данных BlueTooth Low Energy (BLE).

BLE – это режим низкого энергопотребления, способствующий экономии заряда аккумулятора у сопряженных устройств.

Протокол стал частью Bluetooth 4.0. Операционная система Android поддерживает BLE с версии 4.3. В качестве пары, работающей с BLE, берется телефон с современной ОС, совместно с батарейной малой техникой (например, гарнитура). Но не исключены и взаимодействия иных гаджетов.

Чтобы принимать и передавать данные в необходимом объеме беспроводным способом, в стандарт Bluetooth LE включена скорость передачи информации, равная 1 Мбит/сек. Постоянный обмен данными затрачивает энергию, тем самым расходуя ее запасы. Поэтому протокол подразумевает разрыв постоянного эфира для экономии. Поэтому в протоколе не только важна скорость, а и то, что гаджеты умеют синхронизироваться друг с другом тогда, когда это необходимо.

Около 99% всего времени гаджеты спят и экономят энергию. Потом просыпаются на короткий период для обмена данными и снова засыпают. Но чтобы пребывать в данном режиме, устройства сперва между собой необходимо синхронизировать. Этот режим и называется advertising.

В каких сферах применяется

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер

Протокол BLE используется по сценарию: редко передавать данные и обрабатывать долгое время. В частности, возможно использование двухрежимных гаджетов BLE в смартфонах, планшетных ПК, ноутбуках. Однорежимные могут использоваться во множестве сфер деятельности. Под эти сферы попадают устройства из разделов здоровья, автоматизации, анализа, управления.

Множество задач могут решаться, когда в радиусе двухуровневого модуля определяются иные одноуровневые BLE-приборы. К этим приборам относятся приборы-сигнализаторы, что уведомляют владельца об удалении от сумки, барсетки, кошелька, переносной тары и иных персональных вещей, оснащенных BLE-модулем. Отличное применение данным брелкам с BLE находят в качестве маячков для ребенка, чтобы не потерять его в достаточно людных местах.

Устойчивая работа и низкое энергопотребление протокола BLE позволяют рассматривать его в качестве замены NFC, а именно RFID-меток. Но вариант совмещенной работы BLE + NFC выглядит более привлекательно. BLE дает большой радиус, сопряженный с устойчивой работой, второй отвечает за логическое сопряжение пары, плюс обеспечивает надежную защиту за счет малого радиуса действия.

Не обходят стороной данную спецификацию в системах умных домов. Работа приборов через блютуз с низким энергопотреблением позволяет открывать удаленно двери, ворота и приводить в действие прочие механизмы с большого расстояния, подолгу не меняя аккумулятор в беспроводном и компактном органе управления.

Кроме того, внедрение в смартфон, который всегда под рукой, BLE-модуля позволит на приличном удалении через сопряженные каналы управлять любыми приборами и аксессуарами умного дома. Или подключаться к сенсорной панели для удаленного управления с другой комнаты.

Поддерживаемые устройства

Определение поддержки

Множество таких «определителей» находится в Play Market и доступны для использования бесплатно. Модели телефонов, выпущенные до 2015 года включительно, могут не поддерживать данную опцию.

Вопросы безопасности BLE

Защита канала передачи данных между парой устройств в протоколе BLE обусловлена двумя режимами LE Секьюрити мод 1 и LE Секьюрити мод 2. Первый режим работает на Data Link layer (DLL), второй на AT&T.

На DLL в протоколе Bluetooth LE присутствует шифрование и аутентификация с помощью технологии построения аутентификационного кода сообщения из блочного алгоритма шифрования (CCM) и шифра AES-128. При работе CCM и AES-128, добавляется к ним Protocol Data Unit и дополнительное сообщение для идентификации целостности, размером 4-байта, после которого PDU и сообщение шифруются.

Режимы безопасности включают в себя несколько уровней, используемых в зависимости от типа соединения.

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер

Различия протоколов Bluetooth

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер

Так как Блютуз с низким энергопотреблением вошел в спецификацию Bluetooth 4.0, то технические сравнения проведены с классической версией.

Классический Блютуз

Bluetooth Low Energy

Частота радиосигнала

Дальность действия

Количество ведомых устройств

Опция зависит от реализации

128-бит AES + Counter Mode

Общее время передачи информации (минимум)

Различия между BR / EDR и BLE-модулями в том, что первый делит полосу пропускания на 79 каналов с разносом в 1 МГц, а второй работает с передатчиком и приемником для разделения полосы на 40 каналов, с разбросом в 2 МГц.

Заключение

Bluetooth Low Energy – это протокол, специально разработанный для устройств с ограниченным источником автономной энергии, нуждающихся в отправке информации на протяжении нескольких дней или недель без подзарядки. Двухрежимными модулями BLE оснащаются смартфоны, планшетные ПК, ноутбуки. Однорежимные модули BLE используются в мелкой электронике и аксессуарах, типа измерителей пульса или бесконтактных ключей.

Источник

HackWare.ru

Этичный хакинг и тестирование на проникновение, информационная безопасность

Что такое Bluetooth Low Energy (BLE) и как его взламывают

Чтобы вы не ушли пока читаете скучную теорию — в этой статье я буду взламывать свою зубную щётку…

Bluetooth, как мы знаем, является одной из самых популярных и широко используемых беспроводных технологий в современном мире. В связи с быстрым ростом IoT, ускоряющим развитие технологии Bluetooth, Специальная группа по интересам Bluetooth (Bluetooth Special Interest Group (SIG)) предпринимает постоянные усилия по увеличению скорости передачи с максимальным акцентом на маяки, развлечения, сферу здравоохранения и фитнес.

Bluetooth Low Energy (BLE) является частью спецификации Bluetooth 4.0, которая также включает протоколы классического Bluetooth и протокол высокоскоростного Bluetooth (Classic Bluetooth and Bluetooth High Speed Protocols). По сравнению с классическим Bluetooth, BLE предназначен для использования меньшей мощности при сохранении аналогичного диапазона связи. BLE — это технология, которая всегда отключена и передаёт только короткие объёмы данных, когда это необходимо. Это значительно снижает энергопотребление, что делает его идеальным для использования в случаях, когда требуется постоянное долговременное соединение с низкой скоростью передачи данных. BLE идеально подходит для пульта дистанционного управления телевизором, но не для беспроводного устройства потоковой передачи мультимедиа, которому для передачи требуется большой объем данных.

Изначально Nokia разработала BLE для собственного проекта под названием «WIBREE», который впоследствии был передан Bluetooth SIG. BLE был задуман с акцентом на лучшую скорость сопряжения и энергоэффективность.

Что выделяет BLE?

На бумаге BLE выглядит хорошо, а как на практике?

Это хороший вопрос с точки зрения безопасности. Дело в том, что BLE — это просто протокол. Изготовители должны безопасно внедрить BLE в своё устройство. Известно, что даже самый сильный криптографический протокол не будет работать, если генератор случайных чисел не является «достаточно случайным». То же самое относится и к BLE. Таким образом, можно сказать, что безопасность BLE лежит в руках его исполнителей.

В то время как все устройства Bluetooth с низким энергопотреблением были разработаны с основной целью улучшения взаимодействия с пользователем, безопасность заняла последнее место во время процесса?

Давайте посмотрим на три основные уязвимости, которым BLE могут подвергать своих пользователей:

Итак, резюмируя, по своей задумке BLE это упрощённая версия Bluetooth, которая всегда не меняет каналы (частоты), что облегчает сниффинг и атаку человек-посередине. BLE не имеет встроенного протокола обеспечения безопасности. Реализация безопасности BLE возложена на производителей конечных устройств, которые не всегда подходят к этому добросовестно. По этой причине многие BLE устройства можно легко обнаружить практически в любое время их работы. При этом зачастую они не содержат каких-либо механизмов для ограничения чтения и даже записи на них, то есть открыты для подключения и модификации кому угодно.

Основные понятия в BLE

В BLE есть два основных понятия.

Общий профиль доступа (GAP)

Он ответственен за подключение и распространения информации о наличии устройства BLE. GAP отвечает за видимость устройства во внешнем мире, а также играет важную роль в определении того, как устройство взаимодействует с другими устройствами.

Следующие две концепции являются неотъемлемой частью GAP:

Периферийные устройства. Это небольшие устройства с низким энергопотреблением, которые могут подключаться к сложным, более мощным центральным устройствам. Монитор сердечного ритма является примером периферийного устройства.

Центральные устройства: в основном это мобильные телефоны или гаджеты с увеличенной памятью и вычислительной мощностью.

Advertising process (обеспечение видимости устройства)

Процесс обнаружения устройств заключается в том, что Периферийное устройство в заданные интервалы отправляет в округу данные о своём существовании. Если эти данные получит Центральное устройство, то оно отправит запрос на сканирование. В ответ Периферийное устройство пришлёт данные результата сканирования.

Периферийное устройство будет отправлять «рекламные» данные каждые 2 секунды. Если центральное устройство готово прослушать рекламные пакеты, оно ответит запросом сканирования. В ответ на этот запрос периферийное устройство отправит данные ответа сканирования. Таким образом, центральное и периферийное устройства узнают друг о друге и связывается друг с другом.

Протокол общих атрибутов (GATT)

Используя общий протокол данных, известный как протокол атрибутов, GATT определяет, как два устройства BLE обмениваются данными друг с другом, используя понятия — сервис (service) и характеристика (characteristic). Этот протокол сохраняет все сервисы и характеристики в справочной таблице с использованием 16-битных идентификаторов, как указано в Bluetooth SIG. Важно отметить, что GATT инициируется только после того, как Advertising процесс, регулируемый GAP, завершён.

Две основные концепции, которые образуют GATT

Сервисы

Сервисы можно представить просто как шкаф, в котором может быть много ящиков, которые в свою очередь называются характеристиками. Сервис может иметь много характеристик. Каждый сервис уникален сам по себе с универсально уникальным идентификатором (UUID), который может быть размером 16 бит для официальных адаптированных сервисов или 128 бит для пользовательских сервисов.

Характеристики

Характеристики являются наиболее фундаментальным понятием в рамках транзакции GATT. Характеристики содержат одну точку данных и схожи с сервисами, каждая характеристика имеет уникальный идентификатор или UUID, который отличается от другой характеристики.

Вот спецификации SIG для характеристик и сервисов для устройств BLE. Любое устройство BLE, которое официально приняло UUID от SIG, должно использовать идентификатор, указанный ими в своих приложениях.

Например, официальный UUID мощности передачи (TX power) в соответствии с мандатом SIG равен 0x1804.

Чтобы было наглядно, посмотрите на этот пример сервисов и характеристик конкретного устройства:

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер

Ещё один 16-битный сервис это «Generic Attribute (1801)», он содержит только одну 16-битную характеристику: Service Changed (2a05).

Далее идут три 128-битные сервиса, первый из них «a0f0fff050474d5382084f72616c2d42», содержит четыре 128-битных характеристики:

Имеется проблема в идентификации сервисов и характеристик. Для 16-битных сервисов и характеристик всё просто, ссылки на их значения даны выше. Что касается 128-битных сервисов и характеристик, то они у каждого производителя могут быть свои. То есть нужно приложит некоторые усилия, чтобы, к примеру, сопоставить что-то вроде d0611e78-bbb4-4591-a5f8-487910ae4366 с чем-то вроде Apple Continuity Service. Для сопоставления можно использовать как минимум два подхода:

Как взломать Bluetooth Low Energy

Суть процесса взлома Bluetooth Low Energy можно описать следующими стадиями:

Четвёртый этап является творческим и самым сложным. Иногда роль характеристик можно найти в документации разработчиков для данного устройства. Иногда приходится перебирать значения и смотреть, что поменялось в устройстве. Самый сложный вариант — это обратная инженерия перехваченного Bluetooth трафика или приложения для управление устройством.

Я покажу пример изменения BLE параметров на устройстве с помощью bettercap.

Вводим команду для включения модуля по обнаружению BLE устройств:

При обнаружении новых устройств и при потере видимости устройств будут выводиться примерно следующие сообщения:

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер

Чтобы вывести устройства, которые в данный момент в пределах досягаемости, выполните команду:

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер

Для показа характеристик конкретного устройства, запустите команду следующего вида, где вместо MAC укажите MAC-адрес устройства:

К примеру, меня интересует устройство C8:DF:84:1A:9F:26:

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер

В столбце Properties вы увидите свойства данной характеристики, они могут быть:

В колонке Data присутствует текущее значение характеристики, либо дополнительная информация, например:

Для записи данных HEX_DATA в BLE устройство с указанным MAC адресом, в характеристику с идентификатором UUID:

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер

Чтобы знать, что именно записывать, нужно понимать, за что отвечают характеристики. Вот пример значений для моего устройства — это электрическая зубная щётка Oral-B Genius 9000 (кстати, рекомендую). Значение характеристик я нашёл в Интернете.

Исследование и взлом Bluetooth Low Energy (BLE) с телефона

Поскольку на всех современных телефонах имеется Bluetooth, то вы можете использовать приложения для работы с Bluetooth Low Energy (BLE) окружающих устройств на телефоне.

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер

Пример такого приложения — nRF Connect — бесплатная программа программа для Android, которая умеет сканировать для поиска BLE устройств, подключаться к ним и менять значение характеристик. Программа поддерживает макросы и другие продвинутые функции.

Просмотр сервисов устройства:

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер

Просмотр свойств характеристик:

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер

Редактирование значений характеристик:

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер

Работа с Bluetooth Low Energy (BLE) в Linux

Конечно, в Linux можно работать с устройствами, поддерживающими BLE, напрямую, без таких программ как Bettercap.

К сожалению, этот аспект довольно запутанный. В Debian и производных программы для работы с Bluetooth Low Energy собраны в пакете bluez. В Arch Linux и производных, пакет bluez также имеется, но утилиты, которые нас интересуют, помещены в пакет bluez-utils. Но не это самая большая проблема.

После очередного обновления утилит bluez, авторы вдруг признали многие важные программы «устаревшими», а именно устаревшими объявлены:

Поразительно, но для них не было представлено полноценных замен. Путаницу добавляет отсутствие нормальной документации и даже справки по программам.

Была составлена такая таблица замены:

Устаревший инструментСамая подходящая замена
gatttoolbtgatt-client, D-Bus Gatt API
hciattachbtattach
hciconfigbtmgmt (и bluetoothctl?)
hcidumpbtmon (и btsnoop)
hcitoolотсутствует, доступно в D-Bus Device API
rfcommотсутствует, реализовано в D-Bus Profile1 API?
ciptool
sdptoolотсутствует, кажется, что функциональность разбросана по разным объектам D-Bus: Profile, Advertising, и массивы UUIDs в device и adapter.

Слова «отсутствует» не вселяют уверенности. По этой причине для Debian и производных этот пакет компилируется с ключом —enable-deprecated, а на Arch Linux в дополнении к пакету bluez-utils, доступному в стандартных репозиториях, в AUR имеется пакет bluez-utils-compat, в котором тоже включены устаревшие инструменты.

В относительно свежих инструкциях, для взаимодействия с Bluetooth Low Energy используются утилиты:

Поскольку они устарели и однажды всё-таки будут удалены окончательно, рассмотрим несколько простых вариантов использования их замен для поиска BLE устройств и получения с них данных.

Если запустить программу btmgmt:

И в ней выполнить команду:

То она выведет список обнаруженных устройств:

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер

Будут выведены как BLE, так и обычные Bluetooth устройства.

Также умеет искать BLE устройства, если ввести:

С помощью команды connect можно подключиться к устройству, для этого нужно указать его MAC-адрес:

Информация по устройству:

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер

Если перейти в меню GATT:

То можно получить список характеристик:

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер

А также перезаписать характеристики устройства.

Для получения информации по отдельным характеристикам:

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер

Ещё одна программа, которая выведет сразу все характеристики устройства — btgatt-client. Например, выполним подключение и посмотрим характеристики устройства с MAC C8:DF:84:1A:9F:26:

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер

В дополнении к рассмотренным программам, в отдельной консоли можно запустить Bluetooth monitor:

Как и полагается программе-монитору, она будет выводить множество информации о происходящем с Bluetooth и об обнаруженных устройствах.

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер

Заключение

Системные утилиты Linux для работы с Bluetooth заслуживают более внимательного изучения — с их помощью можно узнать более подробную информацию о своей системе и сделать тонкую настройку Bluetooth адаптера.

Также с помощью них можно реализовать сканеры BLE и Bluetooth устройств и/или написать или приспособить фаззеры для исследования назначения характеристик BLE устройств. Поэтому вполне возможно, что в одной из следующих статей будут более подробно рассмотрены программы для работы с BLE.

Источник

Подключаемся к Intel Edison через Android с Bluetooth LE (BLE)

Привет, Хабр! Сегодня поговорим о BLE – технологии Bluetooth с низким энергопотреблением, которая нашла применение как в коммерческих, так и в сугубо любительских продуктах благодаря и низкой стоимости, и столь же низкому аппетиту к ресурсам аккумуляторов. Эти факторы делают BLE отличным выбором для связи смартфона или планшета под ОС Android с проектами на базе плат Intel для разработчиков – Edison или Galileo.

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер

Задача предложенной ниже статьи – показать, как нужно писать код для соединения «железа» посредством протокола BLE на примере платформы Intel Edison и Android-устройства с Bluetooth версии 4.0. При этом используется исключительно бесплатное ПО и недорогие «железные» компоненты, уже готовые к работе.

Начнём, как полагается, с теории.

Что такое BLE?

Знакомимся: технология BLE, она же Bluetooth LE; полное название – Bluetooth Low Energy (или Bluetooth Smart). Технология беспроводной персональной сети передачи данных, разработанная и распространяемая организацией Bluetooth Special Interest Group (Bluetooth SIG). Предназначение Bluetooth LE – применение в сферах здравоохранения и домашних развлечений, в задачах спорта и физкультуры, в автомобилях.

Bluetooth LE впервые был представлен в 2006 году компанией Nokia под кодовым названием Wibree. А в стандарте Bluetooth он появился в 2010 году в версии Bluetooth 4.0.

BLE позволяет устройствам довольствоваться значительно меньшим количеством энергии по сравнению со стандартными соединениями Bluetooth. При этом он предоставляет бОльшую часть обычной функциональности на расстоянии, приблизительно вдвое меньшем по сравнению с обычным – примерно 15 метров. Устройства, работающие по протоколу Bluetooth LE, способны годами работать без необходимости менять или подзаряжать батарею. Маячки, наподобие устройств компании Estimote, уже способны проработать от батарейки до 3 (трёх!) лет.

Железо

Главным героем публикации будет Intel Edison, хотя многие вещи применимы и для Intel Galileo. В нашем IoT-проекте мы будем использовать физические сенсоры и органы управления системы Grove производства фирмы Seeed Studio. А именно:

Я использовал несколько бесплатных программ – для воспроизведения данного примера вам тоже придётся их поставить:

Знакомимся поближе с железом

» Intel Edison

Intel Edison — первое предложение в серии недорогих многоцелевых компьютерных платформ. Эта платформа создана для простого и быстрого создания прототипов проектов IoT, одновременно обеспечивая создание производственных продуктов для коммерциализации проекта.

«Сердце» платы Intel Edison – 22-нм система-на-чипе Intel, включающая в себя двухъядерный процессор Atom, работающий на частоте 500 МГц. Крохотный форм-фактор этой SoC включает в себя 40-пиновые интерфейсы GPIO, 1 Гб ОЗУ класса LPDDR3, 4 Гб на накопителе eMMC и двухфункциональный модуль Wi-Fi + Bluetooth. Заправляет железом платформы полновесное ядро Linux, а чтобы выжать все соки (заложенные в Edison), потребуется написание низкоуровневого кода под него.

Но Linux на Edison содержит ещё и возможность выполнения Linux-программ на мощностях Arduino. Проще говоря, это означает возможность написания привычных Arduino-скетчей и их запуска на Edison. Именно этим мы и займёмся.

Более подробно узнать о системе Edison можно на сайте Intel.

» Плата Arduino

Плата Arduino для Intel Galileo предназначена для двух целей. Во-первых, это более крупная платформа для прототипирования – с облегчённым доступом к интерфейсам ввода-вывода. А во-вторых, перед нами вычислительная платформа, полностью совместимая с Arduino. На практике это значит, что мы можем использовать на Intel Edison (или на Intel Galileo) стандартные платы расширения Arduino.

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер
Intel Edison установлен в плату Arduino

» Комплект Grove Starter Kit Plus

Полное название этого комплекта – «Grove Starter Kit Plus – Intel IoT Edition for Intel Galileo Gen 2 Developer Kit». Изначально набор предназначался для платы Intel Galileo второго поколения – к счастью, в плате Arduino предусмотрена полная совместимость и с Intel Edison.

Комплект предназначен для упрощения макетирования и работы с датчиками, механизмами и модулями-шилдами. В комплекте присутствует совместимый с Arduino модуль на стандартных 4-пиновых интерфейсах. Интерфейсы питаются от портов ввода-вывода посредством включённых в комплект кабелей. Подключение кабелей к датчикам продумано весьма удобно: можно заниматься самими проектами, а не разбираться во всех этих мелких проводках, постоянно что-то поправлять, беспокоиться о полярности подключения и т.д. Больше информации о комплекте (и его приобретении) находится на сайте Seeed Studio.

Кстати, создатель набора Grove, компания Seeed Studios, предлагает коллекцию полезных онлайн-ресурсов. Я в особенности рекомендую изучить или скачать материалы серии «Sketchbook для начинающих» (англ.), а также хотя бы добавить в избранное Wiki-страницу Grove.

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер
Комплект разработчика «Grove Starter Kit Plus — Intel IoT Edition for Intel Galileo Gen 2»

» Grove BLE (V1)

Мы будем использовать модуль Grove Bluetooth Low Energy v1, который не включён в комплект начального уровня, зато «пин-в-пин» совместим с модулем Grove и соединительными проводами. Также это сравнительно недорогой модуль BLE – на момент написания этой статьи я так и не нашёл ничего дешевле.

Основа шилда Grove BLE v1 – стандартный для устройств этого класса чип CC2540 от фирмы Texas Instruments, этот же микрочип используется и в некоторых других продуктах. Поэтому, если под рукой есть другой BLE-модуль на базе TI CC2540, образец кода можно адаптировать и под него, притом с минимальными усилиями.

Отмечу, что на плате Intel Edison уже присутствует встроенный модуль беспроводной связи с поддержкой Wi-Fi и Bluetooth 4.0/BLE, однако, Grove-модуль BLE в разы упрощает как аппаратную, так и программную настройку. Использование модуля Grove также означает, что проект легко адаптируется и для платформы Intel Galileo.

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер
Модуль Grove BLE V1

Больше информации про модуль Grove BLE v1 на сайте производителя.

Отладка на Android-девайсах

Поддержка BLE в Android появилась с версии 4.3 (API level 18). Соответственно, для работы с BLE версия Android на девайсе должна быть не ниже 4.3. Более подробно про Android BLE можно узнать тут.

Если в освоении разработки под Android вы делаете первые шаги, то на планшете/телефоне вначале нужно активировать функции разработчика – они позволяют запускать и отлаживать код. Активация режима разработчика происходит так: открываем настройки, пролистываем меню до самого низа, находим пункт «Об устройстве» и щёлкаем по номеру версии сборки 7 (семь) раз. Теперь включение режима разработчика (Developer Options) отображается в нижней части настроек; не забудьте отметить галочкой пункт «USB debugging» («Отладка USB»). Узнать больше о режиме разработчика можно здесь.

Установка софта. Готовимся кодить!

» Arduino IDE для Intel Galileo

Для развёртывания скетчей на Intel Edison или Galileo нам понадобится скачать специально подготовленную версию Arduino IDE. На момент написания статьи актуальная версия – 1.5.3, а источник находится здесь.

Драйверы для Intel Edison

По ссылке выше расположены и драйверы для Intel Edison: их тоже нужно скачать и установить. Расположены они в нижней части страницы, в категории «ПО и драйверы» – «Driver Software». Или вот прямая ссылка (на момент создания статьи версия драйверов была 1.0.0)

Если возникнут дополнительные вопросы, весьма рекомендую превосходно написанную на английском языке инструкцию – «Getting Started Guide»

Android Studio

Android Studio – новая Java IDE для разработки на Android. Этот пакет написан на основе IntelliJ IDEA. На данный момент пакет имеет статус бета-версии, но работает он вполне стабильно, да и функциональность обеспечена полностью. Если вы уверенно работаете над Andorid-разработками в среде Eclipse для Java (или IntellliJ IDEA), то и при работе в Android Studio не должно возникнуть особых сложностей или проблем – вполне достаточно просмотреть ключевые моменты в обучающих материалах.

Благодаря включению в Android Studio пакета для разработчиков Android SDK, процедура установки значительно упрощается. Она сводится к загрузке, распаковке содержимого zip-файла и запуску инсталлятора studio.exe из папки Bin.

Об Android Studio подробнее написано здесь.

Android SDK

Вероятно, потребуется и загрузка дополнительных пакетов SDK. Удобнее всего сделать это при помощи кнопки «SDK Manager» на панели инструментов интерфейса Android Studio. Конфигурирование и настройка Android SDK – тема для отдельной статьи, поэтому останавливаться на этом мы не будем. Подробная информация о дополнительных SDR подобрана на этой странице.

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер
Указываем путь до SDK в Android Studio

Тестируем Intel Edison

Разработчики Edison подготовили приличный гайдбук для начинающих (англ.).

Неувядающая проверочная классика Hello World для Android

После установки Android Studio убедитесь, что программа позволяет создавать новые проекты и запускать их на устройстве с Android.

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер
Приложение Hello World для Android Studio

Как работает BLE?

Принцип работы BLE описан уже в его названии: Low Energy. Протокол подразумевает передачу данных короткими пакетами по необходимости, затем – выключение передатчика. Низкое энергопотребление частично достигается применением именно этого принципа. Вместо классического тандема в обычном Bluetooth, устройства BLE связываются друг с другом лишь при необходимости отправки или получения информации.

Протокол BLE строго структурирован по принципу своей коммуникации с другими устройствами. Вначале девайсы изучают доступные сервисы для отправки/принятия данных; неотъемлемая часть этих сервисов – их характеристики (characteristics), определяющие тип данных для будущей передачи. Характеристики, из соображений наглядности, могут иметь в своём составе описания-дескрипторы (descriptors), которые помогают определить тип данных. К примеру, разберём сервис под названием «Heart Rate Monitor» (монитор частоты сердцебиения) – среди его характеристик присутствуют такие, как «измерение пульса».

Большинство API для Bluetooth LE позволяют искать локальные устройства и определять доступные в них сервисы, характеристики и дескрипторы.

Ключевые термины и концепции протокола BLE

Предлагаю вашему вниманию краткий обзор ключевых терминов протокола BLE и его концепций. До начала работы над проектом BLE нужно понимать каждый из них.

» Профиль общих атрибутов (GATT)

Профиль общих атрибутов (General Attribute Protocol, GATT) – это обязательный профиль с общими спецификациями отправки и приёма коротких порций данных, известных в Bluetooth Low Link под названием «атрибуты». Все нынешние профили приложений LE основаны на GATT. Институт стандартизации и разработки протокола – Bluetooth Special Interest Group уже задал для устройств BLE несколько профилей. Эти профили представляют собой спецификации, описывающие способ применения и взаимодействия с устройствами.

» Протокол атрибутов (ATT)

» Характеристика (Characteristic)

Характеристика содержит однозначный параметр, а также дескрипторы. Количество дескрипторов может быть равно нулю, то есть это не обязательная часть характеристики. Дескрипторы описывают значение характеристики.

» Дескрипторы (Descriptors)

Дескрипторы представляют собой определённые атрибуты, которые описывают значение характеристики. Дескрипторы могут быть в виде понятных описаний на вполне человеческом языке, определять единицы измерений, а также задавать ряд допустимых значений.

» Сервис (Service)

Сервис это совокупность характеристик. Список существующих профилей на основе GATT можно просмотреть здесь.

Отправка данных из Android на Intel Edison

» Что нам понадобится

Оставшаяся часть данной статьи подразумевает, что у читателя есть система для разработки, сконфигурированная как на стороне Intel Edison, так и для Android. Рекомендую взглянуть на список следующих этапов предварительной подготовки, а при необходимости вернуться к предыдущим частям статьи.

BLE в Android

Готовый проект можно утянуть с GitHub, однако, я рекомендую создать свой собственный проект, вводя код строчку за строчкой, основываясь на ссылке выше.

» Создание нового проекта

Открываем Android Studio (или другую IDE на ваш выбор), создаём новое пустое Android-приложение и называем его BLEConnect. Убедитесь, что минимальный уровень SDK установлен не меньше, чем на API 18: иначе использовать API для BLE не получится.

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер
Создание нового приложения для Android

Затем добавляем в открытый файл AndroidManifest.xml над тегом

» Настройка UI

Не будем усложнять себе жизнь: используем стандартную разметку по умолчанию. Тем не менее, при этом потребуется установить ID для нашего TextView. Для этого нужно открыть файл activity_main.xml в меню layout, выбрать TextView и установить id в значение mainText – теперь мы можем ссылаться на него в нашем коде.

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер
Установка id для TextView

» MainActivity

Переменные Class Level и статические значения

Нам потребуется сохранить несколько переменных, так как мы соединяемся с модулем BLE, ищем сервисы и отсылаем заданное сообщение. Также мы добавим несколько известных статических значений для модуля Grove BLE v1 (чип TI CC2540 – при использовании вами другого модуля может потребоваться изменение этих значений в соответствии с чипом) Я особенно рекомендую задать значения характеристик приёма и передачи, к примеру:

» Метод Status helper

Для упрощения нашей задачи будем показывать прогресс в TextView, который мы уже отметили для этой цели. Код включает в себя простой метод-хелпер под названием statusUpdate – им мы воспользуемся для вывода сообщений о статусе и на экране, и на консоли. Также метод размещает статус в треде UI, что позволит нам безопасно вызвать его из любого треда.

» Подключение к BLE-устройству

» Поиск BLE-устройств вокруг

API постоянно производит сканирование, и в результате мы, скорее всего, получим многочисленные уведомления в LeScanCallback для каждого устройства. Поэтому перед добавлением устройства следует убедиться, что данное устройство уникально. Также мы проверим имена устройства для нашего модуля и добавим их к списку. Однако на самом деле для данного примера не требуется сохранять устройства в список.

» Обнаружение сервиса связи

Большинство BLE-устройств выделяют один или большее количество сервисов для связи/взаимодействия. У чипа TI CC2540 в модуле Grove BLE есть ключевой сервис с ID «0000ffe0-0000-1000-8000-00805f9b34fb». Нужно отыскать и сохранить референс этого сервиса.

Существуют и другие методы, которые можно замещать. Документация на эту тему расположена здесь.

» Отправка сообщения

Для setValue существует несколько перегрузок. Есть и более простой способ перегрузки для отправки строковых данных; но, так как большинство BLE-устройств отправляют команды в виде байтов, данный образец будет полезнее.

Настала очередь сборки Intel Edison.

Сборка Intel Edison, платы Grove и модуля BLE

Начнём со сборки основного железа. Если до этого момента элементы конструкции были в разобранном виде, то сейчас самое время подключить Intel Edison в интерфейсную плату Arduino.

Затем вставляем шилд Grove, выровняв пины на нижней части «шилда» в соответствии с разъёмами на плате Arduino. Наконец, подключаем модуль Grove BLE v1 к последовательному порту UART.

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер
Включённая плата Intel Edison с подключёнными модулями Grove Shield и BLE

Наш первый скетч

Цель работы – установка простого последовательного соединения между устройством Android и Intel Edison. Но в то же время есть желание и посмотреть, что именно отправляется и принимается в ходе этого процесса. Для этого воспользуемся Serial Monitor, встроенным в интегрированную среду разработки (IDE) Arduino.

Завершённая версия рассматриваемого скетча находится на GitHub.

Открываем IDE Intel Arduino и создаём новый скетч. Сохраняем его под названием «SimpleSerial». В отличие от некоторых совместимых с Arduino плат, у Intel Edison два доступных последовательных порта. Весьма полезное решение, которое позволяет ПК подключаться к Edison, в то время как сам Edison отсылает и принимает данные посредством Grove BLE. Главный последовательный UART подключается к ПК через порт microUSB, а для подключения к модулю BLE мы воспользуемся интерфейсом UART на модуле Grove.

» Инициализация последовательных соединений

По умолчанию скорость передачи данных Grove BLE составляет 9600 бод, с этого и начнём. Потребуется сконфигурировать оба последовательных порта для работы на этой скорости. Также понадобится пара AT-команд модулю Grove BLE для сброса и начала работы в данном режиме. Всё описанное можно просмотреть в функции setup() нашего скетча.

Отмечу, что сначала следует сконфигурировать «Serial» (это microUSB-порт UART), а затем – «Serial1» (UART, соединённый с Grove BLE).

Единственная задача данного скетча – чтение данных с обоих последовательных портов и отправка этих данных с одного на другой. Для этого обратимся к функции read() на последовательных портах, которая возвращает один символ, затем используем print() на другом последовательном порту.

Цикл у Edison работает достаточно быстро, поэтому 9600 бод не станут помехой.

Развёртывание скетча

Нажимаем на кнопку Verify в IDE Arduino (на галочку) и фиксим возможные ошибки. После проверки нужно убедиться, что Intel Edison соединён с ПК и передаёт скетч (правая стрелка). После завершения передачи скетч входит в цикл – и мы готовы соединиться с ним из приложения Android. Открываем Serial Monitor на Arduino IDE (лупа сверху справа) – и можно получать и отправлять данные.

Откройте приложение Android BLEConnect после запуска скетча на Intel Edison. На Serial Monitor должно появиться сообщение «Hello Grove BLE». Если что-то не сработало, то, вероятнее всего, проблема кроется на стороне приложения Android. Проверьте индикатор состояния, который должен подсказать, где произошёл сбой.

В репозитории GitHub выложен скетч, который также отправляет сообщение на экран Grove LCD. Убедитесь, что шилд Grove установлен на 5В, и подсоедините LCD-монитор к любому интерфейсу I2C.

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер
Запуск BLEConnect на смартфоне

Что такое ble менеджер. Смотреть фото Что такое ble менеджер. Смотреть картинку Что такое ble менеджер. Картинка про Что такое ble менеджер. Фото Что такое ble менеджер
Arduino IDE Serial Monitor получает BLEConnect-сообщения

Что дальше

Создание более сложного проекта означает закладку архитектуры и в код для Android, и в скетч. Я рекомендовал бы перенести большую часть кода Android BLE в сервис, чтобы отделить его от UI и облегчить его применение для разнообразных задач и проектов. При создании более продвинутых скетчей пригодится использование библиотеки Arduino Time Library, которая позволяет воспроизводить запуск многократных циклов при одновременном получении данных. Собственные примеры кода я буду выкладывать в данный репозиторий GitHub, а обсуждение будущих концепций – тема для отдельной статьи.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *