学院买了两台大电视,导师说,这玩意很贵,能不能写一个报警器,如果有人动就响,吓他一下。于是我用振动传感器和蜂鸣器在树莓派上做了一个。
材料清单:
- 振动传感器
- 无缘蜂鸣器(有源蜂鸣器也可以)
- 摄像头(可选)
振动传感器和蜂鸣器
这两个传感器都比较简单,只需要一个引脚。
振动传感器设置为IN。如果有振动信号(振动大于阈值)则输出0(我的,你的可能和我不一样。),没有振动的时候输出1.我的这种振动传感器长这样子:
针脚处有两个LED灯,红色常亮,绿色有振动信号的时候量。蓝色的方块有螺丝口,可以调节。调节绿灯至不亮,稍碰就量的程度,阈值就设置好了。
简单的监控振动情况的代码可以向下面这样:
1 2 3 4 5 6 7 8 9 10 11 12 |
import RPi.GPIO import time IO = 23 RPi.GPIO.setmode(RPi.GPIO.BCM) RPi.GPIO.setup(IO,RPi.GPIO.OUT) def ring(): RPi.GPIO.output(IO,RPi.GPIO.LOW) time.sleep(3) RPi.GPIO.output(IO,RPi.GPIO.HIGH) |
至于蜂鸣器,就更简单了,直接按照说明书输出低电平就可以触发。具体的代码可以看文末的地址。
MAIN程序流程
思路是:写一个while循环,不断询问振动传感器的状态,如果振动状态,就拉响蜂鸣器。
要注意的是:最好写成线程的模式,因为一次振动,传感器可能返回多个1,而且我还加入了拍照发邮件的代码。所以如果有异常也不要让它影响别的线程。
详细的代码,见我的Github。