Índice:

TextPlayBulb: PlayBulb com REST ativado usando Raspberry Pi 3, BLE e Telegram: 3 etapas
TextPlayBulb: PlayBulb com REST ativado usando Raspberry Pi 3, BLE e Telegram: 3 etapas

Vídeo: TextPlayBulb: PlayBulb com REST ativado usando Raspberry Pi 3, BLE e Telegram: 3 etapas

Vídeo: TextPlayBulb: PlayBulb com REST ativado usando Raspberry Pi 3, BLE e Telegram: 3 etapas
Vídeo: Fitbit Flyer headphones review 2024, Julho
Anonim
TextPlayBulb: PlayBulb com REST ativado usando Raspberry Pi 3, BLE e Telegram
TextPlayBulb: PlayBulb com REST ativado usando Raspberry Pi 3, BLE e Telegram

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:

  1. pyBulbDriver: Conecte-se ao PlayBulb via BLE gatttool e python.
  2. pyBulbServer: Usando o pyBulbDriver para expor o controle de playbulb por meio da API REST.
  3. 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: