Kazalo:

TextPlayBulb: REST omogočeno PlayBulb z uporabo Raspberry Pi 3, BLE in Telegram: 3 koraki
TextPlayBulb: REST omogočeno PlayBulb z uporabo Raspberry Pi 3, BLE in Telegram: 3 koraki

Video: TextPlayBulb: REST omogočeno PlayBulb z uporabo Raspberry Pi 3, BLE in Telegram: 3 koraki

Video: TextPlayBulb: REST omogočeno PlayBulb z uporabo Raspberry Pi 3, BLE in Telegram: 3 koraki
Video: Как работает Spring Boot и что такое auto-configuration. Магия? 2024, Julij
Anonim
TextPlayBulb: REST omogočen PlayBulb z uporabo Raspberry Pi 3, BLE in Telegrama
TextPlayBulb: REST omogočen PlayBulb z uporabo Raspberry Pi 3, BLE in Telegrama

To navodilo prikazuje, kako se povežete z LED -svetilko Bluetooth PlayBulb Color z uporabo Pythona, knjižnice Raspberry Pi 3 in Bluetooth ter razširite kontrole prek API -ja REST za scenarij IoT, projekt pa pokaže tudi, kako razširiti REST API za nadzor vašega predvajalnika PlayBulb prek odjemalca besedilnih sporočil, npr Telegram, na primer pogovor z avtomatiziranim domom prek besedila.

Ta projekt je sestavljen iz treh modulov:

  1. pyBulbDriver: Povežite se z PlayBulb prek BLE gatttool in python.
  2. pyBulbServer: Uporaba pyBulbDriverja za razkritje nadzora predvajalnika s pomočjo API -ja REST.
  3. pyBulbMessenger: Vzpostavitev povezave s telegramskim botom za pošiljanje in sprejemanje ukazov prek odjemalca telegrama, nameščenega na katerem koli pametnem telefonu, in uporaba API -ja REST za izdajanje ukazov za PlayBulb.

Projekt lahko klonirate prek repozitorija git:

Cilj projekta:

Če želite ustvariti osnovno orodje za interakcijo z žarnico prek različnih načinov, na primer za zdaj pošiljanja sporočil, bi lahko prihodnji scenariji vključevali govorne ukaze, kretnje k svetilki itd.

Drugi viri, uporabljeni za ustvarjanje tega navodila:

  • PlayBulb barvni protokol Bluetooth:
  • Povezovanje Pythona z Playbulbom prek Bluetootha:
  • Nastavitev telegram bota:

Prispevek

pyBulbDriver je razširjen, da je bolj prilagodljiv in parametriziran za lažjo prihodnjo razširitev, pri čemer se ustvari scenarij, ki vam omogoča, da se poigravate pri pošiljanju sporočil svetilki. Enostaven vmesnik za testiranje in igranje.

Omejitev

Gonilnik je napisan za PlayBulb Color, za druge vrste PlayBulb npr. Original ali svečo, kodo bluetooth v pyBulbDriver je treba spremeniti v skladu s prej omenjenim protokolom.

Registrirati morate račun za telegram in dobiti ključ api, ki ga dodate v pyBulbMessenger.py, sledite nastavitvi telegramskega bota v drugih virih.

1. korak: Nastavitev projekta

1. Pridobivanje ključa API iz Telegrama

> Sledite trenutnim navodilom, da dobite ključ API

> Dodajte ključ api spremenljivki api v pyBulbMessenger.py

2. Nastavitev imena PlayBulb v pyBulbDriver

> Če želite, da gatttool poišče pisalno napravo, nastavite, da se optično prebere ime vaše naprave z uporabo pyBulbDriver.scanForBulb ("BARVA PLAYBULB"). Primer lahko najdete v pyBulbServer.py za nastavitev strežnika REST

3. Za začetek projekta

> Najprej morate zagnati pyBulbServer.py, nato pa pyBulbMessenger.py za pošiljanje sporočil. Ukaze pyBulbServer lahko preizkusite z uporabo CURL.

4. Potreben material:

> Raspberry Pi 3 in PlayBulb Color ali PlayBulb Candle

> Namestitev Telegrama za Android ali iOS

5. Namestitev Rasberry Pi 3 LE Bluetooth:

www.elinux.org/RPi_Bluetooth_LE

2. korak: Sprehodite se po kodi

pyBulbDriver.py

pyBulbDriver vsebuje razrede gonilnikov za povezavo z PlayBulb prek BLE

pyBulbDriver se lahko uporablja tudi za vse druge generične projekte, saj vsebuje samo kodo za skeniranje in nastavitev povezav playBulb.

Glavni API -ji za uporabniški vmesnik:

  • scanForBulb (ime naprave: String)> Za iskanje PlayBulb ali PlayBulbs prek imena njihove naprave
  • setBulbColor (s: int, r: int, g: int, b: int)> Za določitev vrednosti svetlosti in barve RGB (od 0 do 255)
  • setBulbEffect (s: int, r: int, g: int, b: int, način: int, onbeat: int, offbeat: int)> Podobno kot setBulbColor, vendar vključuje vrsto učinka in hitrost. Če želite izvedeti več, preverite razdelek Učinki barvnega protokola

V tem razredu boste našli tudi druge pomožne metode za preverjanje integritete podatkov in ne za uporabniški vmesnik

  • pretvori RGBToHexaCmd (s, r, g, b)
  • convertIntToHex (število)
  • checkModeAndSpeed (način, neobičajno, onbeat)
  • preverja RGBInBounds (s, r, g, b)

pyBulbServer.py

pyBulbServer razkrije vmesnik uporabniške aplikacije v hiperpovezave RESTful z uporabo PUT in JSON za pošiljanje in sprejemanje podatkov na pyBulbDriver. Tudi skeniranje in inicializacija povezave BLE se izvede, ko je strežnik aktiviran.

pyBulbResource (Resource) kanalizira klice na strežnik REST z uporabo barve in učinka za definiranje ukaza bulb.

Primer za ukaz učinka:

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

Nazadnje je pyBulbMessenger odgovoren za povezovanje Telegram bota, povezanega z vašim odjemalcem pametnega telefona Telegram. Za več podrobnosti o tem, kako konfigurirate in se povežete s telegramskim botom, preverite

cmdHandler (bot, update) je kraj, kjer so besedilni ukazi definirani in povezani z PlayBulb prek API -ja RESTful.

Trenutno ima projekt samo besedilo, drugi cilj pa je tudi pošiljanje posnetih glasovnih sporočil, ki bi bila poslana prepoznavalniku govora za aktiviranje drugih ukazov (še ni izvedeno).

3. korak: Zaključek

Trenutna arhitekturna zasnova je bila bolj poenostavljena kot prilagodljiva. Še vedno manjka skupinska povezljivost, še vedno se raziskuje tudi več aplikacij, ki se nanašajo na pošiljanje sporočil žarnici za neposreden ukaz ali igrivo interakcijo.

Če se naročite na git repo ali sledite, bodo te posodobitve objavile več podrobnosti. Razlog za takšen projekt je bil povezovanje playBulb in ustvarjanje vmesnika RESTful za lažji razvoj v IoT (scenarij interneta stvari), pa tudi odpiranje možnosti uporabe različnih načinov prek telegrama IM odjemalca, kot so slike, glas in besedilo za interakcijo z napravami z raziskovalnega vidika.

Priporočena: