Sistema de segurança residencial inteligente baseado em Raspberry Pi

Sistema de segurança residencial inteligente baseado em Raspberry Pi

Os sistemas de segurança residencial são uma necessidade das casas modernas. É possível projetar uma solução simples de segurança doméstica usando Raspberry Pi e utilizando o poder da Internet das Coisas. O sistema de segurança residencial projetado neste projeto é um dispositivo simples e de fácil instalação, construído com Raspberry Pi 3, Web Cam e sensor de movimento PIR. O Raspberry Pi 3 Modelo B vem equipado com Bluetooth (BLE) e Wi-Fi (BCM43438 Wireless LAN) integrados, portanto, pode ser facilmente conectado a um roteador Wi-Fi para acessar um serviço em nuvem.
O dispositivo concebido neste projeto pode ser instalado na entrada principal de uma casa. Ele detecta o movimento de qualquer visitante com a ajuda do sensor PIR e inicia a captura das imagens com a ajuda de uma web cam USB. As imagens são armazenadas temporariamente no Raspberry Pi e enviadas para o Google Cloud, de onde são enviadas como alerta por e-mail ao proprietário da casa. Assim, o usuário recebe as imagens de qualquer visitante imediatamente por e-mail que pode consultar em seu smartphone. O Raspberry Pi se conecta ao Google Cloud pela pilha TCP-IP. O Raspberry Pi 3 é uma das placas IoT que vem equipada com pilha TCP/IP integrada, portanto, pode ser facilmente conectada a uma rede IoT. O Pi usa a biblioteca OpenCV para capturar imagens da Web Cam e enviá-las pelo endereço de e-mail cadastrado do usuário.
O sistema de segurança residencial desenhado neste projeto, embora simples, é um aplicativo poderoso. O usuário pode monitorar sua casa de qualquer lugar, a qualquer hora e sempre, bastando instalar este pequeno dispositivo na entrada principal. Muitos desses dispositivos também podem ser instalados para adicionar ainda mais camadas de segurança. A entrada de qualquer intruso pode ser detectada e alertada pelo e-mail no smartphone, então o usuário fica livre para tomar as medidas cabíveis, como ligar para a polícia, informar as autoridades, etc.
Protótipo de sistema de segurança residencial IoT baseado em Raspberry Pi 3
Figura 1: Protótipo de sistema de segurança residencial IoT baseado em Raspberry Pi 3
Componentes necessários –
Lista de componentes necessários para o sistema de segurança doméstica IoT baseado em Raspberry Pi 3
Figura 2: Lista de componentes necessários para o sistema de segurança doméstica IoT baseado em Raspberry Pi 3
Diagrama de bloco –
Diagrama de blocos do sistema de segurança residencial IoT baseado em Raspberry Pi 3
Fig. 3: Diagrama de blocos do sistema de segurança doméstica IoT baseado em Raspberry Pi 3
Conexões de Circuito –
O dispositivo IoT projetado neste projeto é baseado no Raspberry Pi 3, que é um computador de placa única com conectividade Bluetooth e LAN sem fio. O Pi tem interface com sensor PIR, webcam USB e fonte de alimentação para formar todo o sistema. O dispositivo pode ser instalado em qualquer lugar onde for necessário. O sensor PIR está conectado aos pinos GPIO do Raspberry Pi. Um monitor LCD pode ser usado para configurar o Raspberry Web Server. As imagens capturadas da Web Camera USB podem ser salvas com informações de hora e data em um cartão SD.
Imagem mostrando conexões de circuito do sistema de segurança residencial IoT baseado em Raspberry Pi 3
Figura 4: Imagem mostrando conexões de circuito do sistema de segurança doméstica IoT baseado em Raspberry Pi 3
O dispositivo IoT projetado neste projeto possui os seguintes componentes conectados às conexões de circuito mencionadas abaixo –
Framboesa Pi 3 – Raspberry Pi 3 é o Raspberry Pi de terceira geração. É uma maravilha em miniatura, reunindo um poder computacional considerável em um espaço não maior que um cartão de crédito. O processador central do sistema Raspberry Pi é um sistema em chip (SoC) Broadcom BCM2837 que abriga um processador Quad Core ARM Cortex-A53 de 1,2 GHz. A grande maioria dos componentes do sistema, incluindo suas unidades centrais e de processamento gráfico, juntamente com o hardware de áudio e comunicação, são construídos nesse único componente, juntamente com o chip de memória LPDDR2 de 1 GB no centro da placa. Não é apenas esse design de SoC que torna o BCM2837 diferente do processador encontrado em um desktop ou laptop típico; no entanto, ele também usa uma arquitetura de conjunto de instruções (ISA) diferente, conhecida como ARM.
O Pi vem equipado com soquete Ethernet 10/100 BaseT integrado, porta HDMI e RCA composta para vídeo, conector de saída de áudio de 3,5 mm, interface serial de câmera MIPI de 15 pinos (CSI-2), interface serial de exibição, Bluetooth 4.1, 802.11 b/g/n Wireless LAN, Micro SDIO para cartão Micro SD, 4 conectores USB 2.0, conector de 40 pinos contendo 27 pinos GPIO e soquete Micro USB para fonte de alimentação.
O Raspberry Pi é um computador de placa única projetado para executar um sistema operacional chamado GNU/Linux Raspbian. Doravante referido simplesmente como Linux. Ao contrário do Windows ou OS X, o Linux é de código aberto, portanto é possível baixar o código-fonte de todo o sistema operacional e fazer as alterações desejadas. O Raspberry Pi 3 também pode executar o Windows 10 IoT e muitos outros sistemas operacionais incorporados, muitos dos quais são derivados do Linux. O sistema operacional deve ser carregado em um cartão MicroSD e inicializado a partir dele. Com poderosos recursos de computação, grande número de interfaces multimídia e pinos GPIO, o Raspberry Pi 3 é uma escolha adequada para executar um projeto complexo de IoT ou Embedded orientado a software que requer poder de computação suficiente, bem como conectividade de sensores em grande escala. Com Bluetooth e Wi-Fi integrados, este Pi de 3ª geração pode ser facilmente implantado em uma rede IoT. As principais especificações do Raspberry Pi 3 estão resumidas na tabela a seguir –
Tabela de listagem de especificações técnicas do Raspberry Pi 3
Figura 5: Tabela listando especificações técnicas do Raspberry Pi 3
O cabeçalho de 40 pinos no Raspberry Pi 3 tem a seguinte configuração de pinos –
Configuração de pinos de listagem de tabela do Raspberry Pi 3
Fig. 6: Tabela listando a configuração dos pinos do Raspberry Pi 3
Configuração de pinos de listagem de tabela do Raspberry Pi 3
Fig. 7: Tabela listando a configuração dos pinos do Raspberry Pi 3
Neste projeto, a Web Cam USB é conectada a um dos quatro conectores USB 2.0 e o sensor PIR é conectado ao GPIO04 (pino 7) no cabeçalho do Pi 3.
Sensor PIR – O Sensor PIR (Infravermelho Passivo) é um dispositivo piroelétrico que detecta movimento medindo mudanças nos níveis de infravermelho emitidos pelos objetos ao redor. Ao incorporar uma lente Fresnel e um circuito de detecção de movimento, o módulo oferece alta sensibilidade e baixo ruído. O módulo fornece um circuito otimizado que pode detectar movimento a até 6 metros de distância. Existem dois slots no sensor, cada um feito de um material especial sensível ao infravermelho. Na ausência de alguém, os dois slots recebem a mesma quantidade de radiação infravermelha. Quando uma pessoa passa pelo sensor, ela é interceptada por metade das ranhuras, causando uma diferença de potencial positiva entre as ranhuras. Quando a pessoa sai pelo sensor, ela é interceptada por outra metade das fendas causando uma diferença de potencial negativa entre as fendas. Este diferencial positivo e negativo gera um pulso detectando movimento.
O módulo do sensor possui regulador de tensão de 3,3 V integrado, diodo de proteção, ajuste de sensibilidade e ajuste de tempo de atraso. Existem três terminais no módulo – terra, VCC e saída digital. Uma tensão de 5 V a 12 V pode ser fornecida no pino VCC, embora 5 V seja a fonte de alimentação recomendada. Quando o módulo detecta movimento, a saída no pino Digital Out fica em nível ALTO. Este é um sinal alto ativo padrão de 5V. O pino Digital Out do sensor é conectado aos pinos GPIO do Raspberry Pi diretamente para monitorar o sinal. Ele está conectado ao 4º pino GPIO do Raspberry pi 3. O pino VCC do módulo é conectado a um dos pinos de alimentação de 5V DC do Pi 3 e o pino de aterramento do módulo é conectado a um dos pinos de aterramento do Pi.
Câmera Web USB – Um módulo de câmera da web faz interface com o Raspberry Pi por meio de uma das portas USB do Raspberry pi 3. A biblioteca OpenCV é usada para fornecer a funcionalidade para trabalhar com esta webcam padrão.
Fonte de energia – A fonte de alimentação está conectada ao Raspberry Pi. O Pi deve ser alimentado por um adaptador de 5V com saída de corrente de 2A. O adaptador pode ser conectado na tomada Micro USB.
Como funciona o circuito –
O dispositivo IoT construído em Raspberry Pi 3 neste projeto tem uma operação simples e direta. O dispositivo detecta movimento pelo sensor PIR e, à medida que detecta movimento, inicia a captura de imagens. As imagens são armazenadas no cartão MicroSD e enviadas no e-mail cadastrado do usuário. Tudo isso é gerenciado por um script python executado no sistema operacional Raspbian. Antes de executar o script python, é essencial instalar o sistema operacional no Pi 3 e instalar as bibliotecas necessárias, ou seja, OpenCV no sistema operacional. Ao instalar o sistema operacional, instalar as bibliotecas e o script python, o Raspberry Pi deve ser conectado a um monitor usando um cabo HDMI.
Para instalar o sistema operacional Raspbian no cartão MicroSD, primeiro baixe a imagem mais recente do sistema operacional Raspbian no site Raspberry Pi no link a seguir –
Sistema operacional Raspbian
Copie a imagem do sistema operacional Raspbian mais recente no cartão MicroSD. Se o cartão MicroSD usado tiver 32 GB ou menos, ele deverá ser formatado para FAT32 (sistema de arquivos) antes de copiar a imagem ou se o cartão MicroSD tiver mais de 32 GB, ele deverá ser formatado para exFAT antes de copiar a imagem. Extraia o Zip do sistema operacional e copie-o para o cartão MicroSD. A imagem pode ser gravada no cartão conectando-o a um laptop ou PC usando um leitor de cartão MicroSD. Após copiar a imagem extraída, insira o cartão no slot MicroSD conforme mostrado abaixo –
Imagem típica do slot para cartão MicroSD Raspberry Pi 3
Figura 8: Imagem típica do slot para cartão MicroSD Raspberry Pi 3
Conecte o Raspberry Pi a um monitor usando um cabo HDMI, um teclado e um mouse. Ligue a placa conectando-a a um adaptador de energia. O LED vermelho na placa começará a piscar e o sistema operacional começará a inicializar a partir do cartão MicroSD. O processo de inicialização será exibido no monitor e assim que a inicialização for concluída, o LED verde acenderá no Raspberry Pi. Após instalar com sucesso o Raspbian OS no Raspberry Pi, é recomendado realizar a atualização do software. Isso pode ser feito executando os seguintes comandos do Linux no Terminal Linux –
$ sudo apt-get atualização
$ sudo apt-get atualização
Agora é hora de instalar a biblioteca OpenCV. Existem vários métodos disponíveis para instalar o OpenCV. O método mais simples para instalar o OpenCV no Linux é fornecido no site do OpenCV. Confira o seguinte link –
Instalação OpenCV no Linux
Abra o terminal Linux no Raspbian e execute os seguintes comandos –
1. Primeiro instale o compilador executando o seguinte comando –
$ sudo apt-get install build essencial
2. Instale os pacotes necessários executando o seguinte comando –
$ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
3. Em seguida, instale os pacotes opcionais executando o seguinte comando –
$ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
4. Instale o OpenCV em qualquer diretório executando os seguintes comandos –
$ cd
$ git clone https://:github.com/opencv/opencv.git
5. Em seguida, crie um diretório temporário () onde os arquivos make, arquivos de projeto, arquivos de objeto e binários de saída gerados devem ser salvos. Isso pode ser feito executando os seguintes comandos –
$ cd opencv
$ compilação mkdir
$cd compilação
$ cmake –D CMAKE_BUILD_TYPE=RELEASE –D CMAKE_INSTALL_PREFIX=/usr/local ..
6. Vá para o () criado na etapa acima e instale o OpenCV executando os seguintes comandos –
$ fazer
$ sudo make install
Depois de instalar o Raspbian e o OpenCV, é hora de escrever e executar o script python no Raspbian. Um script python pode ser escrito em Raspbian usando um editor de texto como Leafpad ou GNU Nano. O script python também pode ser escrito usando o IDE python padrão, como Python 2 IDLE ou Python 3 IDLE. Abra o Python 3 IDLE navegando através de Menu -> Programação -> Python 3 IDLE. Uma janela chamada Python 3.4.2 Shell será aberta. Escreva o script python e salve-o em um diretório.
O script python escrito para este projeto deve ser executado na inicialização quando o Pi 3 estiver ligado. O script executa um loop infinito para que nunca termine. Existem alguns métodos pelos quais o Raspberry Pi pode ser configurado para executar um script python na inicialização. Qualquer um dos seguintes métodos pode ser usado –
1) Editando rc.local –
Os comandos podem ser adicionados ao arquivo /etc/rc.local para executar um programa ou comando quando o Raspberry Pi inicializar. Isso é especialmente útil se o Pi precisar ser conectado à energia sem cabeça e executar um programa sem configuração ou inicialização manual. O arquivo deve ser editado com root executando os seguintes comandos no Terminal Linux –
sudo nano /etc/rc.local
Agora adicione comandos para executar o script python usando o caminho completo do arquivo e adicione um e comercial no final do comando para que o script seja executado em um processo separado e a inicialização possa continuar. O seguinte comando deve ser adicionado onde o script python é salvo como securitysystem.py –
sudo python /home/pi/securitysystem.py &
saída 0
O comando deve ser adicionado logo antes da linha saída 0 no arquivo rc.local.
2) Editando .bashrc –
O .bashrc é um arquivo oculto na pasta inicial que contém opções de configuração do usuário. Abra o arquivo .bshrc executando os seguintes comandos no terminal Linux –
sudo nano /home/pi/.bashrc
Adicione as seguintes linhas após a última linha do arquivo –
echo Executando na inicialização
sudo python /home/pi/securitysystem.py
3) Adicionando script ao diretório init.d –
O diretório init.d contém os scripts que são iniciados durante o processo de inicialização (além disso, todos os programas aqui são executados quando o Pi é desligado ou reinicializado). Adicione o script a ser executado na inicialização ao diretório init.d usando os seguintes comandos –
sudo cp /home/pi/securitysystem.py /etc/init.d/
Vá para o diretório init e abra o script python executando os seguintes comandos –
cd /etc/init.d
sudo nano securitysystem.py
Adicione as seguintes linhas ao script python para torná-lo um Linux Standard Base (LSB) –
# /etc/init.d/sample.py
### INFORMAÇÕES DE INÍCIO
# Fornece: sample.py
# Início obrigatório: $remote_fs $syslog
# Parada obrigatória: $remote_fs $syslog
# Início padrão: 2 3 4 5
# Parada padrão: 0 1 6
# Breve descrição: Iniciar o daemon no momento da inicialização
# Descrição: Habilita o serviço fornecido pelo daemon.
### FIM INFORMAÇÃO DE INÍCIO
Torne o script python no diretório init executável alterando sua permissão executando o seguinte comando –
sudo chmod +x securitysystem.py
Em seguida, execute o seguinte comando –
padrões sudo update-rc.d securitysystem.py
Em seguida, reinicie o Pi executando o seguinte comando –
sudo reiniciar
Qualquer um dos métodos acima pode ser usado para executar o script python na inicialização. Agora o Pi 3 pode ser desconectado do monitor, teclado e mouse. A webcam e o sensor PIR devem estar conectados para completar o circuito do dispositivo. Agora na inicialização, o script python é executado junto com o processo de inicialização.
O sistema de e-mail é implementado na placa de desenvolvimento Raspberry pi em ambiente Linux, que suporta SMTP (Simple Mail Transfer Protocol), TCP/IP e HTTP. O sistema de arquivos Flash do servidor web oferece suporte a arquivos gerados dinamicamente que podem incluir dados de saída de recursos de hardware. Esse tipo de arquivo é chamado de página de servidor incorporada (ESP).
Quando o sensor PIR detecta movimento na entrada, sua saída digital é definida como HIGH. No script python quando o GPIO 4 fica alto, a webcam conectada ao raspberry pi tira o snap da entrada e envia os anexos da imagem para o e-mail.
Guia de programação –
O script python escrito e executado na inicialização gerencia toda a funcionalidade do projeto. No início do código, instruções de importação são usadas para importar bibliotecas padrão como RPi.GPIO, time, cv2 e numpy. Essas bibliotecas são utilizadas para acessar os pinos GPIO, extrair a hora do sistema e utilizar o módulo OpenCV para capturar as imagens. As variáveis ​​são declaradas para o número PIN GPIO do sensor PIR e para fornecer o ID do e-mail que será usado para enviar e receber o e-mail de alerta. O GPIO.setmode (GPIO.BCM) é usado para definir a placa para o modo Broadcom.
Captura de tela do código de inicialização em script Python para sistema de segurança residencial Smart IoT baseado em Raspberry Pi
Fig. 9: Captura de tela do código de inicialização em script Python para sistema de segurança residencial Smart IoT baseado em Raspberry Pi
Na execução do script, ele entra em um loop infinito onde o sensor PIR monitora continuamente e uma vez detectada a alteração na entrada, a câmera liga e captura a foto. A imagem capturada é salva com data e hora como picname utilizando o módulo datetime e a imagem é enviada por correio com assunto e corpo.
Captura de tela da função Loop em script Python para sistema de segurança residencial Smart IoT baseado em Raspberry Pi
Fig. 10: Captura de tela da função Loop em script Python para sistema de segurança residencial Smart IoT baseado em Raspberry Pi
Confira o script python completo para melhor compreensão.

Código-fonte do projeto


###

//Program to 

import RPi.GPIO as GPIO

import time

import numpy as np

import cv2

from datetime import datetime

import os

import smtplib

from email.MIMEMultipart import MIMEMultipart

from email.MIMEBase import MIMEBase

from email.MIMEText import MIMEText

from email import Encoders

gmail_user = "FROM MAIL (email protected)" #Sender email address

gmail_pwd = "FROM MAIL PASSWORD" #Sender email password

to = "TO MAIL (email protected)" #Receiver email address

subject = "Security Alert"

text = "There is some activity in your home. See the attached picture."


sensor = 4


GPIO.setmode(GPIO.BCM)

GPIO.setup(sensor, GPIO.IN, GPIO.PUD_DOWN)


previous_state = False

current_state = False


while True:

    previous_state = current_state

    current_state = GPIO.input(sensor)


    if current_state != previous_state:

        new_state = "HIGH" if current_state else "LOW"

        print("GPIO pin %s is %s" % (sensor, new_state))

if current_state:

cap = cv2.VideoCapture(0)

        ret, frame = cap.read 

cap = cv2.VideoCapture(0)

print "Saving Photo"

picname = datetime.now .strftime("%y-%m-%d-%H-%M")

picname = picname+'.jpg'

                cv2.imwrite(picname, frame)

print "Sending email"


attach = picname


msg = MIMEMultipart 


msg('From') = gmail_user

msg('To') = to

msg('Subject') = subject


msg.attach(MIMEText(text))


part = MIMEBase('application', 'octet-stream')

part.set_payload(open(attach, 'rb').read )

Encoders.encode_base64(part)

part.add_header('Content-Disposition',

    'attachment; filename="%s"' % os.path.basename(attach))

msg.attach(part)


mailServer = smtplib.SMTP("smtp.gmail.com", 587)

mailServer.ehlo 

mailServer.starttls 

mailServer.ehlo 

mailServer.login(gmail_user, gmail_pwd)

mailServer.sendmail(gmail_user, to, msg.as_string )

# Should be mailServer.quit , but that crashes...

mailServer.close 

print "Email Sent"

os.remove(picname)

###

Diagramas de circuito

Circuito-Diagrama-Raspberry-Pi-3-baseado-IoT-Home-Security-System

Vídeo do projeto

Conteúdo Relacionado

Uma rede de sensores é incorporada em todos os...
O controlador do motor é um dos componentes mais...
ESP32-CAM é um módulo de câmera compacto que combina...
A evolução dos padrões USB foi fundamental para moldar...
A SCHURTER anuncia um aprimoramento para sua conhecida série...
A Sealevel Systems anuncia o lançamento da Interface Serial...
A STMicroelectronics introduziu Diodos retificadores Schottky de trincheira de...
Determinar uma localização precisa é necessário em várias indústrias...
O novo VIPerGaN50 da STMicroelectronics simplifica a construção de...
A Samsung Electronics, fornecedora de tecnologia de memória avançada,...
O mercado embarcado tem uma necessidade de soluções de...
Você provavelmente já se deparou com o termo 'arrastar'...
Você provavelmente tem um Isolador de suporte Se você...
Você provavelmente já viu permanecer um isolante sente-se em...
Você provavelmente já viu Isoladores de manilha entronizados em...
Você provavelmente já passou por situações em que o...
블로그로 돌아가기

댓글 남기기

댓글 게시 전에는 반드시 승인이 필요합니다.