基于RaspberryPi2代的智能安防系统设计_第1页
基于RaspberryPi2代的智能安防系统设计_第2页
基于RaspberryPi2代的智能安防系统设计_第3页
基于RaspberryPi2代的智能安防系统设计_第4页
基于RaspberryPi2代的智能安防系统设计_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于Raspberry Pi 2代智能安防系统设计一、简介将摄像头与Raspberry Pi 2相连,当Raspberry Pi 2检测到有人非法进入房屋时,主人可以通过浏览器查看摄像头拍摄到的画面,以了解房间内的情况。这里将使用激光报警器作为入侵检测传感器。当有人进入房间时,系统会自动发送一封email给主人,通知主人有人遮挡住了激光报警器。二、系统模块说明1、首先选购摄像头,因为我们的需求,只要能够看清楚房间内发生的情况即刻,所以我们不是必须要有高清录像的功能。况且因为我们的软硬件性能的限制,也没有办法使用高清摄像功能,根据网上查找推荐后,选择罗技C920摄像头,这个摄像头具备高清摄像的功

2、能,可以采集高品质的视频图像,不过在这里也是可以用的。2、其次组装激光模块,这里需要两部分组装。第一部分是起光源作用的激光发射器,第二部分是由光电二极管、模拟信号处理电路组成的激光传感器。激光发射器是很普通的电池供电的低功率发射器。这里直接使用5V电源供电即可。3、做这个项目的时候,了解到有一个叫Motion的软件包,他是一个非常成熟的软件,专门用于基于摄像头画面来进行图像分析,这里使用它来完成视频监控功能。4、下面是这个项目的结构简图:将信号发送给Raspberry Pi 2用户查看摄像头内容提醒用户有人闯入房间触发激光模块时,给Raspberry Pi 2发信号三、硬件模块设计1、因为Ra

3、spberry Pi 系统本身就能够自动检测识别到很多类型的摄像头,所以我们可以直接把摄像头连接到USB接口上,然后终端运行lsusb命令就可以查到识别出的摄像头。2、然后安放摄像头,以比较好的视角监控房间的情况,尽量可以看到激光模块,并可以很好地监视房间。3、组装激光模块,选择合适的位置安放好激光模块后,用一个镜子来反射激光束,如果有东西遮挡了激光束,就会触发警报。4、将Raspberry pi 与激光模块连接。这里使用一个继电器电路来间接整套设备。这个电路非常简单,不过依然是很可靠的,平时继电器是处于断开状态,也就是说GPIO引脚接入的是高电平。当激光被遮挡时,这个引脚会被接地,输入低电平

4、。系统的程序需要定期检测GPIO引脚的电平,如果引脚输入的是低电平,就开始执行相关的报警操作,向主人发送email。如下原理图:10k3.3vVVVRaspberry Pi 2接地引脚激光模块连接点连接点四、软件模块设计我选择了一个名为Motion的软件包用作远程视频监控的软件。这个软件包提供了很多强大的功能,在Raspberry Pi上可以运行Motion。Motion还可以实时分析视频中每一帧图像之间的差别,并以此为依据触发相应的报警。其实这个功能也可以实现报警功能,不过由于Raspberry Pi 2 的性能有限,如果用这个监视的话,那么Raspberry Pi将会全负荷进行图像分析,这

5、样的话,就没有足够的资源来支持远程视频监控,监控视频会有卡顿。因此,在这个项目中,主要使用Motion内置的Web服务器。这个服务器可以从摄像头捕捉视频流,并转发到一个指定的TCP/IP端口上。我们只需要在一台电脑上用浏览器访问Raspberry Pi 并指定相应的端口号,就可以查看视频画面。这个功能对于这个项目来说十分合适。然后开始做Email通知的模块,这里准备了一个email账号,使用一个名为smtplib 的Python库,它会使用email的免费SMTP服务器来发送电子邮件。五、选择1-2个软件模块的详细设计Email通知模块,因为我在这里使用smtplib的Python库,他可以在

6、家庭网络的路由器后面工作,下面是用来发送邮件的Python程序:import subprocessimport smtplibimport socketfrom email.mime.text import MIMETextimport datetimeimport os#邮箱设置to = 'youremail'gmail_user = 'user'gmail_password = 'password'smtpserver = smtplib.SMTP('',587)smtpserver.ehlo()smtpserver.star

7、ttls()smtpserver.ehlo()smtpserver.login(gmail_user,gmail_password)today = datetime.date.today()arg = 'ip route list'proc = subprocess.Popen(arg,shell = True,stdout = subprocess.PIPE)data = municate()split_data = data0.split()local_ip = split_datasplit_data.index('src') + 1public_ip =

8、 os.system('wget - -q > test.txt;echo')public_ip = open('test.txt','r').read()msg_content = 'Alarm detected. Public ip is %s:8081,local ip is %s' % (public_ip,local_ip)msg = MIMEText(msg_content)msg'Subject' = 'Raspberry Pi Alarm on %s' % todaymsg&#

9、39;From' = gmail_usermsg'To' = tosmtpserver.sendmail(gmail_user,to,msg.as_string()smtpserver.quit()在这里,公网IP地址是通过这个第三方的网站服务来获得的。当Raspberry Pi检测到GPIO 23引脚上输入低电平时,Laser Trip程序会发送一封报警邮件。当激光束被遮挡时,继电器会吸合,然后GPIO 23引脚就会获得一个低电平信号。程序代码:import subprocessimport smtplibimport socketfrom email.mime.te

10、xt import MIMETextimport datetimeimport osimport RPi.GPIO as GPIO import timedef send_alarm():#邮箱设置to = 'youremail'gmail_user = 'user'gmail_password = 'password'smtpserver = smtplib.SMTP('',587)smtpserver.ehlo()smtpserver.starttls()smtpserver.ehlo()smtpserver.login(gm

11、ail_user,gmail_password)today = datetime.date.today()arg = 'ip route list'proc = subprocess.Popen(arg,shell = True,stdout = subprocess.PIPE)data = municate()split_data = data0.split()local_ip = split_datasplit_data.index('src') + 1public_ip = os.system('wget - -q > test.txt;ec

12、ho')public_ip = open('test.txt','r').read()msg_content = 'Alarm detected. Public ip is %s:8081,local ip is %s' % (public_ip,local_ip)msg = MIMEText(msg_content)msg'Subject' = 'Raspberry Pi Alarm on %s' % todaymsg'From' = gmail_usermsg'To' =

13、 tosmtpserver.sendmail(gmail_user,to,msg.as_string()smtpserver.quit()GPIO.setmode(GPIO.BCM)GPIO.setup(23,GPIO.IN)count = 0while True:if(GPIO.input(23) = Flase & count = 0):count = count + 1send_alarm()time.sleep(10)count = 0当收到报警邮件时,可以打开一个浏览器,输入公网IP地址加上8081端口,比如:21:8081这样,就可以访问

14、到Motion软件包所提供的Web界面了,上面提供了实时的摄像头监控画面。六、设计对1-2个软件模块的测试文档这里可以直接用命令安装Motion软件:sudo apt-get install motion但是安装完成之后并不能直接使用,需要配置一个motion.conf配置文件,位于在/etc/motion/目录下,其关键的部分配置如下:daemon offsetup_mode offvideodevice /dev/video0v4l2_palette 2width 640height 480framerate 2threshold 3500threshold_tune off# Noise

15、 threshold for the motion detection (default: 32)noise_level 64gap 10quality 50# Use ffmpeg to encode mpeg movies in realtime (default: off)ffmpeg_cap_new onffmpeg_cap_motion onffmpeg_bps 500000ffmpeg_video_codec msmpeg4snapshot_interval 1locate ontarget_dir /mnt/flash_8G/motion/snapshotssnapshot_fi

16、lename %v-%Y%m%d%H%M%S-snapshotjpeg_filename %v-%Y%m%d%H%M%S-%qmovie_filename %v-%Y%m%d%H%M%Swebcam_port 8081webcam_quality 60webcam_motion offwebcam_maxrate 8webcam_localhost off# TCP/IP port for the http server to listen on (default: 0 = disabled)control_port 8080control_localhost offcontrol_html_

17、output onon_event_start /home/pi/motion/on_motion_detected.shon_event_end /home/pi/motion/on_motion_end.sh其中,daemon off:关掉deamon模式。否则运行motion后,会在后台直接运行,需要用top命令查看出motion的进程号,才能kill掉motion进程。locate on: 设置当探测到图像中有运动时,把运动区域用矩形框起来。videodevice /dev/video0: 设置加载USB摄像头的设备,一般为video0,当使用network webcam,需要设置ne

18、tcam_url,此时,videodevice选项自动失效。v4l2_palette 2:设置图像的编码格式为MJPEG,可选值为0-8,分别对应的不同的图像编码格式。width和height:设置图像、视频的长度和宽度,值越大,图像越清晰,但所需的网络流量越大,为降低占用的宽带流量,这里设置为640和480。threshold_tune off: 设置是否使用motion detection阈值自动调节。当设置为on时,下一个设置threshold 4500自动失效。设置off时,可以由threshold指定当探测到多少像素变化时,判断为图像中有运动。ffmpeg_cap_new on: 指在侦测到运动时,用视频纪录下来。ffmpeg_video_codec msmpeg4: 设定视频的编码器。/target_dir /mnt/tmp_motion: 当探测到运动时,图片和视频的保存路径,这里设为保存在U盘下。默认为/var/lib/motion/snapshots。snapshot_interval 1: 设定自动采集图片的周期,当有运动被检测到时,采集频率会自动变高。webcam_port 8081:设置视频输出流的访问端口,默认8081端口。当需要外网访问motion监控的过程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论