Monitoramento Residencial Seguro com Home Assistant no Raspberry Pi: Movimento, Alarme e Captura de Vídeo
Implantar sistema de segurança residencial confiável no Raspberry Pi com Home Assistant (HA) é direto uma vez que você entende os componentes-chave: sensor de movimento, painel de alarme e captura de vídeo baseada em câmera. Este guia percorre a configuração completa — desde fiação do sensor PIR HC‑SR501 até configuração do HA, lançamento do mjpg‑streamer e envio de alertas instantâneos por email com fotos.
Pré-requisitos
- Raspberry Pi rodando Home Assistant (recomendado 0.101.3 ou mais novo)
- Sensor de movimento PIR HC‑SR501
- Câmera USB ou CSI (qualquer que funcione com mjpg‑streamer)
- Conta de email conectada à internet (ex: Gmail) para notificações
- Familiaridade básica com YAML e Docker (se rodando HA em container)
1. Fiação do HC‑SR501 ao Pi
O sensor tem três pinos: VCC (+), GND (–) e OUT. Conecte da seguinte forma:
- VCC → Pino 5 (3.3 V)
- GND → Pino 6 (Ground)
- OUT → Pino 7 (GPIO 4)
Estas conexões permitem HA ler estado binário do sensor via plataforma rpi_gpio.
2. Instalando mjpg‑Streamer
Use este guia para configurar mjpg‑streamer e gravador FFMpeg opcional. Scripts no repositório iniciam stream e começam/param gravação sob demanda.
3. Configurando Home Assistant
Abra /usr/share/hassio/homeassistant/configuration.yaml (ou sua pasta de config HA). Adicione as seguintes seções:
# Sensor binário para PIR
binary_sensor:
- platform: rpi_gpio
ports:
7: Sensor HC‑SR501
invert_logic: false
# Painel de alarme manual
alarm_control_panel:
- platform: manual
name: Home Alarm
pending_time: 60
delay_time: 40
code: 1234
# Switches de linha de comando para controlar mjpg‑streamer
switch:
- platform: command_line
switches:
start_stop_motion_rec_timelapse:
friendly_name: 'Record motion timelapse'
command_on: "curl https://localhost/start_mjpgstrm.php && curl https://localhost/rec-motion-mjpg.php"
command_off: "curl https://localhost/stop_mjpgstrm.php && curl https://localhost/rec-motion-mjpg-stop.php"
# Comandos shell para scripts personalizados
shell_command:
take_snapshot_webcam: '/config/scripts/takeSnapshotWebcam.sh'
start_mgpg_streamer: 'curl https://localhost/start_mjpgstrm.php'
stop_mgpg_streamer: 'curl https://localhost/stop_mjpgstrm.php'
start_motion_rec: 'curl https://localhost/rec-motion-mjpg.php'
stop_motion_rec: 'curl https://localhost/rec-motion-mjpg-stop.php'
# Notificador por email (exemplo Gmail)
notify:
- name: ha_sendmail
platform: smtp
server: smtp.gmail.com
port: 587
timeout: 15
sender: <seu-email>
encryption: starttls
username: <seu-email>
password: <app-password>
recipient:
- <seu-email>
sender_name: My Home Assistant
Após editar, valide configuração via Configuration → Server Controls → Check Config, depois recarregue automações e scripts.
4. Lógica de Automação
Crie as seguintes automações em automation.yaml para integrar sensor, alarme e câmera.
# 1. Disparar quando armed_away e movimento detectado
- alias: 'Trigger alarm while armed away'
trigger:
- platform: state
entity_id: binary_sensor.sensor_hc_sr501
to: 'on'
condition:
- condition: state
entity_id: alarm_control_panel.home_alarm
state: armed_away
action:
- service: shell_command.start_mgpg_streamer
- service: shell_command.start_motion_rec
- service: alarm_control_panel.alarm_trigger
target:
entity_id: alarm_control_panel.home_alarm
# 2. Parar gravação quando alarme desarmado
- alias: 'Stop recording when alarm disarmed'
trigger:
- platform: state
entity_id: alarm_control_panel.home_alarm
to: 'disarmed'
action:
- service: shell_command.stop_mgpg_streamer
- service: shell_command.stop_motion_rec
- service: persistent_notification.create
data:
message: 'The alarm is disarmed at {{ states(''sensor.date_time'') }}'
# 3. Enviar foto no disparo do alarme
- alias: 'Email alert on alarm trigger'
trigger:
- platform: state
entity_id: alarm_control_panel.home_alarm
to: 'triggered'
action:
- service: persistent_notification.create
data:
message: 'Alarm triggered by motion sensor.'
- delay: { seconds: 4 }
- service: script.webcam_snapshot
- service: notify.ha_sendmail
data:
title: 'Intruder alert'
message: '{{now().strftime("%H:%M %Y-%m-%d")}}: Alarm triggered by motion sensor.'
data:
images:
- /config/camera/snapshot.jpg
O script.webcam_snapshot deve invocar takeSnapshotWebcam.sh, que captura frame único e armazena como /config/camera/snapshot.jpg para anexo no email.
5. Nota sobre Volume Docker
Se HA roda dentro do Docker, lembre que pasta /config do container mapeia para /usr/share/hassio/homeassistant no host. Use docker inspect homeassistant | less para confirmar bindings de volume.
6. Testando o Sistema
- Arme o alarme para
armed_awayvia UI do HA. - Dispare sensor PIR (ex: caminhando na frente dele).
- Verifique que mjpg‑streamer inicia, gravador de movimento captura clipe curto e email com snapshot é recebido.
- Desarme alarme e confirme que gravação para e notificação de desarme aparece.
Conclusão
Com estes passos você tem solução de segurança residencial autônoma, de baixo custo, que combina detecção de movimento, controle de alarme e alertas de foto instantâneos — tudo orquestrado pelo Home Assistant no Raspberry Pi.
Sinta-se à vontade para adaptar scripts e configurações de notificação ao seu ambiente. Boa automação!
Processo de manufatura
- Construa um Registrador de Temperatura com Raspberry Pi e Sensor I2C de $5
- Construa um Sensor de Temperatura Remoto com Raspberry Pi e Python – Guia Passo a Passo
- Construa Estação Meteorológica Raspberry Pi que Envia Dados Diários por Email
- Como Conectar Sensor de Temperatura DS1820 One‑Wire ao Raspberry Pi via GPIO
- Conectando Sensor Ultrassônico HC‑SR04 ao Raspberry Pi 3 – Guia Completo
- Construa um Sensor de Movimento Infravermelho DIY para Raspberry Pi – Guia Passo a Passo
- Construa uma Rede de Sensores Sem Fio Acessível para Sua Casa
- Controle um LED com Sensor de Movimento PIR no Raspberry Pi
- Construa um Alarme de Água Headless para Raspberry Pi 2 com Adafruit T-Cobbler Plus
- Construa um Sensor de Umidade do Solo de Baixo Custo para Irrigação Inteligente com Raspberry Pi