Índice:

Campainha inteligente para assistente doméstico: 4 etapas
Campainha inteligente para assistente doméstico: 4 etapas

Vídeo: Campainha inteligente para assistente doméstico: 4 etapas

Vídeo: Campainha inteligente para assistente doméstico: 4 etapas
Vídeo: ATENDA DE QUALQUER LUGAR! Campainha Inteligente Tuya compatível com Amazon Alexa e Google Home 2024, Novembro
Anonim
Smart Doorbell for HomeAssistant
Smart Doorbell for HomeAssistant

Então, eu queria uma campainha com os seguintes recursos:

  • Vídeo da porta
  • Áudio bidirecional
  • Dois botões
  • Integração com tablet montado na parede mostrando a IU do HomeAssistant

Algumas opções surgiram como Doorbird (caro e eles não têm chamada de áudio bidirecional usando HTML5) e Campainha (mas eu não gosto de assinatura, campainha baseada em nuvem)

Como desenvolvedor e consertador, já terminei alguns projetos, mas este foi de longe um dos mais difíceis de concluir. Tive muitos problemas para fazer o áudio bidirecional funcionar a um ponto em que vocês pudessem se entender. Principalmente porque há muito eco,…. A ideia vem do DoorPi, mas com o protocolo SIP, tive muito eco que resultou em não entendimento um do outro.

Como a minha campainha está totalmente protegida das intempéries, podemos fazer a frente em madeira cortada a laser.

Suprimentos

  • Raspberry Pi 3 B ou 3B + (não opte por um Banana Pi com PoE integrado, pois ele não é compatível com a interface de câmera Raspberry Pi CSI padrão) = € 33, 67
  • Cartão Micro SD = € 2, 69
  • Câmera fisheye Raspberry Pi = € 14, 14
  • Adaptador PoE = € 4, 94
  • RaspiAudio Mic + = € 24, 69
  • Acesso à impressora 3D (e cortador a laser)
  • Botões para a campainha
  • Muito tempo!

Isso soma um total de € 80,13.

Fora do escopo, a estação interna:

  • Configuração do HomeAssistant com um MQTT Broker
  • Tablet Android montado na parede

Etapa 1: configurar o Raspberry Pi

Eu recomendo fortemente que você use ethernet em vez de Wifi. Minha qualidade de áudio melhorou muito devido a isso. Também usaremos UV4L, pois ele oferece suporte a webrtc e, portanto, tem cancelamento de eco embutido. O Doorpi usa linphone, um cliente SIP e não consegui fazer o cancelamento de eco funcionar.

  • Baixe Raspbian Stretch Lite e instale-o no cartão Micro SD. Assegure-se de que você:

    habilite o ssh criando um arquivo ssh vazio na partição de inicialização

  • Execute os seguintes comandos:

sudo apt-get update

sudo apt-get upgrade

Câmera

Habilite a câmera via raspi-config e certifique-se de que a GPU tenha pelo menos 192 MB de ram.

RaspiAudio

Siga o guia de instalação do RaspiAudio encontrado em

UV4L

Siga o guia de instalação do UV4L encontrado em

Ajuste o arquivo /etc/uv4l/uv4l-raspicam.conf e certifique-se de ajustar as seguintes configurações:

A configuração mais notável é probaby --enable-webrtc-video = no: isso ocorre porque sempre faremos streaming do vídeo de uv4l usando mjpeg codificado em h264.

Usando os seguintes arquivos localizados em / usr / share / uv4l / demos / doorpi /, você já pode testar o áudio e o vídeo bidirecionais.

  • index.html (renomeie de index.html5, necessário renomear devido a requisitos de upload de instructables)
  • main.js
  • signalling.js

Navegue até https:// [ip-of-raspberrypi]: 8888 e teste se você consegue fazer o áudio bidirecional funcionar.

pi-mqtt-gpio

A maneira mais fácil que encontrei de fazer os botões da campainha funcionarem é prendê-los ao pi do raspberry e usar o pi-mqtt-gpio para integrá-lo ao HomeAssistant.

Meu arquivo de configuração é o seguinte:

mqtt: host: xxxx porta: 1883 usuário: [nome de usuário] senha: [senha] topic_prefix: "campainha" gpio_modules: - nome: módulo raspberrypi: limpeza raspberrypi: sim digital_inputs: - nome: módulo button_1: pino raspberrypi: 17 on_payload: " Off "off_payload:" On "pullup: sim suspenso: não - name: button_2 módulo: raspberrypi pin: 27 on_payload:" Off "off_payload:" On "pullup: sim suspenso: não

Observe que, como há mais pinos de aterramento disponíveis como pinos de 3,3 V, escolhi usar os pinos GPIO pullup e, portanto, inverti minhas mensagens MQTT.

uv4l-raspicam.conf

driver = raspicam
auto-video_nr = sim
frame-buffers = 4
codificação = h264
largura = 1024
altura = 768
taxa de quadros = 10
rotação = 270 #dependendo da configuração do seu hardware
opção do servidor = --port = 9090
opção do servidor = --bind-host-address = 0.0.0.0
opção do servidor = --use-ssl = sim
server-option = --ssl-private-key-file = / etc / uv4l / selfsign.key
server-option = --ssl-certificate-file = / etc / uv4l / selfsign.crt
opção do servidor = --enable-webrtc-video = no
opção do servidor = --enable-webrtc-audio = sim
opção do servidor = --webrtc-vad = sim
opção do servidor = --webrtc-echo-cancellation = sim
opção do servidor = --webrtc-max-playout-delay = 34
server-option = --enable-www-server = yes
server-option = --www-root-path = / usr / share / uv4l / demos / doorpi /
server-option = --www-index-file = index.html
opção do servidor = --www-port = 8888
opção do servidor = --www-bind-host-address = 0.0.0.0
opção do servidor = --www-use-ssl = sim
server-option = --www-ssl-private-key-file = / etc / uv4l / selfsign.key
server-option = --www-ssl-certificate-file = / etc / uv4l / selfsign.crt
opção do servidor = --www-webrtc-signaling-path = / webrtc

visualizar rawgistfile1.txt hospedado com ❤ por GitHub

Etapa 2: caixa da campainha

  • doorbell-back v1.stl: caixa impressa em 3D para raspberry pi e adaptador PoE
  • campainha frontal v1.svg: placa frontal cortada a laser
  • doorbell-micro v1.stl: caixa impressa em 3D contendo mirofone envolto em isolamento acústico, colado na placa frontal

Aparafuse o raspberry pi nos suportes de parafuso anexados e coloque o adaptador PoE no canto superior direito. Coloque a câmera e o microfone no lugar (certifique-se de retirar o microfone e certifique-se de que o orifício do microfone esteja bem alinhado com o orifício na placa frontal).

Etapa 3: Integração do HomeAssistant

Os seguintes arquivos permitem a integração do HomeAssistant:

  • doorpi.yaml: pacote contendo tudo relacionado à campainha, incluindo ouvir mensagens MQTT e automações para tocar a campainha quando a campainha é pressionada
  • www / doorpi / doorpi-card.js: cartão lovelace doorpi que precisa do signalling.js e doorpi-camera-view.js

IMPORTANTE: Observe que você deve executar o HomeAssistant com https / ssl, caso contrário, o Chrome não permitirá que você acesse os dispositivos de áudio.

Etapa 4: Chamada de campainha feliz

Pronto, agora você deve conseguir ligar para alguém pela campainha e o HomeAssistant mudará automaticamente para o cartão da campainha. Lá você pode decidir aceitar ou ignorar a campainha.

Recomendado: