사물 인터넷 (IoT)의 세계에서 우리 삶에 혁명을 일으킬 모든 기술이있는 경우 어디에서나 제어 및 모니터링 할 수있는 시스템을 개발하는 것이 좋습니다. 가정 보안을 위해 많은 유형의 보안 시스템과 카메라가 있지만 비용이 많이 들기 때문에 오늘 우리는 저렴한 비용의 간단한 Raspberry Pi 기반 침입자 경보 시스템 을 구축 할 것 입니다. 침입자가 감지되면.
이 IoT 기반 프로젝트에서는 PIR 센서와 PI 카메라를 사용하여 홈 보안 시스템을 구축 할 것 입니다. 이 시스템은 침입자의 존재를 감지하고 경고 메일을 보내 사용자에게 신속하게 경고합니다. 이 메일에는 Pi 카메라로 캡처 한 침입자의 사진도 포함됩니다. Raspberry Pi는 전체 시스템을 제어하는 데 사용됩니다. 이 시스템은 집이나 사무실의 정문에 설치할 수 있으며 인터넷을 통해 이메일을 사용하여 전 세계 어디에서나 모니터링 할 수 있습니다.
필요한 구성 요소:
- 라즈베리 파이
- 파이 카메라
- PIR 센서
- LED
- 브레드 보드
- 저항기 (1k)
- 전선 연결
- 전원 공급
이 프로젝트에 사용 된 모든 구성 요소는 여기에서 구입할 수 있습니다.
작동 설명:
이 프로젝트의 작업은 매우 간단합니다. PIR 센서는 사람의 존재를 감지하는 데 사용되며 Pi 카메라는 이미지가 감지 된 경우 이미지를 캡처하는 데 사용됩니다.
누군가 또는 침입자가 PIR 센서 범위에 들어올 때마다 PIR 센서는 Raspberry Pi를 통해 Pi 카메라를 트리거합니다. Raspberry pi는 Pi 카메라에 명령을 보내 사진을 클릭하고 저장합니다. 그 후 Raspberry Pi는 메일을 생성하고 최근에 클릭 한 이미지와 함께 정의 된 메일 주소로 보냅니다. 메일에는 메시지와 침입자의 사진이 첨부되어 있습니다. 여기에서는 "첨부 파일을 찾으십시오"라는 메시지를 사용했으며, 마지막에 제공된 코드에서 그에 따라 변경할 수 있습니다.
여기에서 사진은 입력 시간과 날짜가 포함 된 이름으로 Raspberry Pi에 저장됩니다. 사진 이름 만 봐도 침입자 입장 시간과 날짜를 확인할 수 있도록 아래 이미지를 확인하세요. Pi 카메라를 처음 사용하는 경우 Pi 카메라가있는 방문자 모니터링 시스템에 대한 이전 자습서를 확인하십시오.
PIR 센서의 전위차계를 사용하여이 시스템의 감지 범위 또는 거리를 조정할 수도 있습니다. 여기에서 PIR 센서에 대해 자세히 알아보고 범위를 조정하고 PIR 센서 기반 도난 경보도 확인하십시오.
회로 설명:
이 침입자 경보 시스템 에서는 Pi 카메라 모듈과 PIR 센서를 Raspberry Pi 3 에 연결하기 만하면 됩니다. Pi Camera는 Raspberry Pi의 카메라 슬롯에 연결되고 PIR은 GPIO 핀 18에 연결됩니다. LED는 또한 1k 저항을 통해 GPIO 핀 17에 연결됩니다.
Raspberry Pi 구성 및 프로그래밍 설명:
우리가 사용하는 파이썬 언어 여기에 프로그램을. 코딩하기 전에 사용자가 Raspberry Pi를 구성해야합니다. Raspberry Pi 시작하기 및 Pi에서 Raspbian Jessie OS 설치 및 구성에 대한 두 개의 자습서 아래에 있어야합니다.
- Raspberry Pi 시작하기-소개
- Raspberry Pi 시작하기-구성
Raspberry Pi에 Raspbian OS를 성공적으로 설치 한 후 Raspberry pi에서이 프로젝트를 실행 하려면 Pi 카메라 라이브러리 파일 을 설치 해야합니다. 이렇게하려면 주어진 명령을 따라야합니다.
$ sudo apt-get install python-picamera $ sudo apt-get installpython3-picamera
그 후에 사용자는 Raspberry Pi 소프트웨어 구성 도구 (raspi-config)를 사용하여 Raspberry Pi 카메라 를 활성화 해야합니다.
$ sudo raspi-config
그런 다음 카메라 활성화 및 활성화를 선택 합니다.
그런 다음 사용자는 sudo reboot 를 실행하여 Raspberry Pi 를 재부팅 해야 새 설정을 사용할 수 있습니다. 이제 Pi 카메라를 사용할 준비가되었습니다.
이제 Pi 카메라를 설정 한 후 메일을 보내기위한 소프트웨어를 설치합니다. 여기서는 명령 줄을 사용하거나 Python Script를 사용하여 메일 을 보내기 위한 쉽고 좋은 솔루션 인 ssmtp 를 사용 하고 있습니다. SMTP를 사용하여 메일을 보내기 위해 두 개의 라이브러리를 설치해야합니다.
sudo apt-get install ssmtp sudo apt-get install mailutils
라이브러리를 설치 한 후 사용자는 ssmtp.conf 파일 을 열고 아래 그림과 같이이 구성 파일을 편집 한 다음 파일을 저장해야합니다. 파일을 저장하고 종료하려면 'CTRL + x', 'y', 'enter'를 차례로 누르십시오.
sudo nano /etc/ssmtp/ssmtp.conf
root = YourEmailAddress mailhub = smtp.gmail.com: 587 hostname = raspberrypi AuthUser = YourEmailAddress AuthPass = YourEmailPassword FromLineOverride = YES UseSTARTTLS = YES UseTLS = YES
아래 명령을 실행 하여 테스트 메일을 보내서 테스트 할 수도 있습니다. 모든 것이 제대로 작동하면 언급 된 이메일 주소로 메일을 받게됩니다.
echo "Hello saddam"-mail -s "Testing…"[email protected]
이 프로젝트의 Python 프로그램은 모든 작업을 수행하는 데 매우 중요한 역할을합니다. 우선 이메일에 필요한 라이브러리를 포함하고 변수를 초기화하며 PIR, LED 및 기타 구성 요소에 대한 핀을 정의합니다. 간단한 이메일을 보내기 위해서는 smtplib만으로도 충분하지만 제목, 첨부 파일 등으로 깔끔하게 메일을 보내려면 MIME (Multipurpose Internet Mail Extensions)를 사용해야합니다.
Import RPi.GPIO as gpio import picamera import time import smtplib from email.MIMEMultipart import MIMEMultipart from email.MIMEText import MIMEText from email.MIMEBase import MIMEBase from email import encoders from email.mime.image import MIMEImage
그 후 메일을 초기화하고 메일 주소와 메시지를 정의했습니다.
fromaddr = "[email protected]"toaddr = "[email protected]"mail = MIMEMultipart () mail = fromaddr mail = toaddr mail = "첨부 파일"body = "첨부 파일을 찾으세요"
그런 다음 메일을 보내기위한 def sendMail (data) 함수를 만들었습니다.
def sendMail (data): mail.attach (MIMEText (body, 'plain')) print data dat = '% s.jpg'% data print dat attachment = open (dat, 'rb') image = MIMEImage (attachment.read) ()) attachment.close () mail.attach (image) server = smtplib.SMTP ('smtp.gmail.com', 587) server.starttls () server.login (fromaddr, "your password") text = mail. as_string () server.sendmail (fromaddr, toaddr, text) server.quit ()
def capture_image () 함수 는 시간과 날짜 로 침입자의 이미지 를 캡처 하기 위해 생성 됩니다.
def capture_image (): data = time.strftime ("% d_ % b_ % Y- % H: % M: % S") camera.start_preview () time.sleep (5) 인쇄 데이터 camera.capture ('% s. jpg '% data) camera.stop_preview () time.sleep (1) sendMail (data)
그런 다음 일부 설정으로 Picamera 를 초기화했습니다.
camera = picamera.PiCamera () camera.rotation = 180 camera.awb_mode = 'auto'camera.brightness = 55
그리고 이제 마지막으로 PIR 센서 출력을 읽었으며 Raspberry Pi는 capture_image () 함수를 호출하여 침입자의 이미지를 캡처하고 침입자의 사진을 첨부 파일로 포함하는 경고 메시지를 보냅니다. 우리는 사용이 센드 메일 () insdie의 capture_image () 메일을 전송하는 기능을.
while 1: if gpio.input (pir) == 1: gpio.output (led, HIGH) capture_image () while (gpio.input (pir) == 1): time.sleep (1) else: gpio.output (LED, LOW) time.sleep (0.01)
따라서이 라즈베리 파이 보안 시스템이 작동하는 방식으로 초음파 센서 또는 IR 센서를 사용하여 강도 나 침입자의 존재를 감지 할 수도 있습니다. 아래 의 전체 코드 및 데모 비디오를 추가로 확인하십시오.