Простой способ вывести 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.

ссылка на оригинал статьи https://geektimes.ru/post/271132/


Комментарии

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

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