Índice:

Câmera de segurança externa com recursos completos baseada em Raspberry Pi: 21 etapas
Câmera de segurança externa com recursos completos baseada em Raspberry Pi: 21 etapas

Vídeo: Câmera de segurança externa com recursos completos baseada em Raspberry Pi: 21 etapas

Vídeo: Câmera de segurança externa com recursos completos baseada em Raspberry Pi: 21 etapas
Vídeo: Xeoma: powerful video surveillance in Raspberry Pi and other ARM-based micro computers 2024, Julho
Anonim
Câmera de segurança externa com recursos completos baseada em Raspberry Pi
Câmera de segurança externa com recursos completos baseada em Raspberry Pi
Câmera de segurança externa com recursos completos baseada em Raspberry Pi
Câmera de segurança externa com recursos completos baseada em Raspberry Pi
Câmera de segurança externa com recursos completos baseada em Raspberry Pi
Câmera de segurança externa com recursos completos baseada em Raspberry Pi
Câmera de segurança externa com recursos completos baseada em Raspberry Pi
Câmera de segurança externa com recursos completos baseada em Raspberry Pi

Se você teve experiências decepcionantes com webcams baratas, seu software mal escrito e / ou hardware inadequado, você pode facilmente construir uma webcam semi-profissional com um Raspberry Pi e alguns outros componentes eletrônicos fáceis de encontrar em que executa o PiWebcam, um dispositivo gratuito e fictício Software à prova de balas que transforma com apenas um clique em seu dispositivo em uma webcam poderosa e cheia de recursos.

Etapa 1: Inspiração

Inspiração
Inspiração

Depois de lutar contra o software limitado da maioria das câmeras de segurança baratas no mercado (por exemplo, visão noturna ruim, aplicativo obscuro para a configuração, nenhuma gravação offline, detecção de movimento imprecisa, etc.), decidi construir algo sozinho e Raspberry Pi olhou para mim a plataforma mais adequada.

Mesmo que já exista um bom número de projetos para usar um Raspberry Pi como webcam, eu pessoalmente considero-os muito complexos e, de modo geral, mais soluções ad-hoc para usuários avançados do que produtos finitos.

No entanto, a maioria deles se concentra apenas no software e não no hardware, o que é igualmente importante para o caso de uso de câmeras de segurança.

Etapa 2: Hardware

Hardware
Hardware

Para construir uma webcam interna, um Raspberry Pi simples (qualquer modelo) e uma câmera acoplada (qualquer modelo) com LEDs IR para visão noturna funcionariam perfeitamente. Já existem muitos kits disponíveis com essa combinação, então, se é isso que você deseja alcançar, compre um e pule para a etapa 12.

O mesmo hardware, porém, não caberia em uma câmera externa: a foto tirada com a câmera Raspberry com infravermelho, fora de sua casa, ficaria em sua maioria rosada (devido à luz infravermelha sendo capturada pela câmera) e com o pequeno out-of-the LEDs infravermelhos de caixa de diálogo você não conseguiria ver nada além de 1 metro / 3 pés.

Para resolver o primeiro problema, precisamos de algo chamado filtro IR CUT mecânico, que basicamente devolve as cores verdadeiras à luz do dia, mas ainda permite capturar as luzes IR durante a noite. A maioria dos dispositivos no mercado tem dois fios: um pulso curto em um fio moverá o filtro IR na frente do sensor (modo diurno), um pulso curto no outro fio removerá o filtro (modo noturno). Eles geralmente operam entre 3v e 9v e, se conectados ao nosso Raspberry, podemos ter controle total sobre quando alternar para o modo noturno. No entanto, o filtro IR Cut não pode ser controlado diretamente de um pino do Raspberry, pois a parte mecânica interna requer muito mais corrente do que a que o Pi pode fornecer. Vamos contornar isso usando um H-Bridge alimentado pelo Raspberry's 5v e controlado por dois pinos.

Para resolver o segundo problema, precisaríamos de uma placa de LEDs IR mais potente para obter uma visão noturna decente. Pranchas com menos leds, mas maiores, são preferíveis àquelas com muitos leds minúsculos. A maioria das placas no mercado também tem um LDR (Light Dependent Resistor) conectado que é usado para determinar quando ligar os LEDs se estiverem apagados. Eles geralmente operam a 12v e têm um pequeno plugue (rotulado como "IRC") que pode ser usado para conectar um filtro de corte de infravermelho. No entanto, nenhum pulso é enviado diretamente por este plugue, mas durante a noite (LEDs acesos), uma queda de tensão (geralmente) de 5 V entre os fios e o terra é criada. Se conectarmos um dos fios ao nosso Raspberry e monitorarmos o sinal do pino, podemos determinar se estamos entrando ou saindo do modo noturno (que é exatamente o que o PiWebcam faz)

Uma última coisa a se considerar em relação ao hardware é como alimentar o Raspberry Pi. Como temos uma fonte de alimentação de 12v e precisamos de 5v para alimentar o Pi, é necessário um regulador de tensão.

Etapa 3: Software

Programas
Programas

A ideia por trás do PiWebcam era fornecer uma plataforma de imagem poderosa para todos, independentemente de seu conhecimento prévio. Um script de instalação cuidará da configuração completa do sistema com configurações padrão razoáveis, permitindo que o usuário personalize por meio de uma interface da web limpa e compatível com dispositivos móveis apenas um número muito limitado de parâmetros relevantes. No entanto, graças ao seu poderoso recurso de detecção de movimento aumentado por recursos de reconhecimento de objetos alimentados por um modelo de inteligência artificial, PiWebcam pode notificar o usuário de qualquer movimento detectado, enviando um instantâneo para um destinatário de e-mail ou postando no canal Slack favorito do usuário.

  • Página do projeto:
  • Manual do usuário:

Etapa 4: Lista de materiais

Lista de Materiais
Lista de Materiais
Lista de Materiais
Lista de Materiais
Lista de Materiais
Lista de Materiais

A lista de materiais a seguir é para a webcam para exteriores construída neste tutorial:

  • Raspberry Pi Zero W
  • Câmera Raspberry Pi (qualquer modelo, este inclui um filtro de corte IR)
  • Cabo de câmera Raspberry Pi Zero
  • Caixa de câmera à prova d'água (qualquer modelo em que a framboesa se encaixe)
  • Cartão SD (16 GB recomendado)
  • Placa IR Led (qualquer placa que se encaixe na caixa da câmera)
  • Filtro de corte de infravermelho (apenas se ainda não estiver incorporado na câmera)
  • Regulador 12v - 5v (certifique-se de que é um regulador de buck que pode fornecer no último 1A)
  • Plugue Micro USB Macho
  • Plugue fêmea 12v
  • Fonte de alimentação 12v 3A
  • H-Bridge
  • Mulher-Mulher Dupont Cales

Etapa 5: Preparando os componentes

Preparando os Componentes
Preparando os Componentes
Preparando os Componentes
Preparando os Componentes
Preparando os Componentes
Preparando os Componentes

O conversor buck (regulador de tensão) é responsável por converter a fonte de alimentação de 12v para os 5v que o Raspberry Pi requer. A maioria dos componentes do mercado são ajustáveis (por exemplo, você pode alterar a tensão de saída girando um parafuso). Como dentro da webcam o parafuso pode ser movido acidentalmente, para garantir uma saída fixa e constante de 5v coloque um pouco de estanho no slot de 5v para soldar as duas bordas e cortar o fio no PCB (com uma faca) que vai para "ADJ" (canto superior esquerdo da imagem)

Como queremos ter controle total sobre o filtro de corte de infravermelho através do Raspberry (esteja o filtro embutido ou não na câmera como na foto), precisamos nos livrar do pequeno conector. Corte os dois fios e conecte um cabo duplo fêmea para cada fio. Não jogue fora o plugue pequeno, pois precisamos usá-lo para receber o status do LDR montado na Placa de Led IR. Conecte outro cabo duplo fêmea em um dos dois fios (não importa qual).

Etapa 6: conectar a placa LED IR à fonte de alimentação

Conecte a placa LED IR à fonte de alimentação
Conecte a placa LED IR à fonte de alimentação
Conecte a placa LED IR à fonte de alimentação
Conecte a placa LED IR à fonte de alimentação
Conecte a placa LED IR à fonte de alimentação
Conecte a placa LED IR à fonte de alimentação

Vamos começar conectando a entrada da fonte de alimentação de 12 V entrando em nossa caixa de câmera nua para os componentes.

Conecte ao fio negativo (preto) o seguinte:

  • Fio negativo da placa IR Led
  • Fio negativo do conversor de buck
  • Fio negativo para o conector USB macho

Conecte ao fio positivo (vermelho) o seguinte:

  • O fio positivo (12v) da placa LED IR
  • O fio Vin do conversor de buck

Etapa 7: alimentar o Raspberry Pi

Energize o Raspberry Pi
Energize o Raspberry Pi
Energize o Raspberry Pi
Energize o Raspberry Pi

Conecte o fio Vout do conversor Buck ao plugue USB que alimentará o Raspberry.

Após conectar todos os fios, solde-os ou apenas fixe-os bem com alguma fita isolante.

Etapa 8: Conecte o filtro de corte de infravermelho

Conecte o filtro de corte de infravermelho
Conecte o filtro de corte de infravermelho
Conecte o filtro de corte de infravermelho
Conecte o filtro de corte de infravermelho
Conecte o filtro de corte de infravermelho
Conecte o filtro de corte de infravermelho

Como o filtro IR Cut não pode ser controlado diretamente de um pino do Raspberry, usaremos um H-Bridge alimentado pelo pino de 5v do Raspberry e controlado por dois pinos.

  • Conecte o pino 4 (5v) da framboesa ao "+" da H-Bridge
  • Conecte o pino 5 (GND) da framboesa a "-" da H-Bridge
  • Conecte o pino 39 (BCM 20) da framboesa ao INT1 da H-Bridge
  • Conecte o pino 36 (BCM 16) da framboesa ao INT2 da H-Bridge
  • Conecte os dois fios do filtro de corte infravermelho ao MOTOR1 e MOTOR2 ou à ponte H

Desta forma, quando um pulso for enviado, por exemplo, os pinos 39, 5v serão fornecidos ao MOTOR1 fazendo com que o filtro alterne.

Etapa 9: Conecte a placa de LED IR ao Raspberry

Conecte a placa de LED IR ao Raspberry
Conecte a placa de LED IR ao Raspberry

Para saber quando está escurecendo, estamos aproveitando o LDR montado na placa de LEDs IR. Use o pequeno plugue cortado do filtro IR nas etapas anteriores, conecte um lado ao conector identificado como "IRC" da placa de LEDs IR e o outro ao pino 40 (BCM 21) do Raspberry.

Etapa 10: Monte a câmera na placa LED IR

Monte a câmera na placa LED IR
Monte a câmera na placa LED IR
Monte a câmera na placa LED IR
Monte a câmera na placa LED IR

Fixe a câmera no slot dedicado da placa de LEDs IR com uma fita isolante ou outro meio. Coisas a serem levadas em consideração nesta fase:

  • A placa de LEDs IR fica muito quente quando ligada, portanto, proteja a câmera adequadamente;
  • Certifique-se de que nenhuma luz IV possa entrar no slot onde a câmera está localizada; A reflexão da luz infravermelha é uma das razões mais comuns pelas quais a visão noturna é ruim (embaçada);
  • Certifique-se de que haja algum espaço entre a lente e o vidro da caixa da câmera, caso contrário, pode ocorrer reflexão ou distorção da imagem;

NÃO feche a caixa da câmera ainda:-)

Etapa 11: Opção 1 - Flash de uma imagem PiWebcam pré-configurada (recomendado)

Opção 1 - Flash de uma imagem PiWebcam pré-configurada (recomendado)
Opção 1 - Flash de uma imagem PiWebcam pré-configurada (recomendado)
  • Baixe a imagem PiWebcam mais recente (PiWebcam_vX. X.img.zip) em
  • Descompacte o arquivo. Grave a imagem em um cartão SD (https://www.raspberrypi.org/documentation/installation/installing-images/)
  • Conecte o cartão SD em seu Raspberry Pi e ligue-o
  • O dispositivo começará a atuar como um ponto de acesso
  • Continue com as tarefas de pós-instalação

Etapa 12: Opção 2 - Construir uma imagem PiWebcam

Opção 2 - Construir uma imagem PiWebcam
Opção 2 - Construir uma imagem PiWebcam

Construir uma imagem PiWebcam requer uma nova instalação do Raspbian e um cartão SD. Não reutilize uma instalação existente, mas comece do zero:

  • Baixe o sistema operacional Raspbian Stretch Lite
  • Grave a imagem em um cartão SD (por exemplo, usando Win32 Disk Imager)

Etapa 13: Opção 2 - Copiar PiWebcam para o cartão SD

Opção 2 - Copiar PiWebcam para o cartão SD
Opção 2 - Copiar PiWebcam para o cartão SD
Opção 2 - Copiar PiWebcam para o cartão SD
Opção 2 - Copiar PiWebcam para o cartão SD
Opção 2 - Copiar PiWebcam para o cartão SD
Opção 2 - Copiar PiWebcam para o cartão SD

Baixe a versão mais recente do PiWebcam (PiWebcam_vX. X.zip), extraia e copie o diretório "PiWebcam" na partição de inicialização.

Para uma configuração headless, coloque na partição de boot também um arquivo vazio chamado "ssh" e um "wpa_supplicant.conf" com sua configuração de rede. Desta forma, o Raspberry começará a se conectar à sua rede WiFi na inicialização e você não precisará do cabo HDMI, mas pode se conectar diretamente através de SSH a ele.

Etapa 14: Opção 2 - Ligue o Raspberry e conecte-o a ele

Opção 2 - Ligue o Raspberry e conecte-o a ele
Opção 2 - Ligue o Raspberry e conecte-o a ele
Opção 2 - Ligue o Raspberry e conecte-o a ele
Opção 2 - Ligue o Raspberry e conecte-o a ele

Conecte o cartão SD em seu Raspberry Pi, ligue-o e conecte-o com um cliente SSH (ou PuTTY no Windows):

  • Nome do host: raspberrypi.local
  • Nome de usuário: pi
  • Senha: framboesa

Etapa 15: Opção 2 - Configurar o sistema para PiWebcam

Opção 2 - Configurar o sistema para PiWebcam
Opção 2 - Configurar o sistema para PiWebcam
Opção 2 - Configurar o sistema para PiWebcam
Opção 2 - Configurar o sistema para PiWebcam

Depois de verificar se o Raspberry está conectado à Internet, execute o seguinte comando:

sudo /boot/PiWebcam/PiWebcam.sh install

Isso configurará totalmente o sistema e instalará as dependências necessárias.

No final da instalação, você será solicitado a reiniciar o dispositivo para que as alterações tenham efeito completo. Todas as credenciais serão resumidas na tela.

Observe que os últimos 6 caracteres são aleatórios (por exemplo, PiWebcam-e533fe) e variam de dispositivo para dispositivo.

Etapa 16: Tarefas pós-instalação - Conecte-se ao ponto de acesso WiFi do PiWebcam

Tarefas pós-instalação - Conecte-se ao ponto de acesso WiFi do PiWebcam
Tarefas pós-instalação - Conecte-se ao ponto de acesso WiFi do PiWebcam
Tarefas pós-instalação - Conecte-se ao ponto de acesso WiFi do PiWebcam
Tarefas pós-instalação - Conecte-se ao ponto de acesso WiFi do PiWebcam

Uma vez ligado, o dispositivo começará a atuar como um ponto de acesso.

Conecte-se à rede WiFi criada pelo dispositivo. A senha da rede, bem como a senha do usuário administrador (para a interface da web e SSH), é a mesma do SSID (por exemplo, PiWebcam-XXXXX). Aponte seu navegador para https://PiWebcam.local e autentique-se com o nome de usuário "admin" e com a senha igual ao nome da rede.

Etapa 17: conecte a webcam à sua rede WiFi

Conecte a webcam à sua rede WiFi
Conecte a webcam à sua rede WiFi
Conecte a webcam à sua rede WiFi
Conecte a webcam à sua rede WiFi

Se você deseja conectar a webcam a uma rede WiFi existente, vá para Dispositivo / Rede, selecione "Cliente WiFi" e preencha sua "Rede WiFi" e "Senha".

Aguarde de 1 a 2 minutos, conecte-se novamente à sua rede e aponte seu navegador para https://camera_name.your_network (por exemplo,

Etapa 18: feche a caixa da webcam

Fechar a caixa da webcam
Fechar a caixa da webcam
Fechar a caixa da webcam
Fechar a caixa da webcam

Uma vez testado se a webcam pode ser acessada pela rede e realizada a configuração básica apresentada no passo anterior, agora é hora de fechar o gabinete.

Etapa 19: Primeiros passos com PiWebcam

Primeiros passos com PiWebcam
Primeiros passos com PiWebcam
Primeiros passos com PiWebcam
Primeiros passos com PiWebcam
Primeiros passos com PiWebcam
Primeiros passos com PiWebcam
Primeiros passos com PiWebcam
Primeiros passos com PiWebcam

PiWebcam já vem com configurações padrão razoáveis. Depois de instalado, nenhuma configuração adicional é necessária; PiWebcam vai começar a tirar fotos e gravar vídeos, esteja conectado ou não à rede.

Toda a configuração do dispositivo (câmera, rede, notificação e configurações do sistema) pode ser realizada por meio da interface da web. O arquivo de configuração pode ser facilmente exportado e importado em Dispositivo / Sistema.

Quando um movimento é detectado, o PiWebcam começa a gravar um vídeo (que então será disponibilizado através do menu “Playback” da interface web). Quando não houver mais movimento, uma imagem destacando com uma caixa vermelha o movimento detectado também será armazenada. Se o recurso de detecção de objeto estiver ativado, qualquer movimento que não contenha o objeto configurado será ignorado para diminuir os falsos positivos (por exemplo, se um movimento for detectado, mas nenhuma pessoa for identificada).

Quando as notificações estão habilitadas, o snapshot será enviado ao endereço de e-mail do usuário e / ou postado no canal Slack configurado. Se uma conexão com a Internet não estiver disponível, a notificação será colocada na fila e liberada na próxima vez que a conexão for restaurada.

Um resumo detalhado de todas as configurações disponíveis é relatado na página do projeto.

Etapa 20: acesso remoto à Internet

Acesso Remoto à Internet
Acesso Remoto à Internet

Opcionalmente, a interface da web pode ser acessada da Internet sem nenhuma configuração adicional em sua rede ou roteador doméstico. Para habilitar esta funcionalidade, marque a caixa apropriada em Dispositivo / Rede.

Se o acesso remoto à Internet estiver habilitado, o dispositivo inicia um túnel SSH através de serveo.net, sem a necessidade de configurar qualquer NAT ou UPnP em seu roteador. O nome do dispositivo é usado como nome do host e os serviços web e ssh são expostos.

Etapa 21: Detalhes técnicos

Todos os arquivos PiWebcam residem na partição de inicialização do cartão SD, em um diretório chamado PiWebcam. Isso inclui um único arquivo bash, PiWebcam.sh e as páginas PHP para o painel de administração.

Durante o processo de instalação, uma configuração de sistema muito básica é realizada, uma imagem initramfs é criada e o script PiWebcam.sh é adicionado a /etc/rc.local para ser executado na inicialização com o parâmetro "configure".

Na primeira reinicialização, a imagem initramfs encolherá a partição raiz (anteriormente expandida para preencher todo o cartão SD pelo instalador Raspbian) e criará uma partição de dados logo depois.

Os sistemas de arquivos de inicialização e raiz são montados somente para leitura e um sistema de arquivos de sobreposição é criado pela imagem initram no sistema de arquivos raiz para que qualquer mudança no sistema seja armazenada apenas na memória e seja perdida na próxima reinicialização. Desta forma, o dispositivo será mais resistente a configurações incorretas, pode ser facilmente restaurado para os padrões de fábrica e pode sobreviver a qualquer queda de energia, uma vez que nenhum arquivo de sistema é gravado no cartão SD durante as operações normais. Em vez disso, o sistema de arquivos de dados é formatado com F2FS (Flash-Friendly File System), que leva em consideração as características dos dispositivos de armazenamento baseados em memória flash.

Durante a inicialização, o PiWebcam lê seu arquivo de configuração armazenado em /boot/PiWebcam/PiWebcam.conf, configura o sistema, a câmera, a rede e as notificações com base nas configurações encontradas e implanta a interface da web de / boot / PiWebcam / web em o local da raiz da web.

Tanto as imagens em movimento quanto os filmes são armazenados no sistema de arquivos de dados e agrupados em pastas por ano / mês / dia / hora para permitir um acesso mais fácil. Todas as gravações podem ser revisadas através da interface web com o h5ai um moderno indexador de arquivos que permite que arquivos e diretórios sejam exibidos de forma atraente e proporcionando visualizações de fotos e vídeos sem a necessidade de baixar o conteúdo previamente.

Quando um movimento é detectado, PiWebcam.sh é invocado com o parâmetro "notificar" por meio do evento de movimento on_picture_save / on_movie_end. Se a detecção de objetos estiver habilitada para uma análise mais aprofundada da imagem, a imagem é enviada ao Clarifai para reconhecer todos os objetos dentro da imagem. Isso funcionaria muito bem para diminuir os falsos positivos, por exemplo, se você está interessado em saber se há alguém roubando em sua casa e não apenas uma mudança repentina de luz.

Depois disso, o PiWebcam verifica se há conexão à Internet disponível e, em caso afirmativo, envia a notificação. Além das notificações tradicionais por e-mail, enviadas com ssmtp, com o filme detectado anexado, o PiWebcam também pode enviar a mesma imagem para um canal do Slack. Se você não conhece o Slack, dê uma olhada (); é uma ótima ferramenta de colaboração, mas também pode ser usada para criar um grupo dedicado à sua família, conceder acesso aos membros da sua família, conversar com eles e permitir que PiWebcam ou utilitários de automação residencial (como, por exemplo, eGeoffrey) postem atualizações lá. Se não houver conexão com a Internet, a notificação não será perdida, mas será enfileirada e enviada quando a conexão for restaurada.

Uma funcionalidade de atualização também é fornecida por meio da interface da web.

Recomendado: