Съдържание:

TextPlayBulb: REST активиран PlayBulb с помощта на Raspberry Pi 3, BLE и Telegram: 3 стъпки
TextPlayBulb: REST активиран PlayBulb с помощта на Raspberry Pi 3, BLE и Telegram: 3 стъпки

Видео: TextPlayBulb: REST активиран PlayBulb с помощта на Raspberry Pi 3, BLE и Telegram: 3 стъпки

Видео: TextPlayBulb: REST активиран PlayBulb с помощта на Raspberry Pi 3, BLE и Telegram: 3 стъпки
Видео: django rest framework права доступа permissions JWT 2024, Юли
Anonim
TextPlayBulb: REST активиран PlayBulb с помощта на Raspberry Pi 3, BLE и Telegram
TextPlayBulb: REST активиран PlayBulb с помощта на Raspberry Pi 3, BLE и Telegram

Тази инструкция показва как да се свържете с Bluetooth LED лампа на PlayBulb Color с помощта на Python, библиотека Raspberry Pi 3 и Bluetooth и да разширите контролите чрез REST API за сценарий на IoT, а като стандарт, проектът също показва как да разширите REST API за управление на вашия PlayBulb през IM текстов клиент, напр Telegram, като например разговор с вашия автоматизиран дом чрез текст.

Този проект е изграден върху 3 модула:

  1. pyBulbDriver: Свържете се с PlayBulb чрез BLE gatttool и python.
  2. pyBulbServer: Използване на pyBulbDriver за излагане на контрола на playbulb чрез REST API.
  3. pyBulbMessenger: Свързване към телеграм бот за изпращане и получаване на команди чрез клиент за телеграма, инсталиран на всеки смартфон, и използване на REST API за издаване на команди към PlayBulb.

Можете да клонирате проекта чрез git хранилище:

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

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

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

  • Цветен Bluetooth протокол на PlayBulb:
  • Свързване на Python с Playbulb чрез Bluetooth:
  • Настройка на телеграмния бот:

Принос

pyBulbDriver е разширен, за да бъде по -гъвкав и параметризиран за по -лесно бъдещо разширение, създавайки сценарий, който ви позволява да се занимавате с текстови съобщения на вашата лампа. Прост интерфейс за тестване и бъркане наоколо.

Ограничение

Драйверът е написан за PlayBulb Color, за други видове PlayBulb напр. Оригинален или свещ, кодът за bluetooth в pyBulbDriver трябва да се промени в съответствие с гореспоменатия протокол.

Трябва да регистрирате акаунт за телеграма и да получите api ключ, който добавяте в pyBulbMessenger.py, следвайте настройката на бота за телеграма в други ресурси.

Стъпка 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 (име на устройство: Низ)> За сканиране за 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, но включва вида на ефекта и скоростта. За да научите повече, проверете раздела за ефекти на цветовия протокол

В този клас ще намерите и други помощни методи, предназначени за проверка на целостта на данните, а не за потребителски интерфейс

  • конвертира RGBToHexaCmd (s, r, g, b)
  • convertIntToHex (номер)
  • checkModeAndSpeed (режим, нестандартно, onbeat)
  • проверява RGBInBounds (s, r, g, b)

pyBulbServer.py

pyBulbServer излага интерфейса на потребителското приложение в RESTful хипервръзки, използвайки PUT и JSON за изпращане и получаване на данни към pyBulbDriver. Също така сканирането и инициализирането на BLE връзката се извършва, когато сървърът е активиран.

pyBulbResource (Resource) канализира повикванията към REST сървъра, използвайки цвят и ефект, за да определи командата bulb.

Пример За командване на ефект:

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 бота, свързан към вашия клиент за смарт телефон на телеграма. За повече подробности относно начина на конфигуриране и свързване с бот на телеграма проверете

cmdHandler (бот, актуализация) е мястото, където текстовите команди са дефинирани и свързани към PlayBulb чрез API RESTful.

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

Стъпка 3: Заключение

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

Като се абонирате за git repo или следвате, ще получите повече подробности за тези актуализации. Причината за такъв проект беше да се свърже playBulb и да се създаде RESTful интерфейс за по -лесно развитие в IoT (сценарий на интернет на нещата), но и да се отвори възможността да се използват различни модалности чрез телеграмата на IM Client, като снимки, глас и текст за взаимодействие с уреди от изследователска гледна точка.

Препоръчано: