Sadržaj:

TextPlayBulb: REST omogućen PlayBulb pomoću Raspberry Pi 3, BLE i Telegrama: 3 koraka
TextPlayBulb: REST omogućen PlayBulb pomoću Raspberry Pi 3, BLE i Telegrama: 3 koraka

Video: TextPlayBulb: REST omogućen PlayBulb pomoću Raspberry Pi 3, BLE i Telegrama: 3 koraka

Video: TextPlayBulb: REST omogućen PlayBulb pomoću Raspberry Pi 3, BLE i Telegrama: 3 koraka
Video: Niall Ferguson: The 6 killer apps of prosperity 2024, Srpanj
Anonim
TextPlayBulb: REST omogućen PlayBulb pomoću Raspberry Pi 3, BLE i Telegrama
TextPlayBulb: REST omogućen PlayBulb pomoću Raspberry Pi 3, BLE i Telegrama

Ovo uputstvo pokazuje kako se povezati s PlayBulb Color bluetooth LED lampom pomoću Pythona, Raspberry Pi 3 i Bluetooth biblioteke te proširiti kontrole putem REST API -ja za IoT scenarij, a kao dodatak, projekt također pokazuje kako proširiti REST API za kontrolu vašeg PlayBulba preko IM tekstualnog klijenta, npr Telegram, poput razgovora s automatiziranom kućom putem teksta.

Ovaj projekt izgrađen je na 3 modula:

  1. pyBulbDriver: Povežite se s PlayBulbom putem BLE gatttool -a i pythona.
  2. pyBulbServer: Korištenje pyBulbDrivera za izlaganje kontrole žarulje za reprodukciju putem REST API -ja.
  3. pyBulbMessenger: Povezivanje s telegramskim botom za slanje i primanje naredbi putem klijenta za telegram instaliranog na bilo kojem pametnom telefonu i korištenje API -ja REST za izdavanje naredbi PlayBulbu.

Projekt možete klonirati putem git spremišta:

Cilj projekta:

Za stvaranje osnovnog alata za interakciju s žaruljom putem različitih modaliteta, kao što je zasad slanje tekstualnih poruka, budući scenariji mogli bi uključivati govorne naredbe, gestikuliranje prema lampici … itd.

Ostali resursi korišteni za izradu ovog uputstva:

  • PlayBulb Color Bluetooth protokol:
  • Povezivanje Pythona s Playbulbom putem Bluetootha:
  • Postavljanje telegram bota:

Doprinos

pyBulbDriver je proširen kako bi bio fleksibilniji i parametriziran radi lakšeg budućeg proširenja, stvarajući scenarij koji će vam omogućiti da petljate s lampom. Jednostavno sučelje za testiranje i petljanje.

Ograničenje

Upravljački program je napisan za PlayBulb Color, za druge vrste PlayBulba, npr. Original ili svijeća, bluetooth kod u pyBulbDriver -u treba promijeniti u skladu s gore spomenutim protokolom.

Morate registrirati račun za telegram i nabaviti api ključ, koji dodate u pyBulbMessenger.py, slijedite postavljanje telegramskog bota u drugim resursima.

Korak 1: Postavljanje projekta

1. Dobivanje vašeg API ključa iz Telegrama

> Slijedite trenutne upute da biste dobili svoj API ključ

> Dodajte svoj api ključ u varijablu api u pyBulbMessenger.py

2. Postavljanje naziva PlayBulb u pyBulbDriver

> Da bi gatttool pronašao uređaj za pisanje, postavite naziv svog uređaja da se skenira pomoću pyBulbDriver.scanForBulb ("PLAYBULB COLOR"). Primjer možete pronaći u pyBulbServer.py za postavljanje vašeg REST poslužitelja

3. Za pokretanje projekta

> Prvo morate pokrenuti pyBulbServer.py, a zatim i pyBulbMessenger.py za slanje poruka. Naredbe pyBulbServer možete testirati pomoću CURL -a.

4. Potreban materijal:

> Raspberry Pi 3 i PlayBulb svijeća u boji ili PlayBulb svijeća

> Instaliranje Telegrama za Android ili iOS

5. Instalacija Rasberry Pi 3 LE Bluetooth:

www.elinux.org/RPi_Bluetooth_LE

Korak 2: Prolazak kroz kôd

pyBulbDriver.py

pyBulbDriver sadrži klase upravljačkih programa za povezivanje s PlayBulbom putem BLE -a

pyBulbDriver se može koristiti i za bilo koje druge generičke projekte, jer sadrži samo kôd za skeniranje i postavljanje playBulb veza.

Glavni API -ji za sučelje korisničkih aplikacija:

  • scanForBulb (naziv uređaja: String)> Za traženje PlayBulba ili PlayBulbsa putem naziva uređaja
  • setBulbColor (s: int, r: int, g: int, b: int)> Za definiranje svjetline i vrijednosti RGB boje (0 do 255)
  • setBulbEffect (s: int, r: int, g: int, b: int, mode: int, onbeat: int, offbeat: int)> Slično kao setBulbColor, ali uključuje vrstu učinka i brzinu. Više informacija potražite u odjeljku Učinci protokola boja

U ovoj klasi također ćete pronaći druge pomoćne metode namijenjene provjeri integriteta podataka, a ne korisničkom sučelju

  • convertRGBToHexaCmd (s, r, g, b)
  • convertIntToHex (broj)
  • checkModeAndSpeed (način rada, izvanredan, onbeat)
  • provjeravaRGBInBounds (s, r, g, b)

pyBulbServer.py

pyBulbServer izlaže sučelje Korisničke aplikacije u RESTful hiperveze koristeći PUT i JSON za slanje i primanje podataka na pyBulbDriver. Također se skeniranje i inicijalizacija BLE veze vrši kada je poslužitelj aktiviran.

pyBulbResource (Resource) kanalizira pozive prema poslužitelju REST koristeći boju i efekt za definiranje naredbe bulb.

Primjer Za naredbu 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

Konačno, pyBulbMessenger je odgovoran za povezivanje Telegram bota povezanog s vašim klijentom pametnog telefona za telegram. Za više detalja o tome kako konfigurirati i povezati se s telegram botom provjerite

cmdHandler (bot, ažuriranje) je mjesto gdje su tekstualne naredbe definirane i povezane s PlayBulb -om putem RESTful API -ja.

Trenutno projekt ima samo tekst, a drugi cilj je i slanje snimljenih glasovnih poruka koje bi bile poslane prepoznavatelju govora za aktiviranje drugih naredbi (još nije implementirano).

Korak 3: Zaključak

Trenutni dizajn arhitekture više se odnosio na pojednostavljenje nego na skalabilnost. Još uvijek nedostaje grupna povezivost, a još se aplikacija u vezi s slanjem poruka žarulji radi direktne naredbe ili razigrane interakcije još uvijek istražuje.

Pretplatom na git repo ili praćenjem bit će objavljeno više pojedinosti o ovim ažuriranjima. Razlog za takav projekt bio je povezivanje playBulb -a i stvaranje RESTful sučelja radi lakšeg razvoja u IoT -u (scenarij interneta stvari), ali i otvaranje mogućnosti korištenja različitih modaliteta putem telegrama IM klijenta, poput slika, glasa i tekst za interakciju s uređajima iz perspektive istraživanja.

Preporučeni: