Управление bluetooth устройствами через wifi

Простой способ вывести Bluetooth-устройства в Интернет

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

Однако этот протокол все чаще встречается и в стационарных устройствах, таких как лампы, различные датчики, управляющие устройства и даже замки. Некоторые производители, в частности Archos, используют его для реализации системы домашней автоматизации. Появляется его поддержка в таких профессиональных контроллерах как Evika LogicMachine Wall. Однако в подобных сценариях востребован и удаленный мониторинг и управление, что с использованием только Bluetooth сделать невозможно, поскольку этот протокол исключительно локальный и не может маршрутизироваться через сеть Интернет. Этот вопрос можно решить, в частности, использованием смартфона или планшета на месте установки беспроводных устройств, но такой вариант явно сложно нельзя считать удобным.

Организация Bluetooth SIG, которая занимается вопросами развития, сертификации и продвижения протоколов Bluetooth, не желая упустить рост сегмента IoT и систем автоматизации, в начале февраля предложила инструментарий для создания шлюзов для подключения Bluetooth-устройств к Интернет и облачным сервисам. Он ориентирован на разработчиков и OEM, и способен, по мнению создателей обеспечить доступом к Интернет для «миллиардов устройств». В комплект входят коды серверов и документация, позволяющая быстро реализовать базовый вариант устройства.

Предложенный пример использует известную среду Node.js и не требователен к вычислительным ресурсам. В документации рассматривается создание шлюза и Frontend Web-сервера на базе платформы Raspberry Pi. Для запуска вам потребуется Bluetooth адаптер для него. Правда модель с поддержкой BLE может быть найти непросто. В этом случае можно предложить использовать другие платформы, например Intel Edison, где этот интерфейс встроен.

Шлюз сканирует присутствующие в эфире устройства Bluetooth, кэширует информацию о них, включая характеристики и доступные сервисы. При поступлении внешнего запроса, он выдает ответ или на базе ранее собранных данных или запрашивает текущие значения с устройства. Интерфейс шлюза работает с GAP и GATT RESTful API, краткие описания которых можно найти на сайте Bluetooth SIG, а для обмена информацией применяется JSON. В частности здесь реализованы такие возможности, как запрос списка устройств, запрос сервисов устройства, запрос характеристик сервиса, чтение и запись данных.

Читайте также:  Подключить блютуз клавиатуру через другой адаптер

Frontend реализуется Web-приложением NaviBLE, которое позволяет пользователю работать с Bluetooth-устройствами, подключенными к шлюзу. В примерах доступны интерфейсы к указанным выше возможностям шлюза. Кроме того, разработчик может создать собственные страницы, в том числе с CSS и встроенными функциям обработки данных на JavaScript, для более удобной работы с конкретными устройствами. Например, для лампы можно предусмотреть кнопки включения и выключения, а также выбора цвета.

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

Отметим, что на сайте Bluetooth SIG можно также найти документацию и примеры работы с Bluetooth-устройствами (например, метками) для интеграции поддержки этого протокола на различные платформы, включая исходные коды приложений для Android, iOS и Windows.

Источник

Bluetooth шлюзы Xiaomi

В системе умного дома Xiaomi используются 3 протокола беспроводной связи Wi-Fi, ZigBee и Bluetooth. И если с принципом работы первого знакомы все, второй разобран в отдельной статье, то по блютус протоколу могут возникнуть вопросы. Например, из-за его небольшого радиуса действия устройства с Bluetooth видятся только в непосредственной близости со смартфоном.

Чтобы решить эту проблему, в 2017 году было введено понятие Bluetooth-шлюз.

Принцип работы аналогичен ZigBee шлюзам, датчик с модулем Bluetooth подключается к одному из устройств, которое имеет одновременно 2 беспроводных интерфейса, по блютусу держит связь с датчиком, а по Wi-Fi обменивается данными с облаком. Схематично это выглядит так:

Схема работы Bluetooth в умном доме Xiaomi

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

Устройства с протоколом Bluetooth можно разделить на 2 категории: подключаемые устройства и Bluetooth шлюзы. Посмотреть полный список устройств, которые могут выполнять роль шлюза, можно в приложении Mi Home, во вкладке «Profile» > «BLE Gateway».

Bluetooth шлюзы в приложении Mi Home

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

Инструкция Bluetooth gateway Xiaomi

А вот если подходящих устройств нету, то приложение предложит их купить:

Узнать, какие устройства могут выполнять функцию шлюза

На данный момент (январь 2020 года), 10 устройств поддерживают функцию шлюза:

1. Камера видеонаблюдения Mijia Smart Home Camera

Одно из первых устройство с функцией Bluetooth шлюза. Вполне неплохая камера с FullHD разрешением и углом обзора в 130 градусов. Сейчас уже снята с продажи и найти её затруднительно , но если вдруг вам попадется, её код продукта S XJ01ZM .

Читайте также:  Настройки bluetooth win 10

Источник

Bluetooth шлюз для умного дома, за копейки и за 5 минут работы, на ESP32

Всем привет. Если помните в обзоре на часы Mijia я упоминал, что для подключения часов к Home Assistant можно воспользоваться проектом под названием bt-mqtt-broker. Практика показала, что данный сервис весьма и весьма нестабильный. Периодически Bluetooth на сервере намертво зависал, и приходилось дёргать службу. В общем после очередного зависания, решил поискать, что можно еще сделать, и нашел решение за 300 рублей, которое предельно просто реализовать, без паяльника и прочих прелестей.

Решение это — плата разработчика на ESP32 , а также проект под названием ESPHome .

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

Bluetooth шлюз для умного дома, за копейки и за 5 минут работы, на ESP32 - плата призжает в антистатическом пакете

Bluetooth шлюз для умного дома, за копейки и за 5 минут работы, на ESP32 - ножки защищены мягким материалом

На плате указан производитель – Az-Delivery.

Bluetooth шлюз для умного дома, за копейки и за 5 минут работы, на ESP32 - производитель AzDelivery

Внешне и по размерам она очень сильно напоминает Arduino Nano. Гребенки контактов, для экспериментов с макетными платами – сразу распаяны. Микроконтроллер тут установлен — от Espressif – ESP32-WROOM-32D.

Bluetooth шлюз для умного дома, за копейки и за 5 минут работы, на ESP32 - микроконтроллер тут - espressif ESP32-WROOM-32D

Питание и подключение к компьютеру осуществляется при помощи MircoUSB порта. Обратите внимание, что при заказе данной платы возможно 2 варианта – со встроенной антенной и без неё, но с возможностью подключения внешней. Плата работает одновременно и с WiFi и c Bluetooth.

Bluetooth шлюз для умного дома, за копейки и за 5 минут работы, на ESP32 - подключение осуществляется посредством MicroUSB

Перейдем, собственно, к созданию шлюза из этой платы.

Потребуется компьютер с Linux, в моём случае – Ubuntu 20.04.

Как всегда сперва лучше обновиться:

sudo apt update sudo apt upgrade

Если вдруг у вас не стоит Python или pip3 – установите их:

sudo apt install python3 python3-pip

Дальше ставим esphome при помощи pip:

sudo pip3 install esphome

А также пакеты для работы веб интерфейса (но можно и без него обойтись, используя только команды, подробности описаны на сайте esptool), скорее всего они установятся во время установки esphome, но на всякий случай

sudo pip3 install tornado esptool
sudo esphome config/ dashboard

config/ — это папка, относительно вашего текущего местоположения в терминале, куда будут складываться ваши конфиги.

Далее переходим по адресу – 127.0.0.1:6052 (или по адресу вашего компьютера, если заходите не с него), и создаем тут новый проект.

Bluetooth шлюз для умного дома, за копейки и за 5 минут работы, на ESP32 - веб интерфейс ESPHome

Задаём имя будущего шлюза

Bluetooth шлюз для умного дома, за копейки и за 5 минут работы, на ESP32 - задаем имя шлюза

Выбираем из списка нашу плату, если такой нет в списке, то можно попробовать выбрать что-то с похожим названием, или generic. В моём случае при выборе Generic esp32 всё прекрасно заработало.

Bluetooth шлюз для умного дома, за копейки и за 5 минут работы, на ESP32 - указываем тип платы

На следующем шаге вводим имя WiFi сети и пароль от нее, а также пароль для обновлений по воздуху и для доступа к шлюзу со стороны Home Assistant.

Читайте также:  Мышь работа от блютуза

Bluetooth шлюз для умного дома, за копейки и за 5 минут работы, на ESP32 - вбиваем параметры WiFi

Жмем submit, и возвращаемся на главный экран.

Bluetooth шлюз для умного дома, за копейки и за 5 минут работы, на ESP32 - жмем submit

Тут будет видно, что появился новый конфиг для нашей платы. Нужно его отредактировать, чтобы он научился обрабатывать данные с ваших устройств. Ниже пример куска конфига для подключения часов Xiaomi:

esp32_ble_tracker:

scan_parameters:

active: false

sensor:

— platform: xiaomi_lywsd02

mac_address: e7:2e:00:f1:4c:95

temperature:

name: «Xiaomi Clock Temperature»

humidity:

name: «Xiaomi Clock Humidity»

Обратите внимание на параметр active:false – есть подозрение, что если его не указывать, то он по умолчанию в состоянии true, и как следствие может негативно влиять на разряд батареи в устройствах, но в то же время, когда режим работы пассивный – некоторые функции могут работать не корректно. Также, к сожалению для моих часов не передаются данные о заряде батареек. Остальное, как мне кажется, в комментариях не нуждается.

Bluetooth шлюз для умного дома, за копейки и за 5 минут работы, на ESP32 - пример конфига

Вообще на сайте ESPHome можно найти великое множество примеров для разных устройств. Так что можете там поискать для вашего.

Сохраняем конфиг, закрываем и жмем validate. Если проверка пройдена, то остается только залить прошивку в микроконтроллер.

Bluetooth шлюз для умного дома, за копейки и за 5 минут работы, на ESP32 - проверка пройдена

Подключаем плату к USB и переводим её в режим прошивки, для этого жмем на ней на кнопку boot и не отпуская эту клавишу однократно нажимаем на cn, или en, в общем вторую кнопку =). В правом верхнем углу появится новый порт, выбираем его и жмем upload. Дожидаемся загрузки и когда пойдут логи связанные с обнаружением Bluetooth устройств можно жать на Stop всё отключать и уносить самодельный шлюз в нужное место.

Bluetooth шлюз для умного дома, за копейки и за 5 минут работы, на ESP32 - прошивка загружена

В будущем, прошитые девайсы можно обновлять по воздуху (OTA), с данной платой я пробовал – всё замечательно работает. Но на форумах часто встречал жалобы, что с той или иной платой других производителей – данная функция нормально не работает.

Остается только добавить интеграцию ESPHome в Home Assistant, дальше всё подтянется автоматически. В смысле подтянется ваш ESP32 как устройство, с объектами которые были прописаны в конфиге (в моем случае температурой и влажностью). Занимательно, что имена объектов точно такие же, как были заданы в конфиге.

Bluetooth шлюз для умного дома, за копейки и за 5 минут работы, на ESP32 - интеграция esphome в Home Assistant

Bluetooth шлюз для умного дома, за копейки и за 5 минут работы, на ESP32 - появились объекты

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

Источник

Оцените статью
Adblock
detector