Indholdsfortegnelse:

TextPlayBulb: REST aktiveret PlayBulb ved hjælp af Raspberry Pi 3, BLE og Telegram: 3 trin
TextPlayBulb: REST aktiveret PlayBulb ved hjælp af Raspberry Pi 3, BLE og Telegram: 3 trin

Video: TextPlayBulb: REST aktiveret PlayBulb ved hjælp af Raspberry Pi 3, BLE og Telegram: 3 trin

Video: TextPlayBulb: REST aktiveret PlayBulb ved hjælp af Raspberry Pi 3, BLE og Telegram: 3 trin
Video: Как работает Spring Boot и что такое auto-configuration. Магия? 2024, Juli
Anonim
TextPlayBulb: REST aktiveret PlayBulb ved hjælp af Raspberry Pi 3, BLE og Telegram
TextPlayBulb: REST aktiveret PlayBulb ved hjælp af Raspberry Pi 3, BLE og Telegram

Denne instruktør viser, hvordan man opretter forbindelse til en PlayBulb Color bluetooth LED -lampe ved hjælp af Python, et Raspberry Pi 3 og Bluetooth -bibliotek og udvider kontrollerne via en REST API til et IoT -scenario, og som en afvisning viser projektet også, hvordan man kan udvide REST API til at styre din PlayBulb over en IM -tekstklient f.eks Telegram, såsom at tale til dit automatiserede hjem via tekst.

Dette projekt er bygget på 3 moduler:

  1. pyBulbDriver: Opret forbindelse til PlayBulb via BLE gatttool og python.
  2. pyBulbServer: Brug af pyBulbDriver til at afsløre playbulb -kontrollen via REST API.
  3. pyBulbMessenger: Opretter forbindelse til en telegrambot for at sende og modtage kommandoer via telegramklient installeret på en hvilken som helst smarttelefon og ved hjælp af REST API til at udstede kommandoer til PlayBulb.

Du kan klone projektet via git repository:

Projektets mål:

For at oprette et basisværktøj til interaktion med din pære via forskellige modaliteter som f.eks. Sms'er i øjeblikket, kan fremtidsscenarier involvere talekommandoer, gestikulere til lampen … osv.

Andre ressourcer, der bruges til at oprette denne instruerbare:

  • PlayBulb Color Bluetooth -protokol:
  • Tilslutning af Python til Playbulb via Bluetooth:
  • Opsætning af telegramboten:

Bidrag

pyBulbDriver er udvidet til at være mere fleksibel og parameteriseret for at lette fremtidig forlængelse og opbygger et scenarie, så du kan bøvle med at sms'e din lampe. Enkel grænseflade til test og fiddle rundt.

Begrænsning

Driveren er skrevet til PlayBulb Color, til andre typer PlayBulb f.eks. Original eller stearinlys, Bluetooth -koden i pyBulbDriver skal ændres i henhold til den førnævnte protokol.

Du skal registrere en telegramkonto og få en api -nøgle, som du tilføjer i pyBulbMessenger.py, følg opsætningen af telegramboten i andre ressourcer.

Trin 1: Opsætning af projektet

1. Hentning af din API -nøgle fra Telegram

> Følg den nuværende instruks for at få din API-nøgle

> Tilføj din api -nøgle til variabel api i pyBulbMessenger.py

2. Indstilling af dit PlayBulb -navn i pyBulbDriver

> For at gatttoolet kan finde skriveenheden, skal du indstille dit enhedsnavn til at blive scannet ved hjælp af pyBulbDriver.scanForBulb ("PLAYBULB COLOR"). Eksempel findes i pyBulbServer.py for at konfigurere din REST -server

3. At starte projektet

> Du skal starte pyBulbServer.py først, derefter efterfulgt af pyBulbMessenger.py til sms’en. Du kan teste pyBulbServer -kommandoerne ved hjælp af CURL.

4. Nødvendigt materiale:

> Raspberry Pi 3 og PlayBulb Color eller PlayBulb Candle

> Installation af Telegram til Android eller iOS

5. Installation af Rasberry Pi 3 LE Bluetooth:

www.elinux.org/RPi_Bluetooth_LE

Trin 2: Gå gennem koden

pyBulbDriver.py

pyBulbDriver indeholder driverklasser til forbindelse til PlayBulb via BLE

pyBulbDriver kan også bruges til alle andre generiske projekter, da den kun indeholder koden til at scanne og konfigurere playBulb -forbindelser.

De vigtigste API'er til brugerapplikationsgrænseflade:

  • scanForBulb (enhedsnavn: String)> At scanne efter PlayBulb eller PlayBulbs via deres enhedsnavn
  • setBulbColor (s: int, r: int, g: int, b: int)> For at definere værdierne for lysstyrke og RGB -farve (0 til 255)
  • setBulbEffect (s: int, r: int, g: int, b: int, mode: int, onbeat: int, offbeat: int)> Ligner setBulbColor, men inkluderer typen af effekt og hastighed. For at vide mere, tjek afsnittet Effekter i farveprotokol

I denne klasse finder du også andre hjælpermetoder beregnet til dataintegritetskontrol og ikke til brugergrænseflade

  • convertRGBToHexaCmd (s, r, g, b)
  • convertIntToHex (tal)
  • checkModeAndSpeed (tilstand, offbeat, onbeat)
  • checksRGBInBounds (s, r, g, b)

pyBulbServer.py

pyBulbServer udsætter brugerapplikationsgrænsefladen for RESTful -hyperlinks ved hjælp af PUT og JSON til at sende og modtage data til pyBulbDriver. Også scanningen og initialiseringen af BLE -forbindelsen foretages, når serveren aktiveres.

pyBulbResource (ressource) kanaliserer opkaldene til REST -serveren ved hjælp af farve og effekt til at definere pærekommandoen.

Eksempel Til kommando af 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 grænsefladen mellem Telegram -botten, der er forbundet til din telegram -smarttelefonklient. For flere detaljer om, hvordan du konfigurerer og opretter forbindelse til en telegram bot, tjek

cmdHandler (bot, opdatering) er, hvor tekstkommandoerne er defineret og forbundet til PlayBulb via RESTful API.

I øjeblikket har projektet kun tekst, et andet mål er også at sende indspillede talemeddelelser, der ville blive sendt til en talegenkender for at aktivere andre kommandoer (ikke implementeret endnu).

Trin 3: Konklusion

Det nuværende arkitekturdesign handlede mere om forenkling end skalerbarhed. Stadig manglende gruppeforbindelse, også flere applikationer vedrørende sms'er til pæren enten til lige kommando eller legende interaktion er stadig under forskning.

Ved at abonnere på git repo eller følge vil der komme flere detaljer om disse opdateringer. Grunden til et sådant projekt var at interface playBulb og oprette en RESTful -grænseflade for nem udvikling i et IoT (internet of things -scenario), men også for at åbne chancen for at bruge forskellige modaliteter via IM Client -telegrammet såsom billeder, stemme og tekst for at interagere med apparater fra et forskningsperspektiv.

Anbefalede: