Innholdsfortegnelse:
Video: TextPlayBulb: REST aktivert PlayBulb ved bruk av Raspberry Pi 3, BLE og Telegram: 3 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
Denne instruksjonen viser hvordan du kobler til en PlayBulb Color bluetooth LED -lampe ved hjelp av Python, et Raspberry Pi 3 og Bluetooth -bibliotek og for å utvide kontrollene via et REST API for et IoT -scenario, og som en bouns viser prosjektet også hvordan du kan utvide REST API for å kontrollere PlayBulb over en chat -tekstklient f.eks Telegram, for eksempel å snakke med ditt automatiserte hjem via tekst.
Dette prosjektet er bygget på 3 moduler:
- pyBulbDriver: Koble til PlayBulb via BLE gatttool og python.
- pyBulbServer: Bruke pyBulbDriver til å avsløre playbulb -kontrollen via REST API.
- pyBulbMessenger: Koble til en telegrambot for å sende og motta kommandoer via telegramklient installert på hvilken som helst smarttelefon, og bruke REST API for å utstede kommandoer til PlayBulb.
Du kan klone prosjektet via git -depot:
Målet med prosjektet:
For å lage et basisverktøy for å samhandle med pæren din via forskjellige modaliteter som teksting for nå, kan fremtidige scenarier innebære talekommandoer, gestikulere til lampen … etc.
Andre ressurser som brukes til å lage denne instruerbare:
- PlayBulb Color Bluetooth -protokoll:
- Koble Python til Playbulb via Bluetooth:
- Sette opp telegramboten:
Bidrag
pyBulbDriver er utvidet til å være mer fleksibel og parameterisert for enkel fremtidig forlengelse, og bygger et scenario som lar deg fikle med å sende tekst til lampen din. Enkelt grensesnitt for testing og fikling.
Begrensning
Driveren er skrevet for PlayBulb Color, for andre typer PlayBulb f.eks. Original eller stearinlys, Bluetooth -koden i pyBulbDriver må endres i henhold til den nevnte protokollen.
Du må registrere en telegramkonto og få en api -nøkkel, som du legger til i pyBulbMessenger.py, følg konfigurasjonen av telegramboten i andre ressurser.
Trinn 1: Sette opp prosjektet
1. Få API -nøkkelen din fra Telegram
> Følg gjeldende instruksjoner for å få API-nøkkelen din
> Legg til api -nøkkelen din til variabel api i pyBulbMessenger.py
2. Angi PlayBulb -navnet ditt i pyBulbDriver
> For at gatttoolet skal finne skriveenheten, må du angi at enhetsnavnet skal skannes ved hjelp av pyBulbDriver.scanForBulb ("PLAYBULB COLOR"). Eksempel finner du i pyBulbServer.py for å konfigurere din REST -server
3. Å starte prosjektet
> Du må starte pyBulbServer.py først, deretter etterfulgt av pyBulbMessenger.py for tekstmeldingen. Du kan teste pyBulbServer -kommandoene ved å bruke CURL.
4. Nødvendig materiale:
> Raspberry Pi 3 og PlayBulb Color eller PlayBulb Candle
> Installere Telegram for Android eller iOS
5. Installasjon av Rasberry Pi 3 LE Bluetooth:
www.elinux.org/RPi_Bluetooth_LE
Trinn 2: Gå gjennom koden
pyBulbDriver.py
pyBulbDriver inneholder driverklassene for tilkobling til PlayBulb via BLE
pyBulbDriver kan også brukes til andre generiske prosjekter, ettersom den bare inneholder koden for å skanne og sette opp playBulb -tilkoblinger.
De viktigste API -ene for brukergrensesnitt:
- scanForBulb (enhetsnavn: String)> For å søke etter PlayBulb eller PlayBulbs via enhetsnavnet
- setBulbColor (s: int, r: int, g: int, b: int)> For å definere verdiene for lysstyrke og RGB -farge (0 til 255)
-
setBulbEffect (s: int, r: int, g: int, b: int, mode: int, onbeat: int, offbeat: int)> Ligner på setBulbColor, men inkluderer typen effekt og hastighet. For å vite mer, sjekk fargeprotokollen Effekter -delen
I denne klassen finner du også andre hjelpermetoder beregnet på dataintegritetskontroll og ikke for brukergrensesnitt
- convertRGBToHexaCmd (s, r, g, b)
- convertIntToHex (tall)
- checkModeAndSpeed (modus, offbeat, onbeat)
- sjekkerRGBInBounds (s, r, g, b)
pyBulbServer.py
pyBulbServer viser brukergrensesnittet til RESTful hyperkoblinger ved hjelp av PUT og JSON for å sende og motta data til pyBulbDriver. Også skanningen og initialiseringen av BLE -tilkoblingen gjøres når serveren er aktivert.
pyBulbResource (ressurs) kanaliserer samtalene til REST -serveren ved hjelp av farge og effekt for å definere pærekommandoen.
Eksempel For å kontrollere en effekt:
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
Endelig er pyBulbMessenger ansvarlig for grensesnitt mellom Telegram -boten som er koblet til din telegram -smarttelefonklient. For mer informasjon om hvordan du konfigurerer og kobler til en telegrambot, sjekk
cmdHandler (bot, oppdatering) er der tekstkommandoene er definert og koblet til PlayBulb via RESTful API.
Foreløpig har prosjektet bare tekst, et annet mål er å også sende innspilte talemeldinger som vil bli sendt til en talegjenkjenning for å aktivere andre kommandoer (Ikke implementert ennå).
Trinn 3: Konklusjon
Den nåværende arkitekturdesignen handlet mer om forenkling enn skalerbarhet. Mangler fortsatt gruppetilkobling, og flere applikasjoner angående tekstmelding til pæren, enten for rett kommando eller lekende interaksjon, er fortsatt under forskning.
Ved å abonnere på git repo eller følge, vil flere detaljer komme om disse oppdateringene. Grunnen til et slikt prosjekt var å koble til playBulb og lage et RESTful -grensesnitt for enkel utvikling i et IoT (tingenes internett -scenario), men også for å åpne sjansen til å bruke forskjellige modaliteter via IM Client -telegrammet, for eksempel bilder, stemme og tekst for å samhandle med apparater fra et forskningsperspektiv.
Anbefalt:
Kontroll ledet over hele verden ved bruk av internett ved hjelp av Arduino: 4 trinn
Kontroll ledet over hele verden ved bruk av internett ved hjelp av Arduino: Hei, jeg er Rithik. Vi kommer til å lage en Internett -kontrollert LED ved hjelp av telefonen din. Vi kommer til å bruke programvare som Arduino IDE og Blynk. Det er enkelt, og hvis du lyktes kan du kontrollere så mange elektroniske komponenter du vilTing We Need: Hardware:
Overvåke akselerasjon ved bruk av Raspberry Pi og AIS328DQTR ved hjelp av Python: 6 trinn
Overvåke akselerasjon ved hjelp av Raspberry Pi og AIS328DQTR Bruke Python: Akselerasjon er begrenset, tror jeg i henhold til noen fysikklover.- Terry Riley En gepard bruker fantastisk akselerasjon og raske endringer i hastighet når jeg jager. Den raskeste skapningen i land en gang i blant bruker sitt høyeste tempo for å fange byttedyr. Den
Bygg en eksternt aktivert sprinkler ved hjelp av PiFace og Ubidots: 13 trinn
Bygg en eksternt aktivert sprinkler ved hjelp av PiFace og Ubidots: Dette er et kult eksempel som lærer deg hvordan du bruker en Raspberry Pi, en PiFace og Ubidots til å vanne hagen din langt unna. Du kan fjernstyre en elektroventil for å vanne plantene dine hvor som helst, bare ved å bruke telefonen
Alexa -aktivert fjernkontroll (ved hjelp av WEMO D1 Mini): 3 trinn
Alexa Enabled Remote Control (ved hjelp av WEMO D1 Mini): Dette er en oppdatert versjon av et tidligere innlegg: https: //www.instructables.com/id/Voice-Activated-R…I forrige versjon brukte jeg en Geetech talemodul for å kontrollere en vanlig fjernkontroll for garasjeporter. I denne instruksen har jeg erstattet vo
Mi -banddetektor ved bruk av ESP32 BLE: 6 trinn
Mi Band Detector Bruke ESP32 BLE: Hello Maker m ( - -) m Jeg leste denne artikkelen 陳亮 (moononournation github) om hvordan du bruker esp32 ble til skanning av enheten, så jeg måtte prøve denne koden på github Arduino_BLE_Scanner. nå vil jeg bruke Mi Band 3 til å låse opp døren når jeg kommer til kontoret mitt