Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Sensor de movimento, alarme, gravação de vídeo em HA no Raspberry Pi


Conectando o sensor de movimento, alarme e gravação de vídeo no Home Assistant no Raspberry pi.

Eu gostaria de contar a você sobre minha pequena experiência de trabalho com o Home Assistant (doravante - HA) no Raspberry pi. Além disso, falarei sobre como conectar a funcionalidade de registro de vídeo, o sensor de movimento e, consequentemente, a função de segurança doméstica com o recebimento de fotos por e-mail em caso de ativação de “segurança”.

Claro, um dos motivos é o desejo de entender, a partir de seus comentários, o que eu “fiz de errado” ao implementar este cenário.

Existem três maneiras de configurar a funcionalidade acima:“sem problemas”, “curto” e “independente”. No primeiro caso, você pode baixar a imagem desenvolvida no site https://ViaMyBox.com/downloadpage

para o seu Raspberry pi, e você pode ver como tudo fica na forma já configurada. No segundo caso, você pode baixar o zip do site ou do projeto github, instalá-lo e, em seguida, instalar a imagem docker HA através do utilitário (sudo via-setup.sh) para ver como tudo está configurado. E, finalmente, a terceira forma é configurar “tudo do seu jeito”:pegue algo útil do site ou do projeto githab, ou deste tutorial. Links para tudo isso você encontrará no final do artigo.

Suponha que você já tenha um Home Assistant (HA) em execução. Neste artigo, consideraremos apenas os aspectos da criação de configurações do yaml e da descrição da sequência de regras e condições que levam a uma ação específica. No nosso caso, a ação é a conexão do modo “segurança” e o acionamento do script, que começa a tirar fotos 5 segundos após o sensor de movimento ser ativado. E, como resultado, o Home Assistant envia as fotos capturadas pelo correio. Não sou um especialista em yaml ou em criar configurações para o Home Assistant, mas seguindo os exemplos de trabalho, obtive uma configuração de trabalho que desejo compartilhar.

Todos os arquivos que entrarmos em contato, colocarei no final do artigo para uma consideração mais conveniente. Não vou tocar em como os scripts de gravação de vídeo funcionam em bash ou python neste exemplo. Vamos falar apenas sobre o Home Assistant. Mas se você tiver alguma dúvida - seja bem-vindo!

No final, eu tenho tudo parecido com isto (destaque em vermelho o que consideraremos no artigo):

Naturalmente, uso o Raspberry pi como plataforma. E meu caminho para os arquivos de configuração é / usr / share / hassio / homeassistant /. O caminho para seus arquivos de configuração pode ser diferente do meu caminho. Naquela época, eu tinha o Home Assistant 0.101.3. Estaremos interessados ​​nos arquivos de configuração neste diretório:configuration.yaml e automação.yaml.

Após cada alteração nestes arquivos, é importante lembrar que você precisará verificar a configuração após nossas alterações para possíveis erros cometidos nela. Isso é feito no painel do Home Assistant -> Configuração -> Controles do servidor -> Verificar configuração. E então, no mesmo lugar, fazemos Reload Automations e Reload Scripts, se a verificação foi bem-sucedida. E, em caso de dúvida, o Gerenciamento do Servidor reinicia as atualizações de configuração exatamente na mesma guia.

O sensor de movimento HC-SR501 é conectado ao barramento Raspberry pi GPIO. É necessário conectar os três fios de contato ao GPIO corretamente, e poderemos usar nosso sensor em ação. O sensor possui três contatos:power gcc (+), zero gnd (-), contato de controle (dados). Depois de ler a descrição do GPIO, eu os conectei ao meu raspberry da seguinte maneira. Liguei o HC-SR501 ao conector GPIO:pir # 2 - 5.5 vvcc; pino # 26 (13 filas) - contato de dados e pino # 6-GND (-) do sensor.

Como fonte de fotos, uso uma câmera USB ou uma câmera csi em conjunto com o mjpg-streamer. Não descreveremos como instalar e configurar o mjpg-streamer no Raspberry pi neste artigo. Existem muitos exemplos de instalação rápida na Internet. No entanto, quero dizer que uso os dados deste projeto https://github.com/cncjs/cncjs/wiki/Setup-Guide:-Raspberry-Pi-%7C-MJPEG-Streamer-Install-&-Setup-&-FFMpeg-Recording A instalação deste módulo também é descrita em detalhes lá. Ou use qualquer método que seja conveniente para você obter fotos e vídeos. Afinal, cabe a você decidir qual script bash anexar ao HA.

Vamos descrever nosso sensor agora em configuration.yml, digamos, por meio da linha de comando:

sudo nano /usr/share/hassio/homeassistant/configuration.yaml

embora usar o notepad ++ com o winscp possa ser mais conveniente.

Vamos descrever a sequência de configurações para HC-SR501 da seguinte forma:
  binary_sensor:- plataforma:rpi_gpio #name:HC-SR501 portas:7:Sensor HC-SR501 invert_logic:false  

Deve-se notar que aqui um ponto importante é desempenhado pelas configurações nas linhas que descrevem a conexão aos contatos de controle (dados) dos sensores:pino # 7

portas:

7:Sensor HC-SR501

O Home Assistant possui uma ferramenta integrada para habilitar o recurso de segurança residencial. Vamos descrevê-lo em nosso configuration.yaml, usando a descrição:https://www.home-assistant.io/integrations/manual/
  alarm_control_panel:- plataforma:nome do manual:Alarme inicial pendente_time:60 atraso tempo 40 acionado:pendente_time:0 código:1234  

Essa configuração significa que temos 60 segundos para sair de casa (após esse tempo, o alarme irá ligar) e 40 segundos para desligá-lo (com a senha 1234) quando voltarmos para casa. Por alguma razão, você sempre sai por mais tempo do que chega.)

Vamos agora descrever o mecanismo para habilitar e desabilitar a fotografia quando o sensor de movimento é acionado em nosso configuration.yaml (mais informações sobre o switch - plataforma command_line podem ser encontradas aqui https://www.home-assistant.io/integrations/switch .linha de comando/):
  - platform:command_line switches:start_stop_motion_rec_timelapse:friendly_name:'Gravar vídeo de lapso de tempo de movimento' command_on:'curl http://localhost/start_mjpgstrm.php &&curl http:// localhost // rec-motion-mjpg.php 'command_off:' curl http://localhost/stop_mjpgstrm.php &&curl http://localhost/rec-motion-mjpg-stop.php ' 

Aqui, vinculamos os comandos command_on enable e command_off disable aos nossos scripts que controlam a gravação da câmera. Neste caso, quando você ativa command_on, 2 scripts são executados sequencialmente. Isso inicia o mjpg-streamer e começa a gravar no sensor de movimento. O acesso aos scripts bash passa pelo arquivo php do site de trabalho no Raspberry pi. Para fazer isso, configurei o nginx e o acesso à web, e ao acessar pelo navegador como http:// /start_mjpgstrm.php deve executar nosso script php.

Não consideramos a configuração do acesso à web neste artigo. Claramente, isso não é seguro, mas devido ao fato de ter HA no docker, sou confrontado com o fato de ter um ambiente docker isolado. E o “mundo externo” do SO eu posso ver acessando meu site via php. Provavelmente, existem várias soluções certas do docker ou do HA guru. Por favor, escreva, seria interessante saber!

Vou deixar a lista desses scripts no artigo e não vamos insistir neles. Neste artigo, pretendo seguir apenas a formação de uma sequência de ações no Assistente Doméstico.

Tudo isso é colocado no objeto start_stop_motion_rec_timelapse, que será nosso switch visual, com o qual faremos a gestão da gravação das fotos quando o sensor de movimento for acionado.

Seremos capazes de visualizar esses objetos criados por nós na guia Home Assistant-> Overview, alternando a ativação do modo Configure UI configuration no canto superior direito

Pré-reinicie o HA no navegador na guia “Configuração -> Controle do servidor” para selecionar nosso configuration.yaml.

Em seguida, selecione o sinal de adição amarelo na parte inferior da janela do navegador, clique no cartão Entidades e vincule nossos objetos criados aos mapas.

Para o nosso sensor, selecione a placa do sensor. Isso parecerá assim:

Como você pode ver na imagem, o segundo campo de entidade contém a opção descrita acima:switch.start_stop_motion_rec_timelapse.

Permite-nos ligar e desligar a gravação do nosso sensor de movimento, independentemente de a função “segurança doméstica” estar ou não activada. E, em geral, já deve funcionar após todas as ações descritas acima.

E, consequentemente, adicionamos o mapa do painel de alarme:

Há outro ponto interessante aqui. Eu uso o Home Assistant como um contêiner docker. Nesse sentido, o caminho para nosso script será diferente do caminho real para o arquivo de script. Afinal, a estrutura do arquivo dentro do contêiner é virtualizada e vinculada à estrutura real do arquivo por meio de volumes montados no docker. Isso se parece, por exemplo, com este:Caminho dentro do contêiner:/ config / scripts / Caminho dentro do sistema operacional:/ usr / share / hassio / homeassiatnt / scripts. Portanto, observe as configurações do seu contêiner, como esses volumes são configurados no campo Binds. Se você tiver HA aí.
  sudo docker inspect homeassistant | menos  

Quando o sensor de movimento é acionado, no momento em que o alarme é acionado:Quero que além de começarmos a tirar fotos rápidas (timelapsesnapshots), receba um aviso pelo correio e uma foto. Eu paralelizei os processos. No primeiro caso, o registro de fotos (timelapsesnapshots) ocorre alguns segundos após o sensor ser acionado. Para fazer isso, executo mjpg-streamer curl http://localhost/start_mjpgstrm.php, inicio php:сurl http://localhost/rec-motion-mjpg.php. Ele, por sua vez, executa o script python mov.py. Todos os arquivos e pacotes descritos estão disponíveis no final do artigo pelo link. E outro script takeSnapshotWebcam.sh tira uma foto que eu envio por e-mail. Eu descrevo esses scripts em nosso configuration.yml desta forma:
  shell_command:#starting our mjpg-streamer start_mgpg_streamer:' curl http://localhost/start_mjpgstrm.php'#stopping mjpg-streamer stop_mgpg_streamer:'curl http://localhost/stop_mjpgstrm.php'#start o script que gera instantâneos por 5 segundos start_motion_rec:' curl http:// localhost / rec-motion-mjpg.php '# pare stop_motion_rec:' curl http://localhost/rec-motion-mjpg-stop.php ' 

No mesmo arquivo configuration.yml que descreve nosso objeto para envio:
  notificar:- nome:ha_sendmail plataforma:smtp # se o e-mail estiver no servidor gmail:smtp.gmail.com porta:587 tempo limite:15 # de quem enviamos o remetente:criptografia [email protected]:starttls username:[email protected] password:passwd # para quem enviamos (você pode usar uma caixa e enviar para você mesmo, porque não) destinatário:- [email protected] sender_name:My Home Assistant  

Ponto importante! Para que nosso HA seja capaz de se conectar e enviar emails (o campo do remetente), devemos permitir que nosso serviço HA use esta caixa de correio no gmail. Como fazer este link aqui:https://myaccount.google.com/lesssecureapps

Além disso, descrevemos o próprio mecanismo de automação ao habilitar o alarme home_alarm em Automation.yaml:
  #primeiro pacote de ação (alias “acionado pelo sensor se a segurança estiver habilitada” - alias:'Disparar alarme enquanto armado' # alias é acionado quando o sensor está no Acionador de posição “ligado”:​​- plataforma:estado entity_id:binary_sensor.sensor_hc_sr501 para:'ligado' # desde que o modo de segurança esteja habilitado na ausência de pessoas em casa “armado longe” condição:- condição:estado entity_id:alarm_control_panel.home_alarm estado:armado_away # e, em seguida, executa a ação de ação:#Running mjpg-streamer (se desativado) - serviço:shell_command.start_mgpg_streamer # Executando um script que grava da câmera - service:shell_command.start_motion_rec # Alterar a visualização de nossa "Segurança doméstica "cartão no painel HA para a posição“ alarme acionado ”- serviço:alarm_control_panel.alarm_trigger entity_id:alarm_control_panel.home_alarm  

O próximo conjunto de condições e ações é enviar uma mensagem de console quando a “segurança” for desligada e desligar nossos scripts de gravação de movimento.
  - alias:'Enviar notificação quando o alarme for desarmado' gatilho:- plataforma:estado entity_id:alarm_control_panel.home_alarm para:'desarmado' ação:- service:shell_command.stop_mgpg_streamer - service:shell_command.stop_motion_rec - service:persistent_notification.create data:mensagem:O alarme está desarmado em {{states ('sensor.date_time')}} " 

E, por fim, o terceiro link - envie um e-mail com uma foto:
  - alias:'Enviar notificação quando o alarme disparado' acionador:- plataforma:estado entity_id:alarm_control_panel.home_alarm para:'acionado' ação:- serviço:persistent_notification.create data :mensagem:Notificação quando o alarme disparar. Sensor de movimento HC-SR501 detectado. - atraso:segundos:4 # execute nosso script para criar um único script - serviço:script.webcam_snapshot # e consulte o objeto descrito em configuration.yaml:notificar.ha_sendmail - serviço:notificar.ha_sendmail dados:título:'Alerta de intruso' mensagem:'{{now (). strftime ("% H:% M% Y-% m-% d")}}:Notificação quando o alarme disparou. Sensor de movimento HC-SR501 detectado. ' data:images:#link para o script já feito pelo script.webcam_snapshot - /config/camera/snapshot.jpg  

Lembre-se de que, em arquivos yaml, a marcação de linha é importante e os caracteres de espaço antes dos comandos desempenham um papel importante na formação de blocos de código e em sua estrutura. Verifique todas as alterações em seu yaml através do Home Assistant (doravante HA) Configuração -> Controles do servidor -> Verificar configuração

Parece ser tudo. E o seu pi de framboesa se transforma em algo elegante! ..)

Aqui está - automação de HA funcionando, configurada com suas próprias mãos! Não se esqueça de me escrever tudo o que você pensar sobre isso!

E, se depois de tudo ler até o fim, aqui estão os links prometidos:

Imagem e zip:https://viamybox.com/downloadpage

Projeto Github:https://github.com/viatc/viamybox

Os arquivos de configuração são descritos aqui:configuration.yaml, automation.yaml, takeSnapshotWebcam.sh, rec-motion-mjpg.php, mov.py

hc-sr501, alarme doméstico, assistente doméstico, framboesa pi, видеорегистрация, датчик движения, подключение сигнализации, умный дом

Sem categoria

Fonte:sensor de movimento, alarme, gravação de vídeo em HA no Raspberry Pi

Processo de manufatura

  1. Registrador de temperatura Raspberry Pi
  2. Sensor de temperatura Python e Raspberry Pi
  3. Estação meteorológica Raspberry Pi
  4. Sensor de temperatura de 1 fio DS1820 em Raspberry Pi (GPIO diretamente)
  5. Sensor ultrassônico (HC-SR04) + Raspberry Pi
  6. Sistema de sensor de movimento infravermelho faça você mesmo para Raspberry Pi
  7. Construindo uma rede de sensores sem fio em sua casa
  8. Sensor de movimento usando Raspberry Pi
  9. Alarme de água Raspberry pi 2 com t sapateiro mais
  10. Sensor de umidade do solo Raspberry Pi