Tabla de contenido:

TextPlayBulb: PlayBulb habilitado para REST usando Raspberry Pi 3, BLE y Telegram: 3 pasos
TextPlayBulb: PlayBulb habilitado para REST usando Raspberry Pi 3, BLE y Telegram: 3 pasos

Video: TextPlayBulb: PlayBulb habilitado para REST usando Raspberry Pi 3, BLE y Telegram: 3 pasos

Video: TextPlayBulb: PlayBulb habilitado para REST usando Raspberry Pi 3, BLE y Telegram: 3 pasos
Video: Умные светодиодные фонари Mipow, Bluetooth-динамик со светодиодной подсветкой, солнечное освещение для сада 2024, Noviembre
Anonim
TextPlayBulb: PlayBulb habilitado para REST usando Raspberry Pi 3, BLE y Telegram
TextPlayBulb: PlayBulb habilitado para REST usando Raspberry Pi 3, BLE y Telegram

Este instructivo muestra cómo conectarse a una lámpara LED Bluetooth PlayBulb Color usando Python, una Raspberry Pi 3 y una biblioteca Bluetooth y extender los controles a través de una API REST para un escenario de IoT, y como resultado, el proyecto también muestra cómo extender el REST API para controlar su PlayBulb a través de un cliente de texto de mensajería instantánea, por ejemplo Telegram, como hablar con su hogar automatizado por mensaje de texto.

Este proyecto se basa en 3 módulos:

  1. pyBulbDriver: conéctese a PlayBulb a través de BLE gatttool y python.
  2. pyBulbServer: uso de pyBulbDriver para exponer el control de la bombilla a través de la API REST.
  3. pyBulbMessenger: Conectarse a un bot de telegram para enviar y recibir comandos a través del cliente de telegram instalado en cualquier teléfono inteligente y usar la API REST para emitir comandos al PlayBulb.

Puede clonar el proyecto a través del repositorio de git:

Objetivo del proyecto:

Para crear una herramienta base para interactuar con su bombilla a través de diferentes modalidades, como enviar mensajes de texto por ahora, los escenarios futuros podrían incluir comandos de voz, gestos hacia la lámpara … etc.

Otros recursos utilizados para crear este instructable:

  • Protocolo Bluetooth PlayBulb Color:
  • Conexión de Python a Playbulb a través de Bluetooth:
  • Configuración del bot de telegramas:

Contribución

pyBulbDriver se extiende para ser más flexible y parametrizado para facilitar la extensión futura, creando un escenario que le permite jugar con los mensajes de texto de su lámpara. Interfaz simple para probar y jugar.

Limitación

El controlador está escrito para PlayBulb Color, para otros tipos de PlayBulb, p. Ej. Original o vela, el código bluetooth en pyBulbDriver debe cambiarse de acuerdo con el protocolo mencionado anteriormente.

Debe registrar una cuenta de telegram y obtener una clave de API, que agrega en pyBulbMessenger.py, siga la configuración del bot de telegram en Otros recursos.

Paso 1: Configurar el proyecto

1. Obtener su clave API de Telegram

> Siga las instrucciones actuales para obtener su clave API

> Agregue su clave api a la variable api en pyBulbMessenger.py

2. Configuración de su nombre de PlayBulb en pyBulbDriver

> Para que gatttool encuentre el dispositivo de escritura, configure el nombre de su dispositivo para que sea escaneado usando pyBulbDriver.scanForBulb ("PLAYBULB COLOR"). Se puede encontrar un ejemplo en pyBulbServer.py para configurar su servidor REST

3. Para iniciar el proyecto

> Primero debe iniciar pyBulbServer.py, luego seguido de pyBulbMessenger.py para los mensajes de texto. Puede probar los comandos de pyBulbServer usando CURL.

4. Material necesario:

> Raspberry Pi 3 y PlayBulb Color o PlayBulb Candle

> Instalación de Telegram para Android o iOS

5. Instalación de Rasberry Pi 3 LE Bluetooth:

www.elinux.org/RPi_Bluetooth_LE

Paso 2: Repaso del código

pyBulbDriver.py

pyBulbDriver contiene las clases de controladores para conectarse a PlayBulb a través de BLE

pyBulbDriver se puede usar también para cualquier otro proyecto genérico, ya que solo contiene el código para escanear y configurar las conexiones playBulb.

Las principales API para la interfaz de la aplicación de usuario:

  • scanForBulb (devicename: String)> Para buscar PlayBulb o PlayBulbs a través del nombre de su dispositivo
  • setBulbColor (s: int, r: int, g: int, b: int)> Para definir los valores de brillo y color RGB (0 a 255)
  • setBulbEffect (s: int, r: int, g: int, b: int, mode: int, onbeat: int, offbeat: int)> Similar a setBulbColor, pero incluye el tipo de efecto y la velocidad. Para saber más, consulte la sección Efectos del protocolo de color

En esta clase también encontrará otros métodos auxiliares destinados a la verificación de la integridad de los datos y no a la interfaz de usuario.

  • convertRGBToHexaCmd (s, r, g, b)
  • convertIntToHex (número)
  • checkModeAndSpeed (modo, fuera de lo común, en marcha)
  • controlesRGBInBounds (s, r, g, b)

pyBulbServer.py

pyBulbServer expone la interfaz de la aplicación de usuario en hipervínculos RESTful usando PUT y JSON para enviar y recibir datos al pyBulbDriver. Además, el escaneo e inicialización de la conexión BLE se realiza cuando se activa el servidor.

pyBulbResource (Resource) canaliza las llamadas al servidor REST usando color y efecto para definir el comando bulb.

Ejemplo para ordenar un efecto:

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

Finalmente, pyBulbMessenger es responsable de interconectar el bot de Telegram conectado a su cliente de teléfono inteligente de Telegram. Para obtener más detalles sobre cómo configurar y conectarse a un bot de telegrama, consulte

cmdHandler (bot, update) es donde los comandos de texto se definen y conectan a PlayBulb a través de la API RESTful.

Actualmente el proyecto solo tiene texto, otro objetivo es enviar también mensajes de voz grabados que serían enviados a un reconocedor de voz para activar otros comandos (Aún No Implementado).

Paso 3: Conclusión

El diseño de la arquitectura actual tenía más que ver con la simplificación que con la escalabilidad. Aún falta conectividad de grupo, también se están investigando más aplicaciones relacionadas con enviar mensajes de texto a la bombilla, ya sea para un comando directo o para una interacción lúdica.

Al suscribirse a git repo o seguir, se recibirán más detalles sobre estas actualizaciones. El motivo de un proyecto de este tipo fue la interfaz de playBulb y la creación de una interfaz RESTful para facilitar el desarrollo en un escenario de IoT (Internet de las cosas), pero también para abrir la oportunidad de utilizar diferentes modalidades a través del telegrama de IM Client, como imágenes, voz y texto para interactuar con electrodomésticos desde una perspectiva de investigación.

Recomendado: