Índice:
Vídeo: TextPlayBulb: PlayBulb com REST ativado usando Raspberry Pi 3, BLE e Telegram: 3 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
Este instrutível mostra como conectar a uma lâmpada LED bluetooth PlayBulb Color usando Python, uma biblioteca Raspberry Pi 3 e Bluetooth e estender os controles por meio de uma API REST para um cenário de IoT e, como um salto, o projeto também mostra como estender o API REST para controlar seu PlayBulb em um cliente de texto IM, por exemplo Telegram, como falar com sua casa automatizada via texto.
Este projeto é construído em 3 módulos:
- pyBulbDriver: Conecte-se ao PlayBulb via BLE gatttool e python.
- pyBulbServer: Usando o pyBulbDriver para expor o controle de playbulb por meio da API REST.
- pyBulbMessenger: Conectando-se a um bot de telegrama para enviar e receber comandos via cliente de telegrama instalado em qualquer smartphone e usando a API REST para emitir comandos para o PlayBulb.
Você pode clonar o projeto por meio do repositório git:
Objetivo do Projeto:
Para criar uma ferramenta básica para interagir com sua lâmpada por meio de diferentes modalidades, como mensagens de texto, por enquanto, cenários futuros podem envolver comandos de voz, gesticular para a lâmpada … etc.
Outros recursos usados para criar este instrutível:
- Protocolo PlayBulb Color Bluetooth:
- Conectando Python ao Playbulb via Bluetooth:
- Configurando o bot do telegrama:
Contribuição
O pyBulbDriver foi estendido para ser mais flexível e parametrizado para facilitar a extensão futura, criando um cenário para permitir que você mexa nas mensagens de texto da sua lâmpada. Interface simples para testar e mexer.
Limitação
O driver é escrito para PlayBulb Color, para outros tipos de PlayBulb, por exemplo, Original ou vela, o código do bluetooth no pyBulbDriver precisa ser alterado de acordo com o protocolo mencionado.
Você precisa registrar uma conta de telegrama, e obter uma chave de API, que você adiciona no pyBulbMessenger.py, siga a configuração do bot de telegrama em Outros recursos.
Etapa 1: Configurando o Projeto
1. Obtendo sua chave API do Telegram
> Siga as instruções atuais para obter sua chave de API
> Adicione sua chave de API à variável api em pyBulbMessenger.py
2. Configurando o nome do PlayBulb no pyBulbDriver
> Para que o gatttool encontre o dispositivo de gravação, defina o nome do dispositivo a ser verificado usando pyBulbDriver.scanForBulb ("PLAYBULB COLOR"). Um exemplo pode ser encontrado em pyBulbServer.py para configurar seu servidor REST
3. Para iniciar o projeto
> Você precisa iniciar o pyBulbServer.py primeiro, em seguida, seguido por pyBulbMessenger.py para a mensagem de texto. Você pode testar os comandos pyBulbServer usando CURL.
4. Material necessário:
> Raspberry Pi 3 e PlayBulb Color ou PlayBulb Candle
> Instalando o Telegram para Android ou iOS
5. Instalação do Rasberry Pi 3 LE Bluetooth:
www.elinux.org/RPi_Bluetooth_LE
Etapa 2: Examinando o Código
pyBulbDriver.py
pyBulbDriver contém as classes de driver para conectar ao PlayBulb via BLE
pyBulbDriver pode ser usado também para quaisquer outros projetos genéricos, pois contém apenas o código para verificar e configurar conexões playBulb.
As principais APIs para interface do aplicativo do usuário:
- scanForBulb (devicename: String)> Para procurar o PlayBulb ou PlayBulbs por meio do nome do dispositivo
- setBulbColor (s: int, r: int, g: int, b: int)> Para definir os valores de brilho e cor RGB (0 a 255)
-
setBulbEffect (s: int, r: int, g: int, b: int, modo: int, onbeat: int, offbeat: int)> Semelhante a setBulbColor, mas inclui o tipo de efeito e a velocidade. Para saber mais, verifique a seção de efeitos do protocolo de cores
Nesta classe, você também encontrará outros métodos auxiliares destinados à verificação da integridade dos dados e não à interface do usuário
- convertRGBToHexaCmd (s, r, g, b)
- convertIntToHex (número)
- checkModeAndSpeed (modo, offbeat, onbeat)
- checksRGBInBounds (s, r, g, b)
pyBulbServer.py
pyBulbServer expõe a interface do aplicativo do usuário em hiperlinks RESTful usando PUT e JSON para enviar e receber dados para o pyBulbDriver. Além disso, a varredura e a inicialização da conexão BLE são feitas quando o servidor é ativado.
pyBulbResource (Resource) canaliza as chamadas para o servidor REST usando cor e efeito para definir o comando bulb.
Exemplo para comandar um efeito:
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, o pyBulbMessenger é responsável por fazer a interface do bot do Telegram conectado ao seu cliente de telefone inteligente de telegrama. Para obter mais detalhes sobre como configurar e se conectar a um bot de telegrama, verifique
cmdHandler (bot, update) é onde os comandos de texto são definidos e conectados ao PlayBulb por meio da API RESTful.
Atualmente o projeto possui apenas texto, outro objetivo é enviar também mensagens de voz gravadas que seriam enviadas para um reconhecedor de fala para ativar outros comandos (Ainda Não Implementado).
Etapa 3: Conclusão
O design da arquitetura atual era mais sobre simplificação do que escalabilidade. Ainda sem conectividade de grupo, também mais aplicações relacionadas ao envio de mensagens de texto para a lâmpada, seja para comando direto ou interação lúdica, ainda estão em pesquisa.
Inscrevendo-se no git repo ou seguindo, mais detalhes virão sobre essas atualizações. A razão para tal projeto foi fazer a interface do playBulb e criar uma interface RESTful para facilitar o desenvolvimento em um IoT (cenário de internet das coisas), mas também para abrir a chance de usar diferentes modalidades por meio do telegrama do cliente IM, como imagens, voz e texto para interagir com aparelhos de uma perspectiva de pesquisa.
Recomendado:
DIY Alarm Bike Lock (choque ativado): 5 etapas (com fotos)
Bloqueio de bicicleta com alarme DIY (choque ativado): Neste projeto, mostrarei como criar um bloqueio simples de bicicleta com alarme ativado por choque. Como o nome indica, ele cria um som de alarme quando sua bicicleta está sendo movimentada com permissão. Ao longo do caminho, aprenderemos um pouco sobre piezoele
Atirador de água ativado por soco: 5 etapas
Punch Activated Water Shooter: Se você é um fã de uma peça só. Você deve conhecer Jinbei. Jinbei é um personagem da série One Piece, criada por Eiichiro Oda. Jinbei é um mestre excepcionalmente poderoso do Karate Homem-Peixe. Uma de suas técnicas é Five Thousand Brick Fist. Isto é
Interruptor de lâmpada ativado por movimento: 3 etapas
Interruptor de lâmpada ativado por movimento: Sempre que saímos de nossa mesa ou sala, na maioria das vezes nos esquecemos de desligar as luzes de lá. Isso causa perda de energia elétrica e incremento na conta de energia elétrica. Mas e se as luzes apagarem automaticamente, depois que você sair da sala? Sim em
Construir um sprinkler ativado remotamente usando PiFace e Ubidots: 13 etapas
Construir um aspersor ativado remotamente usando PiFace e Ubidots: Este é um exemplo legal que ensina como usar um Raspberry Pi, um PiFace e Ubidots para regar seu jardim de longe. Você poderá controlar uma eletroválvula remotamente para regar suas plantas de qualquer lugar, apenas usando seu telefone
Sentinela ativado por movimento: 5 etapas
Sentinela ativada por movimento: " Este instrutível foi criado em cumprimento ao requisito de projeto do Makecourse na University of South Florida (www.makecourse.com) " Olá, meu nome é Ruben Duque. Estudante de engenharia mecânica na University of South Flor