Turinys:
Video: „TextPlayBulb“: „REST“įgalintas „PlayBulb“naudojant „Raspberry Pi 3“, „BLE“ir „Telegram“: 3 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Šioje instrukcijoje parodyta, kaip prisijungti prie „PlayBulb Color“„Bluetooth“LED lempos, naudojant „Python“, „Raspberry Pi 3“ir „Bluetooth“biblioteką, ir išplėsti valdymą naudojant REST API, skirtą daiktų interneto scenarijui, ir kaip projektas, taip pat parodoma, kaip išplėsti REST API, skirta valdyti „PlayBulb“per IM teksto klientą, pvz Telegrama, pvz., Kalbėjimasis su jūsų automatizuotais namais tekstu.
Šis projektas yra pagrįstas 3 moduliais:
- „pyBulbDriver“: prisijunkite prie „PlayBulb“naudodami „BLE gatttool“ir „python“.
- „pyBulbServer“: naudojant „pyBulbDriver“, norėdami parodyti žaidimo valdiklį per REST API.
- „pyBulbMessenger“: prisijungimas prie telegramos roboto, kad būtų galima siųsti ir gauti komandas per bet kuriame išmaniajame telefone įdiegtą telegramų klientą, ir naudojant REST API komandoms „PlayBulb“.
Galite klonuoti projektą naudodami „git“saugyklą:
Projekto tikslas:
Jei norite sukurti pagrindinį įrankį, skirtą sąveikauti su lempute naudojant įvairius būdus, pvz., Siunčiant trumpąsias žinutes, būsimi scenarijai gali apimti kalbos komandas, gestavimą lemputei ir pan.
Kiti ištekliai, naudojami kuriant šią instrukciją:
- „PlayBulb“spalvotas „Bluetooth“protokolas:
- „Python“prijungimas prie „Playbulb“per „Bluetooth“:
- Telegramos roboto nustatymas:
Įnašas
„pyBulbDriver“išplėstas, kad būtų lankstesnis ir parametrizuotas, kad būtų lengviau jį pratęsti ateityje, sukuriant scenarijų, leidžiantį sustoti ir siųsti žinučių siuntimo žinutes. Paprasta sąsaja testavimui ir pasivaikščiojimui.
Apribojimas
Tvarkyklė parašyta „PlayBulb Color“, kitų tipų „PlayBulb“, pvz. Originalus arba žvakė, „Bluetooth“kodą „pyBulbDriver“reikia pakeisti pagal pirmiau minėtą protokolą.
Turite užregistruoti telegramos paskyrą ir gauti API raktą, kurį pridėsite prie pyBulbMessenger.py, atlikite telegramos roboto nustatymą kituose ištekliuose.
1 žingsnis: nustatykite projektą
1. API rakto gavimas iš „Telegram“
> Vykdykite dabartines instrukcijas, kad gautumėte savo API raktą
> Pridėkite savo API raktą prie kintamojo api, esančio pyBulbMessenger.py
2. „PlayBulb“vardo nustatymas „pyBulbDriver“
> Kad gatttool surastų rašymo įrenginį, nustatykite savo įrenginio pavadinimą, kad jis būtų nuskaitytas naudojant pyBulbDriver.scanForBulb ("PLAYBULB COLOR"). Pavyzdį rasite pyBulbServer.py, kad nustatytumėte REST serverį
3. Norėdami pradėti projektą
> Pirmiausia turite paleisti pyBulbServer.py, o po to pyBulbMessenger.py, kad galėtumėte siųsti žinutes. Galite išbandyti pyBulbServer komandas naudodami CURL.
4. Reikalinga medžiaga:
> Raspberry Pi 3 ir PlayBulb Color arba PlayBulb Candle
> Telegramos diegimas, skirtas „Android“arba „iOS“
5. Rasberry Pi 3 LE Bluetooth diegimas:
www.elinux.org/RPi_Bluetooth_LE
2 žingsnis: eikite per kodą
pyBulbDriver.py
„pyBulbDriver“yra tvarkyklių klasės, skirtos prisijungti prie „PlayBulb“per BLE
„pyBulbDriver“taip pat gali būti naudojamas bet kokiems kitiems bendriesiems projektams, nes jame yra tik „PlayBulb“jungčių nuskaitymo ir nustatymo kodas.
Pagrindinės vartotojo sąsajos API:
- scanForBulb (įrenginio pavadinimas: eilutė)> Norėdami ieškoti „PlayBulb“ar „PlayBulb“pagal jų įrenginio pavadinimą
- setBulbColor (s: int, r: int, g: int, b: int)> Nustatyti ryškumo ir RGB spalvų (nuo 0 iki 255) reikšmes
-
setBulbEffect (s: int, r: int, g: int, b: int, mode: int, onbeat: int, offbeat: int)> Panašus į setBulbColor, tačiau apima efekto tipą ir greitį. Norėdami sužinoti daugiau, patikrinkite spalvų protokolo efektų skyrių
Šioje klasėje taip pat rasite kitų pagalbinių metodų, skirtų duomenų vientisumui tikrinti, o ne vartotojo sąsajai
- konvertuotiRGBToHexaCmd (s, r, g, b)
- convertIntToHex (skaičius)
- checkModeAndSpeed (režimas, neįprastas, įjungtas)
- patikrinimai RGBInBounds (s, r, g, b)
pyBulbServer.py
„pyBulbServer“atskleidžia vartotojo programos sąsają į RESTful hipersaitus, naudojančius PUT ir JSON, kad išsiųstų ir gautų duomenis į pyBulbDriver. Taip pat BLE ryšys nuskaitomas ir inicijuojamas, kai suaktyvinamas serveris.
pyBulbResource (Resource) nukreipia skambučius į REST serverį naudodami spalvą ir efektą, kad apibrėžtų lemputės komandą.
Efekto nurodymo pavyzdys:
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
Galiausiai pyBulbMessenger yra atsakingas už telegramos roboto, prijungto prie jūsų išmaniojo telefono kliento kliento, sąsają. Norėdami gauti daugiau informacijos apie tai, kaip sukonfigūruoti ir prisijungti prie telegramos roboto, apsilankykite
„cmdHandler“(robotas, atnaujinimas) yra teksto komandų apibrėžimas ir prijungimas prie „PlayBulb“per RESTful API.
Šiuo metu projekte yra tik tekstas, kitas tikslas - taip pat siųsti įrašytus balso pranešimus, kurie būtų siunčiami į kalbos atpažinimo priemonę, kad būtų suaktyvintos kitos komandos (dar neįgyvendinta).
3 žingsnis: Išvada
Dabartinis architektūros dizainas buvo labiau susijęs su supaprastinimu nei mastelio keitimu. Vis dar trūksta grupės ryšio, taip pat vis dar tiriamos daugiau programų, susijusių su teksto siuntimu į lemputę, kad būtų galima tiesiogiai valdyti ar žaisti žaismingai.
Užsiprenumeravę „git repo“ar sekdami, gausite daugiau informacijos apie šiuos atnaujinimus. Tokio projekto priežastis buvo sujungti „playBulb“ir sukurti RESTful sąsają, kad būtų lengviau kurti daiktus internete (daiktų interneto scenarijus), bet taip pat atverti galimybę naudoti skirtingus būdus naudojant IM kliento telegramą, pvz., Paveikslėlius, balsą ir tekstą, kad galėtumėte bendrauti su prietaisais tyrimo požiūriu.
Rekomenduojamas:
„OpenLogger“: didelės skiriamosios gebos, „Wi-Fi“įgalintas, atvirojo kodo, nešiojamasis duomenų kaupiklis: 7 žingsniai
„OpenLogger“: didelės skiriamosios gebos „Wi-Fi“įjungtas, atvirojo kodo, nešiojamasis duomenų kaupiklis: „OpenLogger“yra nešiojamas, atviro kodo, nebrangus, didelės skiriamosios gebos duomenų kaupiklis, skirtas aukštos kokybės matavimams atlikti, nereikalaujant brangios programinės įrangos ar rašymo programinės įrangos. nuo nulio. Jei esate inžinierius, mokslininkas ar entuziastas, kuris
„Wi -Fi“įgalintas OLED ESP32 automobilių matuoklis: 3 žingsniai (su nuotraukomis)
„Wi -Fi“įgalintas „OLED ESP32“automobilių matuoklis: pirmiausia įvadai … Aš kuriu automobilių matuoklius kaip įjungimo ir vėl išjungimo pomėgį. Dar du pavyzdžius rasite https: //www.instructables.com/id/Remote-Car-Monit … ir https: //www.instructables.com/id/Remote-Car-Monit … Man ypač patinka
„Bluetooth“įgalintas „Nerf Blaster“: 7 žingsniai
„Bluetooth“įjungtas „Nerf Blaster“: jaučiausi įkvėptas Colino Furze'o projekto ir nusprendžiau sukurti savo „Remix Challenge“pristatymą. Mano naudojamas dizainas yra panašus, bet labiau mėgėjiškas, jame yra „Bluetooth“modulis, leidžiantis valdyti bokštelį iš mano telefono. Tai
„IoT“įgalintas kavos aparatas: 9 žingsniai (su nuotraukomis)
„IoT“įgalintas kavos aparatas: ši instrukcija įtraukta į „IoT“konkursą - jei jums tai patinka, balsuokite už ją! ATNAUJINTA: Dabar palaiko dviejų krypčių komunikacijas ir OTA atnaujinimus Jau kurį laiką turėjau „Jura“kavos aparatą ir visada norėjau kažkaip automatizuoti. Turiu būti
„WiFi“įgalintas išmanusis kištukas su temperatūros valdymu: 4 žingsniai
„WiFi“įjungtas išmanusis kištukas su temperatūros valdymu: šiame instrukcijų rinkinyje apžvelgsime, kaip sukurti „WiFi“įgalintą temperatūros zondą naudojant paprastą ESP8266 sunkiam kėlimui ir DHT11 temperatūros/drėgmės jutiklį. Mes taip pat naudosime mano sukurtą plokštę ir