树莓派+有源低电平触发蜂鸣器+人体红外感应器HC-SR501实现感应报警
2017-05-04 20:48
579 查看
参考文章
http://note.youdao.com/share/?id=ecd5d94fe676281322506ed8771c8f81&type=notebook#/1D83D1EA103D46B9AA22A831DB40C573
之前有看一个大四学妹做过类似的监控检测装置,人体红外感应器感应到人的存在的时候,触发蜂鸣器,致使蜂鸣器鸣叫,同时,使用树莓派拍照模块进行拍照保存。通过各种百度搜索,我也进行做了一个类似的装置
1 各模块介绍
人体红外感应模块,模块上写的vcc和gnd,vcc是正极,gnd是负极,模块的工作电压是5v,所以vcc接了pin2,gnd接了pin6,中间的那个是gpio接收感应,就用了一个gpio针,接到了pin12上
再接蜂鸣器,接法跟红外人体感应模块很相似,模块也有vcc、gnd、I/O三个针脚,工作电压为3.3v,vcc接了pin1,gnd接了pin9,I/O引脚接pin11。
之前一直失败,原因就是,GPIO引脚接错,之前把红外检测器的I/O输出接pin3,蜂鸣器的接pin5,一直出错,后来查了资料发现,pin3,5分别是SDA和SCL,所以导致失败
2 配置环境
安装python
安装GPIO库
3 摄像头
安装摄像头
输入命令
选择第五项 Interfacing Options 然后选择第一项Camera—>Yes 启动摄像头
试着捕获一张照片并且以当前时间命名,写成一个shell脚本,以便下面我们调用
take_photo.sh
raspistill常用的参数
-v:调试信息查看。
-w:图像宽度
-h:图像高度
-rot:图像旋转角度,只支持 0、90、180、270 度
-o:图像输出地址,例如image.jpg,如果文件名为“-”,将输出发送至标准输出设备
-t:获取图像前等待时间,默认为5000,即5秒
-tl:多久执行一次图像抓取。
4 python代码
代码也是我从网上各种参考结合搞定的
新建一个文本,我命名为gpio.py,把代码写进去
测试阶段,我只让代码测试10次,10次中只有一次检测到有人,检测到人的时候蜂鸣器鸣叫,摄像头拍下照片,OK,完成了
http://note.youdao.com/share/?id=ecd5d94fe676281322506ed8771c8f81&type=notebook#/1D83D1EA103D46B9AA22A831DB40C573
之前有看一个大四学妹做过类似的监控检测装置,人体红外感应器感应到人的存在的时候,触发蜂鸣器,致使蜂鸣器鸣叫,同时,使用树莓派拍照模块进行拍照保存。通过各种百度搜索,我也进行做了一个类似的装置
1 各模块介绍
人体红外感应模块,模块上写的vcc和gnd,vcc是正极,gnd是负极,模块的工作电压是5v,所以vcc接了pin2,gnd接了pin6,中间的那个是gpio接收感应,就用了一个gpio针,接到了pin12上
再接蜂鸣器,接法跟红外人体感应模块很相似,模块也有vcc、gnd、I/O三个针脚,工作电压为3.3v,vcc接了pin1,gnd接了pin9,I/O引脚接pin11。
之前一直失败,原因就是,GPIO引脚接错,之前把红外检测器的I/O输出接pin3,蜂鸣器的接pin5,一直出错,后来查了资料发现,pin3,5分别是SDA和SCL,所以导致失败
2 配置环境
安装python
sudo apt-get install python-dev
安装GPIO库
sudo pip install rpi.gpio
3 摄像头
安装摄像头
输入命令
sudo raspi-config
选择第五项 Interfacing Options 然后选择第一项Camera—>Yes 启动摄像头
试着捕获一张照片并且以当前时间命名,写成一个shell脚本,以便下面我们调用
take_photo.sh
#!/bin/sh raspistill -t 1000 -o /home/pi/Pictures/$(date +%Y-%m-%d-%H:%M:%S).jpg -n
raspistill常用的参数
-v:调试信息查看。
-w:图像宽度
-h:图像高度
-rot:图像旋转角度,只支持 0、90、180、270 度
-o:图像输出地址,例如image.jpg,如果文件名为“-”,将输出发送至标准输出设备
-t:获取图像前等待时间,默认为5000,即5秒
-tl:多久执行一次图像抓取。
4 python代码
代码也是我从网上各种参考结合搞定的
新建一个文本,我命名为gpio.py,把代码写进去
import RPi.GPIO as GPIO import time import cv2 import os import sys def init(): GPIO.setwarnings(False) GPIO.setmode(GPIO.BOARD) GPIO.setup(12, GPIO.IN) GPIO.setup(11, GPIO.OUT) pass def beep(): for i in range(1, 3): while GPIO.input(12): GPIO.output(11, GPIO.LOW) time.sleep(0.5) GPIO.output(11, GPIO.HIGH) time.sleep(0.5) def detct(): for i in range(1, 11):#测试只循环10次 if GPIO.input(12) == True: print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))+" Someone isclosing!" #触发蜂鸣器 beep() #调用拍照的shell脚本 os.system("sh take_photo.sh") else: GPIO.output(11, GPIO.HIGH) print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))+" Noanybody!" time.sleep(2)
测试阶段,我只让代码测试10次,10次中只有一次检测到有人,检测到人的时候蜂鸣器鸣叫,摄像头拍下照片,OK,完成了
相关文章推荐
- 【转载】红外感应模块+蜂鸣器实现简易报警
- 树莓派连接HC-SR501人体红外感应模块和蜂鸣器模块
- HC-SR501 人体红外感应模块
- 关于主板报警 在linux下通过发出接口命令触发蜂鸣器鸣叫代码
- 基于树莓派(Raspberry Pi)平台的MQ-2烟雾报警系统以及结合Zabbix监控的实现(一)
- Arduino Uno 使用 人体红外传感器(HC_SR051)实现 人体感应灯
- asp.net 2.0 ajax中实现弹出窗口报警提示
- asp.net 2.0 ajax中实现弹出窗口报警提示
- ASP.NET 2.0中使用AJAX实现弹窗报警提示
- asp.net 2.0 ajax中实现弹出窗口报警提示
- [原创] 使用Perl实现系统服务监控和报警
- ASP.NET 2.0中实现弹窗报警提示 類似Email 到達
- DataList中的按钮触发事件的方法的实现
- DELPHI实现通过URL触发自定义协议的软件
- asp.net 2.0 ajax中实现弹出窗口报警提示
- 一段非常好的滑动门[可感应触发或点击触发]兼容IE7 IE6 FireFox Opera
- 《WF编程》系列之19 - 触发事件与调用方法:服务以及工作流的实现
- 《WF编程》系列之20 - 触发事件与调用方法:宿主的实现
- 一段非常好的滑动门[可感应触发或点击触发]兼容IE7 IE6 FireFox Opera
- asp.net标中实现回车触发按钮事件