Innholdsfortegnelse:

TextPlayBulb: REST aktivert PlayBulb ved bruk av Raspberry Pi 3, BLE og Telegram: 3 trinn
TextPlayBulb: REST aktivert PlayBulb ved bruk av Raspberry Pi 3, BLE og Telegram: 3 trinn

Video: TextPlayBulb: REST aktivert PlayBulb ved bruk av Raspberry Pi 3, BLE og Telegram: 3 trinn

Video: TextPlayBulb: REST aktivert PlayBulb ved bruk av Raspberry Pi 3, BLE og Telegram: 3 trinn
Video: GORGEOUS Restaurant Owner !! She was on TV so many times - Thai street food 2024, November
Anonim
TextPlayBulb: REST -aktivert PlayBulb ved bruk av Raspberry Pi 3, BLE og Telegram
TextPlayBulb: REST -aktivert PlayBulb ved bruk av Raspberry Pi 3, BLE og Telegram

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:

  1. pyBulbDriver: Koble til PlayBulb via BLE gatttool og python.
  2. pyBulbServer: Bruke pyBulbDriver til å avsløre playbulb -kontrollen via REST API.
  3. 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: