Satura rādītājs:

TextPlayBulb: REST iespējota atskaņošana Bulb, izmantojot Raspberry Pi 3, BLE un telegrammu: 3 soļi
TextPlayBulb: REST iespējota atskaņošana Bulb, izmantojot Raspberry Pi 3, BLE un telegrammu: 3 soļi

Video: TextPlayBulb: REST iespējota atskaņošana Bulb, izmantojot Raspberry Pi 3, BLE un telegrammu: 3 soļi

Video: TextPlayBulb: REST iespējota atskaņošana Bulb, izmantojot Raspberry Pi 3, BLE un telegrammu: 3 soļi
Video: КАК НАСТРОИТЬ L4D2 2024, Jūlijs
Anonim
TextPlayBulb: REST iespējota PlayBulb, izmantojot Raspberry Pi 3, BLE un telegrammu
TextPlayBulb: REST iespējota PlayBulb, izmantojot Raspberry Pi 3, BLE un telegrammu

Šajā pamācībā ir parādīts, kā izveidot savienojumu ar PlayBulb Color Bluetooth LED lampu, izmantojot Python, Raspberry Pi 3 un Bluetooth bibliotēku, kā arī paplašināt vadīklas, izmantojot REST API IoT scenārijam, kā arī projekts parāda, kā pagarināt REST API, lai kontrolētu PlayBulb pār IM teksta klientu, piem Telegramma, piemēram, saruna ar savu automatizēto māju, izmantojot tekstu.

Šis projekts ir balstīts uz 3 moduļiem:

  1. pyBulbDriver: izveidojiet savienojumu ar PlayBulb, izmantojot BLE gatttool un python.
  2. pyBulbServer: izmantojot pyBulbDriver, lai atklātu atskaņotāja vadību, izmantojot REST API.
  3. pyBulbMessenger: savienojums ar telegrammu robotu, lai nosūtītu un saņemtu komandas, izmantojot jebkurā viedtālrunī instalētu telegrammu klientu, un izmantojot REST API, lai izdotu komandas PlayBulb.

Jūs varat klonēt projektu, izmantojot git repozitoriju:

Projekta mērķis:

Lai izveidotu pamata rīku mijiedarbībai ar spuldzi, izmantojot dažādas metodes, piemēram, īsziņu sūtīšanu, nākotnes scenāriji varētu ietvert runas komandas, žestu rādīšanu lampai utt.

Citi resursi, kas izmantoti, lai izveidotu šo pamācību:

  • PlayBulb krāsu Bluetooth protokols:
  • Python savienošana ar Playbulb, izmantojot Bluetooth:
  • Telegrammu robota iestatīšana:

Ieguldījums

pyBulbDriver ir paplašināts, lai būtu elastīgāks un parametrizēts, lai nākotnē to būtu vieglāk pagarināt, veidojot scenāriju, lai jūs varētu vijolīt ar īsziņu sūtīšanu. Vienkāršs interfeiss testēšanai un izklaidēšanai.

Ierobežojums

Draiveris ir rakstīts PlayBulb Color, citiem PlayBulb veidiem, piem. Oriģināls vai svece, Bluetooth kods pyBulbDriver ir jāmaina saskaņā ar iepriekš minēto protokolu.

Jums jāreģistrē telegrammas konts un jāsaņem api atslēga, kuru pievienojat pyBulbMessenger.py, sekojiet telegrammas robota iestatīšanai citos resursos.

1. darbība: projekta iestatīšana

1. API atslēgas iegūšana no Telegram

> Izpildiet pašreizējos norādījumus, lai iegūtu savu API atslēgu

> Pievienojiet api atslēgu mainīgajam api vietnē pyBulbMessenger.py

2. PlayBulb nosaukuma iestatīšana pyBulbDriver

> Lai gatttool atrastu rakstīšanas ierīci, iestatiet skenējamo ierīces nosaukumu, izmantojot pyBulbDriver.scanForBulb ("PLAYBULB COLOR"). Piemēru var atrast vietnē pyBulbServer.py, lai iestatītu savu REST serveri

3. Lai sāktu projektu

> Lai sāktu īsziņu sūtīšanu, vispirms ir jāuzsāk pyBulbServer.py, pēc tam - pyBulbMessenger.py. Jūs varat pārbaudīt pyBulbServer komandas, izmantojot CURL.

4. Nepieciešamais materiāls:

> Raspberry Pi 3 un PlayBulb Color vai PlayBulb svece

> Telegrammas instalēšana operētājsistēmai Android vai iOS

5. Rasberry Pi 3 LE Bluetooth instalēšana:

www.elinux.org/RPi_Bluetooth_LE

2. darbība: iepazīstieties ar kodu

pyBulbDriver.py

pyBulbDriver satur draiveru klases savienošanai ar PlayBulb, izmantojot BLE

pyBulbDriver var izmantot arī visiem citiem vispārējiem projektiem, jo tajā ir tikai kods, lai skenētu un iestatītu playBulb savienojumus.

Galvenās lietotāja lietojumprogrammu saskarnes API:

  • scanForBulb (ierīces nosaukums: virkne)> Lai meklētu PlayBulb vai PlayBulbs, izmantojot ierīces nosaukumu
  • setBulbColor (s: int, r: int, g: int, b: int)> Lai definētu spilgtuma un RGB krāsu (no 0 līdz 255) vērtības
  • setBulbEffect (s: int, r: int, g: int, b: int, mode: int, onbeat: int, offbeat: int)> Līdzīgi kā setBulbColor, bet ietver efekta veidu un ātrumu. Lai uzzinātu vairāk, pārbaudiet krāsu protokola efektu sadaļu

Šajā klasē jūs atradīsit arī citas palīgmetodes, kas paredzētas datu integritātes pārbaudei, nevis lietotāja saskarnei

  • convertRGBToHexaCmd (s, r, g, b)
  • convertIntToHex (skaitlis)
  • checkModeAndSpeed (režīms, nepareizs, ieslēgts)
  • pārbaudes RGBInBounds (s, r, g, b)

pyBulbServer.py

pyBulbServer pakļauj lietotnes saskarni RESTful hipersaitēm, izmantojot PUT un JSON, lai nosūtītu un saņemtu datus uz pyBulbDriver. Arī BLE savienojuma skenēšana un inicializēšana tiek veikta, kad serveris ir aktivizēts.

pyBulbResource (Resource) novirza zvanus uz REST serveri, izmantojot krāsu un efektu, lai definētu bulb komandu.

Piemērs, lai komandētu efektu:

127.0.0.1/bulb/effect

JSON POST> {dati ':' {"s": 0, "r": 255, "g": 255, "b": 255, "m": 1, "ieslēgts": 15, "izslēgts": 15 } '}

pyBulbMessenger.py

Visbeidzot, pyBulbMessenger ir atbildīgs par Telegram robota sasaisti ar jūsu telegrammu viedtālruņa klientu. Lai iegūtu sīkāku informāciju par to, kā konfigurēt un izveidot savienojumu ar telegrammu robotu, skatiet vietni

cmdHandler (robots, atjauninājums) ir vieta, kur tiek definētas teksta komandas un savienotas ar PlayBulb, izmantojot RESTful API.

Pašlaik projektā ir tikai teksts, vēl viens mērķis ir arī nosūtīt ierakstītas balss ziņas, kas tiktu nosūtītas uz runas atpazīšanas ierīci, lai aktivizētu citas komandas (vēl nav ieviestas).

3. solis: secinājums

Pašreizējais arhitektūras dizains vairāk bija saistīts ar vienkāršošanu, nevis mērogojamību. Joprojām trūkst grupas savienojumu, kā arī tiek pētītas citas lietojumprogrammas, kas attiecas uz īsziņu sūtīšanu īstām komandām vai rotaļīgai mijiedarbībai.

Abonējot git repo vai sekojot, par šiem atjauninājumiem tiks sniegta sīkāka informācija. Šāda projekta iemesls bija PlayBulb saskarne un RESTful saskarnes izveide, lai atvieglotu attīstību IoT (lietu interneta scenārijs), bet arī, lai atvērtu iespēju izmantot dažādas modalitātes, izmantojot IM klienta telegrammu, piemēram, attēlus, balsi un tekstu, lai mijiedarbotos ar ierīcēm no pētniecības viedokļa.

Ieteicams: