Tabla de contenido:
Video: TextPlayBulb: PlayBulb habilitado para REST usando Raspberry Pi 3, BLE y Telegram: 3 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
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:
- pyBulbDriver: conéctese a PlayBulb a través de BLE gatttool y python.
- pyBulbServer: uso de pyBulbDriver para exponer el control de la bombilla a través de la API REST.
- 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:
OpenLogger: un registrador de datos portátil de código abierto, de alta resolución, habilitado para Wi-Fi: 7 pasos
OpenLogger: un registrador de datos portátil, de código abierto, de alta resolución, habilitado para Wi-Fi: OpenLogger es un registrador de datos portátil, de código abierto, de bajo costo y alta resolución diseñado para proporcionar mediciones de alta calidad sin requerir software costoso o software de escritura desde cero. Si es ingeniero, científico o entusiasta que no
IoT APIS V2 - Sistema autónomo de riego de plantas automatizado habilitado para IoT: 17 pasos (con imágenes)
IoT APIS V2 - Sistema autónomo de riego de plantas automatizado habilitado para IoT: este proyecto es una evolución de mi instructable anterior: APIS - Sistema de riego de plantas automatizado He estado usando APIS durante casi un año y quería mejorar el diseño anterior: Capacidad para monitorear la planta de forma remota. Así es como
Control remoto habilitado para Alexa (usando WEMO D1 Mini): 3 pasos
Control remoto habilitado para Alexa (usando WEMO D1 Mini): esta es una versión actualizada de una publicación anterior: https: //www.instructables.com/id/Voice-Activated-R … En la versión anterior, usé un Geetech módulo de voz para controlar un control remoto de tipo abre-puerta de garaje regular. En este instructable he reemplazado el vo
Sistema de seguridad para el hogar DSC habilitado para Internet: 22 pasos
Sistema de seguridad para el hogar DSC habilitado para Internet: modifique un sistema de seguridad para el hogar DSC existente para que esté habilitado para Internet y se autocontrole. Este instructivo asume que tienes una Raspberry Pi en funcionamiento. Ten en cuenta que esta implementación tiene las siguientes deficiencias: Si un ladrón corta el cable DSL entrante
Uso de su teléfono Sony Ericsson habilitado para Bluetooth para controlar su computadora: 6 pasos
Uso de su teléfono Sony Ericsson habilitado para Bluetooth para controlar su computadora: He estado leyendo sobre instructivos por un tiempo y siempre quise hacer algunas de las cosas sobre las que la gente ha escrito, pero me he encontrado mirando cosas que son difíciles de hacer porque son realmente difíciles de hacer, o el