Оглавление:
Видео: TextPlayBulb: PlayBulb с поддержкой REST с использованием Raspberry Pi 3, BLE и Telegram: 3 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:49
В этом руководстве показано, как подключиться к светодиодной лампе Bluetooth PlayBulb Color с использованием Python, библиотеки Raspberry Pi 3 и Bluetooth, а также расширить элементы управления через REST API для сценария IoT, а также в проекте показано, как расширить возможности REST API для управления вашим PlayBulb через текстовый клиент для обмена мгновенными сообщениями, например Telegram, например, общение с вашим автоматизированным домом с помощью текстовых сообщений.
Этот проект построен на 3 модулях:
- pyBulbDriver: подключитесь к PlayBulb через BLE gatttool и python.
- pyBulbServer: использование pyBulbDriver для предоставления элемента управления playbulb через REST API.
- 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-клиента, такие как изображения, голос и т. Д. текст для взаимодействия с техникой с точки зрения исследования.
Рекомендуемые:
Шаговый сервопривод с ЧПУ (с поддержкой GRBL): 4 шага
Серво шаговый двигатель с ЧПУ (с поддержкой GRBL): этот проект представляет собой довольно простой контроллер двигателя, который позволяет использовать дешевые мощные двигатели постоянного тока с GRBL для управления ходовыми винтами станка с ЧПУ. Посмотрите видео выше, чтобы продемонстрировать этот контроллер на моем самодельном станке с ЧПУ
Пульт дистанционного управления с поддержкой Alexa (с использованием WEMO D1 Mini): 3 шага
Дистанционное управление с поддержкой Alexa (с использованием WEMO D1 Mini): это обновленная версия предыдущего сообщения: https: //www.instructables.com/id/Voice-Activated-R… В предыдущей версии я использовал Geetech голосовой модуль для управления обычным дистанционным управлением для открывания ворот гаража. В этом руководстве я заменил голос
Кнопка лифта с поддержкой Alexa: 4 шага
Кнопка лифта с поддержкой Alexa: метод в этом руководстве можно использовать для любой кнопки, но в этом случае у нас есть лифт, который мы хотим вызвать с помощью Amazon Alexa. У меня есть предыдущие инструкции, в которых я использовал соленоид, управляемый Alexa, чтобы сделать то же самое, но
Распознавание лиц ESP32 CAM с поддержкой MQTT - Мыслитель ИИ: 4 шага
Распознавание лиц ESP32 CAM с поддержкой MQTT | AI-Thinker: Здравствуйте! Я хотел поделиться своим кодом для проекта, где мне нужно было иметь ESP CAM с распознаванием лиц, который мог бы отправлять данные в MQTT. Так хорошо … после, может быть, 7 часов просмотра нескольких примеров кода и поиска того, что к чему, у меня все готово
Автомобильные датчики OLED ESP32 с поддержкой Wi-Fi: 3 шага (с изображениями)
Автомобильные датчики OLED ESP32 с поддержкой Wi-Fi: Сначала ознакомьтесь с информацией… Я строю автомобильные датчики как своего рода хобби, которое снова и снова включается и выключается. См. Https: //www.instructables.com/id/Remote-Car-Monit … и https: //www.instructables.com/id/Remote-Car-Monit … для двух более свежих примеров. Особенно мне нравится