Taula de continguts:

TextPlayBulb: REST habilitat PlayBulb mitjançant Raspberry Pi 3, BLE i Telegram: 3 passos
TextPlayBulb: REST habilitat PlayBulb mitjançant Raspberry Pi 3, BLE i Telegram: 3 passos

Vídeo: TextPlayBulb: REST habilitat PlayBulb mitjançant Raspberry Pi 3, BLE i Telegram: 3 passos

Vídeo: TextPlayBulb: REST habilitat PlayBulb mitjançant Raspberry Pi 3, BLE i Telegram: 3 passos
Vídeo: Обязательно запомни эту хитрость! Как можно моментально вывести йод с одежды? #shorts 2024, Juliol
Anonim
TextPlayBulb: REST habilitat PlayBulb mitjançant Raspberry Pi 3, BLE i Telegram
TextPlayBulb: REST habilitat PlayBulb mitjançant Raspberry Pi 3, BLE i Telegram

Aquest instructiu mostra com connectar-se a una làmpada LED Bluetooth de PlayBulb Color mitjançant Python, una biblioteca Raspberry Pi 3 i Bluetooth i estendre els controls mitjançant una API REST per a un escenari IoT i, com a rebots, el projecte també mostra com ampliar el API REST per controlar el vostre PlayBulb sobre un client de text de missatgeria instantània, per exemple Telegram, com ara parlar amb la vostra llar automatitzada mitjançant text.

Aquest projecte es basa en 3 mòduls:

  1. pyBulbDriver: connecteu-vos a PlayBulb mitjançant el gatttool BLE i el python.
  2. pyBulbServer: utilitzant pyBulbDriver per exposar el control de la bombeta mitjançant l'API REST.
  3. pyBulbMessenger: connectar-se a un bot de telegrama per enviar i rebre ordres mitjançant un client de telegrama instal·lat a qualsevol telèfon intel·ligent i utilitzar l'API REST per emetre ordres a PlayBulb.

Podeu clonar el projecte mitjançant el repositori git:

Objectiu del projecte:

Per crear una eina base per interactuar amb la bombeta a través de diferents modalitats, com ara enviar missatges de text, els escenaris futurs podrien implicar ordres de veu, fer gestos cap a la llum … etc.

Altres recursos utilitzats per crear aquesta instrucció:

  • Protocol Bluetooth de color PlayBulb:
  • Connexió de Python a Playbulb mitjançant Bluetooth:
  • Configuració del bot de telegrama:

Contribució

pyBulbDriver s’estén per ser més flexible i parametritzat per facilitar la futura extensió, creant un escenari que us permetrà jugar amb missatges de text a la llum. Interfície senzilla per provar i jugar.

Limitació

El controlador està escrit per a PlayBulb Color, per a altres tipus de PlayBulb, per exemple. Original o espelma, el codi bluetooth de pyBulbDriver ha de canviar segons el protocol esmentat.

Heu de registrar un compte de telegrama i obtenir una clau API, que afegiu a pyBulbMessenger.py, seguiu la configuració del bot de telegrama en altres recursos.

Pas 1: Configuració del projecte

1. Obtenir la clau API de Telegram

> Seguiu la instrucció actual per obtenir la vostra clau d'API

> Afegiu la vostra clau API a API variable a pyBulbMessenger.py

2. Configuració del nom de PlayBulb a pyBulbDriver

> Perquè el gatttool trobi el dispositiu d'escriptura, configureu el nom del dispositiu perquè s'escanegi amb pyBulbDriver.scanForBulb ("PLAYBULB COLOR"). Es pot trobar un exemple a pyBulbServer.py per configurar el servidor REST

3. Per iniciar el projecte

> Primer heu d'iniciar pyBulbServer.py, després, seguit de pyBulbMessenger.py per enviar missatges de text. Podeu provar les ordres pyBulbServer mitjançant CURL.

4. Material necessari:

> Raspberry Pi 3 i PlayBulb Color o PlayBulb Candle

> Instal·lació de Telegram per a Android o iOS

5. Instal·lació de Rasberry Pi 3 LE Bluetooth:

www.elinux.org/RPi_Bluetooth_LE

Pas 2: caminar pel codi

pyBulbDriver.py

pyBulbDriver conté les classes de controladors per connectar-se a PlayBulb mitjançant BLE

pyBulbDriver es pot utilitzar també per a qualsevol altre projecte genèric, ja que només conté el codi per escanejar i configurar connexions de playBulb.

Les principals API per a la interfície d'aplicació d'usuari:

  • scanForBulb (devicename: String)> Per cercar PlayBulb o PlayBulbs mitjançant el nom del dispositiu
  • setBulbColor (s: int, r: int, g: int, b: int)> Per definir els valors de brillantor i color RGB (0 a 255)
  • setBulbEffect (s: int, r: int, g: int, b: int, mode: int, onbeat: int, offbeat: int)> Semblant a setBulbColor, però inclou el tipus d’efecte i velocitat. Per obtenir més informació, consulteu la secció Efectes del protocol de color

En aquesta classe també trobareu altres mètodes auxiliars destinats a la comprovació de la integritat de les dades i no a la interfície d'usuari

  • convertRGBToHexaCmd (s, r, g, b)
  • convertIntToHex (número)
  • checkModeAndSpeed (mode, desactivat, onbeat)
  • checksRGBInBounds (s, r, g, b)

pyBulbServer.py

pyBulbServer exposa la interfície de l'aplicació d'usuari en hipervincles RESTful mitjançant PUT i JSON per enviar i rebre dades al pyBulbDriver. També l'escaneig i la inicialització de la connexió BLE es realitzen quan s'activa el servidor.

pyBulbResource (Recurs) canalitza les trucades al servidor REST mitjançant el color i l’efecte per definir l’ordre bombeta.

Exemple Per comandar un efecte:

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

Finalment, pyBulbMessenger s’encarrega de la interfície del bot de Telegram connectat al vostre client de telèfons intel·ligents. Per obtenir més informació sobre com configurar i connectar-se a un bot de telegrama, consulteu

cmdHandler (bot, actualització) és on es defineixen les ordres de text i es connecten a PlayBulb mitjançant l'API RESTful.

Actualment el projecte només té text, un altre objectiu és enviar també missatges de veu gravats que s'enviarien a un reconeixedor de veu per activar altres ordres (encara no implementades).

Pas 3: Conclusió

El disseny arquitectònic actual tractava més de la simplificació que de l’escalabilitat. Encara falta la connectivitat de grup, encara s’estan investigant més aplicacions relacionades amb l’enviament de missatges de text a la bombeta per a una ordre directa o una interacció lúdica.

Si us subscriviu a git repo o seguiu aquests detalls, es proporcionaran més detalls sobre aquestes actualitzacions. El motiu d’aquest projecte va ser la interfície de playBulb i la creació d’una interfície RESTful per facilitar el desenvolupament en un IoT (escenari d’internet de les coses), però també per obrir la possibilitat d’utilitzar diferents modalitats mitjançant el telegrama del client de missatgeria instantània, com ara imatges, veu i text per interactuar amb els electrodomèstics des de la perspectiva de la investigació.

Recomanat: