Оглавление:

TextPlayBulb: PlayBulb с поддержкой REST с использованием Raspberry Pi 3, BLE и Telegram: 3 шага
TextPlayBulb: PlayBulb с поддержкой REST с использованием Raspberry Pi 3, BLE и Telegram: 3 шага

Видео: TextPlayBulb: PlayBulb с поддержкой REST с использованием Raspberry Pi 3, BLE и Telegram: 3 шага

Видео: TextPlayBulb: PlayBulb с поддержкой REST с использованием Raspberry Pi 3, BLE и Telegram: 3 шага
Видео: Пакет Lay Z Spa Pack и как его сдуть. 2024, Ноябрь
Anonim
TextPlayBulb: PlayBulb с поддержкой REST с использованием Raspberry Pi 3, BLE и Telegram
TextPlayBulb: PlayBulb с поддержкой REST с использованием Raspberry Pi 3, BLE и Telegram

В этом руководстве показано, как подключиться к светодиодной лампе Bluetooth PlayBulb Color с использованием Python, библиотеки Raspberry Pi 3 и Bluetooth, а также расширить элементы управления через REST API для сценария IoT, а также в проекте показано, как расширить возможности REST API для управления вашим PlayBulb через текстовый клиент для обмена мгновенными сообщениями, например Telegram, например, общение с вашим автоматизированным домом с помощью текстовых сообщений.

Этот проект построен на 3 модулях:

  1. pyBulbDriver: подключитесь к PlayBulb через BLE gatttool и python.
  2. pyBulbServer: использование pyBulbDriver для предоставления элемента управления playbulb через REST API.
  3. pyBulbMessenger: подключение к телеграммному боту для отправки и получения команд через Telegram-клиент, установленный на любом смартфоне, и использование REST API для выдачи команд PlayBulb.

Вы можете клонировать проект через репозиторий git:

Цель проекта:

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

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

  • Протокол Bluetooth PlayBulb Color:
  • Подключение Python к Playbulb через Bluetooth:
  • Настройка телеграмм-бота:

Вклад

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

Ограничение

Драйвер написан для PlayBulb Color, для других типов PlayBulb, например. Исходный код или свечу, код bluetooth в pyBulbDriver необходимо изменить в соответствии с вышеупомянутым протоколом.

Вам необходимо зарегистрировать учетную запись Telegram и получить ключ API, который вы добавляете в pyBulbMessenger.py, следуя настройке бота Telegram в других ресурсах.

Шаг 1: Настройка проекта

1. Получение ключа API из Telegram

> Следуйте текущим инструкциям, чтобы получить свой ключ API

> Добавьте свой ключ api в переменную api в pyBulbMessenger.py

2. Установка имени PlayBulb в pyBulbDriver

> Чтобы gatttool нашел записывающее устройство, установите имя устройства для сканирования с помощью pyBulbDriver.scanForBulb ("PLAYBULB COLOR"). Пример можно найти в pyBulbServer.py для настройки вашего REST-сервера.

3. Начать проект

> Вам нужно сначала запустить pyBulbServer.py, а затем pyBulbMessenger.py для отправки текстовых сообщений. Вы можете протестировать команды pyBulbServer с помощью CURL.

4. Необходимый материал:

> Raspberry Pi 3 и PlayBulb Color или PlayBulb Candle

> Установка Telegram для Android или iOS

5. Установка Rasberry Pi 3 LE Bluetooth:

www.elinux.org/RPi_Bluetooth_LE

Шаг 2: прохождение кода

pyBulbDriver.py

pyBulbDriver содержит классы драйверов для подключения к PlayBulb через BLE

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

Основные API интерфейса пользовательского приложения:

  • scanForBulb (devicename: String)> Чтобы сканировать PlayBulb или PlayBulbs по имени их устройства
  • setBulbColor (s: int, r: int, g: int, b: int)> Для определения значений яркости и цвета RGB (от 0 до 255)
  • setBulbEffect (s: int, r: int, g: int, b: int, mode: int, onbeat: int, offbeat: int)> Аналогично setBulbColor, но включает тип эффекта и скорость. Чтобы узнать больше, ознакомьтесь с разделом эффектов цветового протокола

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

  • convertRGBToHexaCmd (s, r, g, b)
  • convertIntToHex (число)
  • checkModeAndSpeed (режим, нестандартный, активный)
  • checkRGBInBounds (s, r, g, b)

pyBulbServer.py

pyBulbServer предоставляет интерфейс пользовательского приложения в гиперссылки RESTful, используя PUT и JSON для отправки и получения данных в pyBulbDriver. Также сканирование и инициализация BLE-соединения выполняется при активации сервера.

pyBulbResource (Resource) направляет вызовы на сервер REST, используя цвет и эффект для определения команды лампы.

Пример Для управления эффектом:

127.0.0.1/bulb/effect

JSON POST> {data ':' {"s": 0, "r": 255, "g": 255, "b": 255, "m": 1, "on": 15, "off": 15 } '}

pyBulbMessenger.py

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

cmdHandler (bot, update) - это место, где определяются текстовые команды и подключаются к PlayBulb через RESTful API.

В настоящее время в проекте есть только текст, другая цель - также отправлять записанные голосовые сообщения, которые будут отправлены в распознаватель речи для активации других команд (еще не реализовано).

Шаг 3: Заключение

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

Подписавшись на репозиторий git или подписавшись на него, вы получите более подробную информацию об этих обновлениях. Причиной такого проекта было создание интерфейса playBulb и создание интерфейса RESTful для упрощения разработки в IoT (сценарий Интернета вещей), а также открытие возможности использовать различные методы через телеграмму IM-клиента, такие как изображения, голос и т. Д. текст для взаимодействия с техникой с точки зрения исследования.

Рекомендуемые: