Что такое ble менеджер
Протокол Bluetooth Low Energy: поддержка устройствами и специфика работы
Способов трансляции данных «по воздуху» создано и используется довольно много. Популярностью обзавелся протокол 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 позволяют рассматривать его в качестве замены 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 и сообщение шифруются.
Режимы безопасности включают в себя несколько уровней, используемых в зависимости от типа соединения.
Различия протоколов Bluetooth
Так как Блютуз с низким энергопотреблением вошел в спецификацию Bluetooth 4.0, то технические сравнения проведены с классической версией.
Устаревший инструмент | Самая подходящая замена |
---|---|
gatttool | btgatt-client, D-Bus Gatt API |
hciattach | btattach |
hciconfig | btmgmt (и bluetoothctl?) |
hcidump | btmon (и 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, так и обычные Bluetooth устройства.
Также умеет искать BLE устройства, если ввести:
С помощью команды connect можно подключиться к устройству, для этого нужно указать его MAC-адрес:
Информация по устройству:
Если перейти в меню GATT:
То можно получить список характеристик:
А также перезаписать характеристики устройства.
Для получения информации по отдельным характеристикам:
Ещё одна программа, которая выведет сразу все характеристики устройства — btgatt-client. Например, выполним подключение и посмотрим характеристики устройства с MAC C8:DF:84:1A:9F:26:
В дополнении к рассмотренным программам, в отдельной консоли можно запустить Bluetooth monitor:
Как и полагается программе-монитору, она будет выводить множество информации о происходящем с Bluetooth и об обнаруженных устройствах.
Заключение
Системные утилиты Linux для работы с Bluetooth заслуживают более внимательного изучения — с их помощью можно узнать более подробную информацию о своей системе и сделать тонкую настройку Bluetooth адаптера.
Также с помощью них можно реализовать сканеры BLE и Bluetooth устройств и/или написать или приспособить фаззеры для исследования назначения характеристик BLE устройств. Поэтому вполне возможно, что в одной из следующих статей будут более подробно рассмотрены программы для работы с BLE.
Подключаемся к Intel Edison через Android с Bluetooth LE (BLE)
Привет, Хабр! Сегодня поговорим о BLE – технологии Bluetooth с низким энергопотреблением, которая нашла применение как в коммерческих, так и в сугубо любительских продуктах благодаря и низкой стоимости, и столь же низкому аппетиту к ресурсам аккумуляторов. Эти факторы делают BLE отличным выбором для связи смартфона или планшета под ОС Android с проектами на базе плат Intel для разработчиков – Edison или Galileo.
Задача предложенной ниже статьи – показать, как нужно писать код для соединения «железа» посредством протокола 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.
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.
Комплект разработчика «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.
Модуль 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 подобрана на этой странице.
Указываем путь до SDK в Android Studio
Тестируем Intel Edison
Разработчики Edison подготовили приличный гайдбук для начинающих (англ.).
Неувядающая проверочная классика Hello World для Android
После установки Android Studio убедитесь, что программа позволяет создавать новые проекты и запускать их на устройстве с Android.
Приложение 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 не получится.
Создание нового приложения для Android
Затем добавляем в открытый файл AndroidManifest.xml над тегом
» Настройка UI
Не будем усложнять себе жизнь: используем стандартную разметку по умолчанию. Тем не менее, при этом потребуется установить ID для нашего TextView. Для этого нужно открыть файл activity_main.xml в меню layout, выбрать TextView и установить id в значение mainText – теперь мы можем ссылаться на него в нашем коде.
Установка 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.
Включённая плата 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.
Запуск BLEConnect на смартфоне
Arduino IDE Serial Monitor получает BLEConnect-сообщения
Что дальше
Создание более сложного проекта означает закладку архитектуры и в код для Android, и в скетч. Я рекомендовал бы перенести большую часть кода Android BLE в сервис, чтобы отделить его от UI и облегчить его применение для разнообразных задач и проектов. При создании более продвинутых скетчей пригодится использование библиотеки Arduino Time Library, которая позволяет воспроизводить запуск многократных циклов при одновременном получении данных. Собственные примеры кода я буду выкладывать в данный репозиторий GitHub, а обсуждение будущих концепций – тема для отдельной статьи.
- Что такое ble менеджер на смарт
- Что такое ble менеджером сопряжение