Мазмұны:

TextPlayBulb: Raspberry Pi 3, BLE және Telegram көмегімен REST қосылған PlayBulb: 3 қадам
TextPlayBulb: Raspberry Pi 3, BLE және Telegram көмегімен REST қосылған PlayBulb: 3 қадам

Бейне: TextPlayBulb: Raspberry Pi 3, BLE және Telegram көмегімен REST қосылған PlayBulb: 3 қадам

Бейне: TextPlayBulb: Raspberry Pi 3, BLE және Telegram көмегімен REST қосылған PlayBulb: 3 қадам
Бейне: Трактористы (комедия, реж. Иван Пырьев, 1939 г.) 2024, Қараша
Anonim
TextPlayBulb: REST Raspberry Pi 3, BLE және Telegram көмегімен PlayBulb қосылған
TextPlayBulb: REST Raspberry Pi 3, BLE және Telegram көмегімен PlayBulb қосылған

Бұл нұсқаулықта Python, Raspberry Pi 3 және Bluetooth кітапханасының көмегімен PlayBulb Color bluetooth LED шамына қосылу және IoT сценарийі үшін басқару элементтерін REST API арқылы кеңейту әдісі көрсетілген. REST API сіздің PlayBulb -ті жылдам мәтіндік клиент арқылы басқаруға мүмкіндік береді, мысалы Telegram, мысалы, сіздің автоматтандырылған үйіңізбен мәтін арқылы сөйлесу.

Бұл жоба 3 модульге негізделген:

  1. pyBulbDriver: PlayBulb -ке BLE gatttool және python арқылы қосылыңыз.
  2. pyBulbServer: pyBulbDriver көмегімен REST API арқылы ойнау шамдарын басқару үшін.
  3. pyBulbMessenger: кез келген смартфонға орнатылған телеграммалық клиент арқылы пәрмендерді жіберу және алу үшін телеграмма ботына қосылу және REST API көмегімен PlayBulb командасын беру.

Сіз жобаны git репозиторийі арқылы клондай аласыз:

Жобаның мақсаты:

Лампамен әр түрлі тәсілдермен өзара әрекеттесудің негізгі құралын жасау үшін, мысалы, мәтіндік хабарлама жіберу, болашақ сценарийлерде сөйлеу командалары, шамды ымдау … болуы мүмкін.

Бұл нұсқаулықты жасау үшін пайдаланылатын басқа ресурстар:

  • PlayBulb түсті Bluetooth протоколы:
  • Python-ды Bluetooth арқылы Playbulb-ке қосу:
  • Telegram ботын орнату:

Үлес

pyBulbDriver икемді және болашақта кеңейту үшін параметрлерге бейімделіп, шамға мәтінмен скрипка жасауға мүмкіндік беретін сценарий құрады. Тексеруге және айналдыруға арналған қарапайым интерфейс.

Шектеу

Драйвер PlayBulb Color үшін жазылған, басқа PlayBulb түрлері үшін, мысалы. Түпнұсқа немесе шам, bluetooth кодын pyBulbDriver жоғарыда аталған хаттамаға сәйкес өзгертуі керек.

Сізге жеделхат тіркелгісін тіркеу және pyBulbMessenger.py файлына қосылатын api кілтін алу қажет, басқа ресурстарда телеграмма ботын реттеуді орындаңыз.

1 -қадам: Жобаны орнату

1. Telegram -дан API кілтін алу

> API кілтін алу үшін ағымдағы нұсқаулықты орындаңыз

> apB кілтін pyBulbMessenger.py ішіндегі айнымалы api -ге қосыңыз

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 шамы

> Android немесе iOS үшін Telegram орнату

5. Rasberry Pi 3 LE Bluetooth орнату:

www.elinux.org/RPi_Bluetooth_LE

2 -қадам: Кодексте жүру

pyBulbDriver.py

pyBulbDriver PlayBulb -ке BLE арқылы қосылуға арналған драйвер сыныптарын қамтиды

pyBulbDriver кез келген басқа жалпы жобалар үшін де қолданыла алады, себебі онда тек playBulb қосылымдарын сканерлеуге және орнатуға арналған код бар.

Қолданушы интерфейсінің негізгі API интерфейсі:

  • scanForBulb (құрылғы атауы: 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 (режим, керемет, біркелкі)
  • checksRGBInBounds (s, r, g, b)

pyBulbServer.py

pyBulbServer pyBulbDriver -ге деректерді жіберу және алу үшін PUT және JSON көмегімен User Application интерфейсін RESTful гиперсілтемелеріне шығарады. Сондай -ақ, BLE қосылымын сканерлеу және инициализациялау сервер іске қосылған кезде жасалады.

pyBulbResource (Ресурс) шамдар командасын анықтау үшін түс пен әсерді қолдана отырып, 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 ботын байланыстыруға жауапты. Телеграм ботқа қалай конфигурациялау және қосылу туралы толығырақ ақпарат алу үшін https://www.instructables.com/id/Set-up-Telegram-Bo… қараңыз.

cmdHandler (бот, жаңарту) - бұл жерде мәтіндік командалар анықталады және RESTful API арқылы PlayBulb -қа қосылады.

Қазіргі уақытта жобада тек мәтін бар, басқа мақсат - басқа командаларды іске қосу үшін сөйлеуді танушыға жіберілетін жазылған дауыстық хабарларды жіберу (әзірге орындалмаған).

3 -қадам: Қорытынды

Қазіргі архитектуралық дизайн масштабталудан гөрі жеңілдетуге қатысты болды. Топтық байланыс әлі де жоқ, сонымен қатар шамға мәтінді жіберуге немесе тікелей командаға немесе ойынға әсер етуге арналған қосымша қосымшалар әлі де зерттелуде.

Гит репоға жазылу немесе келесіге жазылу арқылы бұл жаңартулар туралы толығырақ ақпарат болады. Мұндай жобаның себебі - playBulb интерфейсін құру және IoT -те (Интернет сценарийі) дамудың қарапайымдылығы үшін RESTful интерфейсін құру, сонымен қатар IM Client телеграммасы арқылы суреттерді, дауысты және зерттеу тұрғысынан құрылғылармен өзара әрекеттесуге арналған мәтін.

Ұсынылған: