- Обнаружение BLE устройств с помощью модуля ESP32
- Необходимые компоненты
- Основные принципы работы технологии BLE
- Как работает датчик приближения на основе технологии BLE
- Объяснение программы для модуля ESP32
- Bluetooth Low Energy sensors
- Wireless atmospheric pressure, temperature and humidity logger – Bluetooth Low Energy
- Wireless carbon monoxide (CO) logger – Bluetooth Low Energy
- Wireless differential pressure logger – Bluetooth Low Energy
- Wireless high temperature logger – Bluetooth Low Energy
- Wireless hydrogen sulfide (H2S) logger – Bluetooth Low Energy
- Wireless indoor air quality, temperature and humidity logger – Bluetooth Low Energy
- Wireless low temperature logger – Bluetooth Low Energy
- Wireless nitrogen dioxide (NO2) logger – Bluetooth Low Energy
- Wireless open / close logger – Bluetooth Low Energy
- Wireless ozone (O3) logger – Bluetooth Low Energy
- Wireless pulse counter – Bluetooth Low Energy
- Wireless pulse counter – electricity – Bluetooth Low Energy
- Wireless pulse counter – water – Bluetooth Low Energy
- Wireless soil moisture and temperature logger – Bluetooth Low Energy
- Wireless temperature and humidity logger – Bluetooth Low Energy
- Wireless temperature and humidity logger with external probe – Bluetooth Low Energy
- Wireless temperature logger – Bluetooth Low Energy
- Wireless temperature logger with external probe – Bluetooth Low Energy
- Wireless temperature monitoring set – Bluetooth Low Energy
- Wireless vineyard monitoring set – Bluetooth Low Energy
- Wireless water leak logger – Bluetooth Low Energy
- Wireless water rope logger – Bluetooth Low Energy
- Categories
Обнаружение BLE устройств с помощью модуля ESP32
Датчики приближения (proximity sensors) предназначены для обнаружения близкорасположенных объектов с помощью света, электромагнитного поля или звука. В ряду случаев для обнаружения близко расположенных объектов целесообразно использовать технологию BLE (Bluetooth Low Energy – Bluetooth с низким энергопотреблением). Для создания подобного датчика можно использовать модуль ESP32, поскольку он имеет встроенную поддержку BLE.
В данной статье мы рассмотрим создание детектора BLE устройств на основе модуля ESP32. Ранее на нашем сайте мы рассматривали использование технологии BLE в ESP32 для соединения с фитнес браслетом.
Необходимые компоненты
Внешний вид компонентов, необходимых для нашего проекта, показан на следующем рисунке.
Основные принципы работы технологии BLE
BLE (Bluetooth Low Energy) – это Bluetooth с низким потреблением. Технология BLE была разработана в 2011 г. и с тех пор находит широкое применение для связи на короткие расстояния в устройствах, получающих питание от батареек/аккумуляторов: смартфоны, умные часы, беспроводные гарнитуры, беспроводные колонки и т.п.
Технология BLE была разработана специальной группой по интересам (Special Interest Group, SIG) Bluetooth. Основной целью создания технологии было максимальное снижение энергопотребления устройств. Хотя в названии технологии BLE есть слово «Bluetooth», тем не менее, данная технология не обладает обратной совместимостью, то есть классические Bluetooth устройства не могут осуществлять прием данных от устройств BLE. Но зато это позволило разработчикам создать технологию, благодаря которой беспроводные устройства могут работать от крошечной батарейки несколько месяцев (или даже лет).
Технология BLE использует иерархическую структуру данных для передачи и приема информации. BLE устройство, работающее в качестве сервера, предоставляет услуги и характеристики, которые могут быть обнаружены клиентом. И как только произойдет обмен информацией между клиентом и сервером, эти два устройства смогут работать друг с другом одновременно. Этот стек (совокупность) информации является атрибутом (отличительным свойством) BLE устройства. Данная информация задается с помощью профиля GATT (Generic Attributes). Данный профиль содержит услуги/службы (Service), характеристики (Characteristics) и значения (values) в иерархическом порядке. Службы содержат характеристики, а характеристики содержат значения. Считывая характеристики, мы можем считывать их значения и изменять их.
Структура GATT профиля представлена на следующем рисунке.
Характеристики (Characteristics) могут быть использованы для чтения или записи информации. Устройства, содержащие компоненты для чтения, могут публиковать (publish) информацию, а устройства, содержащие компоненты для записи, могут принимать данные от клиента.
GATT профиль технологии BLE также известен как UUID (Universally Unique Identifier – универсальный уникальный идентификатор). Существует ряд стандартных служб и характеристик, определенных корпорацией SIG. Если мы считываем UUID BLE устройства, мы сразу можем определить тип этого устройства.
Данные BLE передаются и принимаются с помощью очень коротких пакетов. Пакет BLE содержит всего 31 байта, в то время как, например, пакет протокола TCP может содержать более 60 байт. Важным правилом при работе с технологией BLE является то, что ее пакеты должны иметь строго определенную структуру и байты этих пакетов должны передаваться и приниматься последовательно.
Как работает датчик приближения на основе технологии BLE
Как уже говорилось ранее, датчики приближения могут обнаруживать близко расположенные объекты с помощью света, электромагнитного поля или звука.
BLE серверы регулярно передают в эфир сигналы приветствия (advertisement signals), поэтому клиенты могут обнаружить эти сигналы и, таким образом, подключиться к серверам. Эти сигналы приветствия содержат уникальный BLE MAC (Media Access Control) адрес, который очень похож на MAC адрес, используемый в технологии Wi-Fi. Поскольку модуль ESP32 имеет встроенную поддержку Bluetooth, с его помощью мы можем легко обнаружить эти транслируемые сигналы приветствия и сравнить их с таблицей соответствия чтобы обнаружить присутствие необходимого нам устройства.
Когда устройство обнаружено и проверено на соответствие адреса, мы можем, к примеру, включить светодиод, подключенный к модулю ESP32, или с помощью сервиса Adafruit IO отправить уведомление на смартфон с операционной системой android.
Объяснение программы для модуля ESP32
Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.
В целях демонстрации работы проекта мы запрограммируем модуль ESP32 на обнаружение известных BLE маяков (beacons) и когда мы будем обнаруживать такой маяк, мы будем зажигать встроенный в модуль ESP32 светодиод.
Первым делом в начале программе мы подключим используемые библиотеки и объявим необходимые переменные. Поскольку мы будем использовать класс BLEScan, то в программе мы должны подключить соответствующую библиотеку для работы с ним.
Bluetooth Low Energy sensors
Bluetooth Low Energy sensors measure and send the measurement values over Bluetooth Low Energy to smartphones or to Bluetooth Low Energy gateways. Sensors are optimised to be energy efficient to ensure up to 5 years of battery life and maintenance free operations. Sensors send the data to Efento Cloud or any other IoT platform. Devices work out of the box with free mobile applications and can be integrated to any software platform (mobile or cloud) with Efento’s SDK and API.
Wireless atmospheric pressure, temperature and humidity logger – Bluetooth Low Energy
Wireless carbon monoxide (CO) logger – Bluetooth Low Energy
Wireless differential pressure logger – Bluetooth Low Energy
Wireless high temperature logger – Bluetooth Low Energy
Wireless hydrogen sulfide (H2S) logger – Bluetooth Low Energy
Wireless indoor air quality, temperature and humidity logger – Bluetooth Low Energy
Wireless low temperature logger – Bluetooth Low Energy
Wireless nitrogen dioxide (NO2) logger – Bluetooth Low Energy
Wireless open / close logger – Bluetooth Low Energy
Wireless ozone (O3) logger – Bluetooth Low Energy
Wireless pulse counter – Bluetooth Low Energy
Wireless pulse counter – electricity – Bluetooth Low Energy
Wireless pulse counter – water – Bluetooth Low Energy
Wireless soil moisture and temperature logger – Bluetooth Low Energy
Wireless temperature and humidity logger – Bluetooth Low Energy
Wireless temperature and humidity logger with external probe – Bluetooth Low Energy
Wireless temperature logger – Bluetooth Low Energy
Wireless temperature logger with external probe – Bluetooth Low Energy
Wireless temperature monitoring set – Bluetooth Low Energy
Wireless vineyard monitoring set – Bluetooth Low Energy