转载请注明出处,谢谢。
设备:
树莓派3B 1台
CPI接口摄像头 1个
HC-SR501红外人体感应模块 1个
公对母杜邦线 3根
第一步:
将摄像头安装到树莓派上。在树莓派上设置摄像头为可用:
输入命令:
sudo raspi-config
然后选择摄像头设置成enable,然后重启树莓派。
第二步:
将红外人体感应模块插上杜邦线,一共三根GPIO针脚,中间的为信号线,左右两侧分别为5V电源输入和GRAND。
注意5V电源输入和GRAND插在树莓派GPIO针脚上时千万不要插错!否则原件可能会被烧毁。我自己之前就插反了,烧了一个温度传感器
图中左侧的针脚是正极,右侧针脚是负极,中间针脚是信号针
中间的信号线插在板子上任意一个信号针脚即可
距离和灵敏度阀门可根据自己实际情况调节,根本不需要螺丝刀,手指甲就能转动。图中距离和灵敏度都是最大的状态
另外这个元件还有两个模式L、H模式:
L模式是不可重复触发,当探测到一次人体时,输出一次高电平,保持一段时间恢复低电平,在此期间如果还是检测到了人体也不再延长这个高电平的时间。等到低电平的封锁时间(前面默认是2.5S)过了以后才又开始检测。
H模式是可以重复触发,如果一直感应到人体时,会一直输出高电平,直到探测不到人体后保持小段时间然后恢复低电平。
图中这个是H模式。
第三步:
终于开始写码啦,这里所使用的语言是Python
import RPi.GPIO as GPIO
import time
import picamera
#初始化
def init():
#设置不显示警告
GPIO.setwarnings(False)
#设置读取面板针脚模式
GPIO.setmode(GPIO.BOARD)
#设置读取针脚标号
GPIO.setup(12,GPIO.IN)
pass
def detct():
while True:
curtime = time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time()))
#当高电平信号输入时报警
if GPIO.input(12) == True:
alart(curtime)
else:
continue
time.sleep(3)
def alart(curtime):
print curtime + " Someone is coming!"
#根据时间获取图像
camera.capture(curtime + '.jpg')
#声明摄像头
camera = picamera.PiCamera()
time.sleep(2)
init()
detct()
GPIO.cleanup()
第四步:执行代码
python xxx.py
这样就基本完成了,剩下的最后一步就是如何摆姿势了