Sadržaj:
Video: TextPlayBulb: REST omogućen PlayBulb pomoću Raspberry Pi 3, BLE i Telegrama: 3 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:33
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:
- pyBulbDriver: Povežite se s PlayBulbom putem BLE gatttool -a i pythona.
- pyBulbServer: Korištenje pyBulbDrivera za izlaganje kontrole žarulje za reprodukciju putem REST API -ja.
- 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:
Minimalistički indikator bicikla, omogućen dodir!: 10 koraka (sa slikama)
Minimalistički pokazatelj bicikla, omogućen dodir !: Bok! Ovo je moj prvi Instructable. Uvijek sam želio stvarati stvari od nule samo da vidim kako to funkcionira i tko ne voli DIY (Uradi sam) stvari kad možeš nešto izmijeniti prema svojim potrebama, zar ne? Zanimljivo kao DIY m
OpenLogger: Visoka razlučivost, omogućen Wi-Fi, otvoreni izvor, prijenosni zapisnik podataka: 7 koraka
OpenLogger: High-resolution, Wi-Fi Enabled, Open Source, Portable Data Logger: OpenLogger je prijenosni, otvoreni izvor, jeftin zapisnik visoke rezolucije dizajniran za pružanje visokokvalitetnih mjerenja bez potrebe za skupim softverom ili softverom za pisanje od nule. Ako ste inženjer, znanstvenik ili entuzijast koji ne
Mi Band Detector pomoću ESP32 BLE: 6 koraka
Detektor mi pojasa pomoću ESP32 BLE: Hello Maker m ( - -) m Pročitao sam ovaj članak 陳亮 (moononournation github) o tome kako koristiti esp32 ble za skeniranje uređaja pa sam morao isprobati ovaj kod na githubu Arduino_BLE_Scanner. sada želim upotrijebiti svoj Mi Band 3 za otključavanje vrata kad dođem na svoj službeni
Očitavanje vrijednosti s BLE uređaja pomoću CSR1010 i Dragonboard 410c: 6 koraka
Očitavanje vrijednosti s BLE uređaja pomoću CSR1010 i Dragonboard 410c: Ovaj vodič prikazuje kako čitati vrijednosti s BLE uređaja CSR1010 pomoću Dragonboard 410c s Linarom U ovom primjeru CSR1010 emulira senzor otkucaja srca
Moj autoradio - omogućen iPod: 8 koraka
Moj autoradio - omogućen iPod Kako možete učiniti svoj automobil zvučnim, Ipod Enabled, imam Pioneer Car Audio i Ipod Mini. Potrebni su vam audio kabeli i stereo 2 mono pina