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, Juli
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 spojiti na PlayBulb Color bluetooth LED lampu koristeći Python, Raspberry Pi 3 i Bluetooth biblioteku i 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 projekat izgrađen je na 3 modula:

  1. pyBulbDriver: Povežite se sa 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 sa telegram botom za slanje i primanje naredbi putem klijenta za telegram instaliranog na bilo kojem pametnom telefonu i korištenje REST API -a za izdavanje naredbi PlayBulbu.

Projekt možete klonirati putem git spremišta:

Cilj projekta:

Za stvaranje osnovnog alata za interakciju s vašom žaruljom putem različitih modaliteta, kao što je slanje tekstualnih poruka za sada, budući scenariji mogu uključivati govorne naredbe, pokrete prema lampici … itd.

Ostali resursi korišteni za kreiranje ovog uputstva:

  • PlayBulb Color Bluetooth protokol:
  • Povezivanje Pythona s Playbulbom putem Bluetootha:
  • Postavljanje bot telegrama:

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 sa lampama. Jednostavno sučelje za testiranje i petljanje.

Ograničenje

Upravljački program je napisan za PlayBulb Color, za druge vrste PlayBulb -a, 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 ime 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 servera

3. Za pokretanje projekta

> Morate prvo 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 -a:

www.elinux.org/RPi_Bluetooth_LE

Korak 2: Prolazak kroz Kodeks

pyBulbDriver.py

pyBulbDriver sadrži klase upravljačkih programa za povezivanje na PlayBulb 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 skeniranje 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 efekta i brzinu. Više informacija potražite u odjeljku Efekti protokola boja

U ovoj klasi ćete pronaći 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, neobičan, 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) kanališe pozive prema REST serveru koristeći boju i efekat za definisanje naredbe bulb.

Primjer Za naredbu efekta:

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, update) 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 prepoznavaču 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 grupno povezivanje, ali se još istražuje više aplikacija koje se tiču slanja SMS poruka sijalici radi direktne komande ili razigrane interakcije.

Pretplatom na git repo ili praćenjem bit će objavljeno više detalja 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čuje se: