hezhineng 2019-03-18
1.准备材料
在上次材料的基础上增加了一个人体红外感应模块 HC-SR501 和三根母对母的杜邦线
人体红外感应模块
2.模块链接说明
分别将红外感应模块的正极(+)、负极(-)和输出(out)用杜邦线链接raspberry pi 3b 的GPIO 针脚1(3.3V)、针脚6和针脚12(这种链接方式亲自测试,安全,不用外加电阻即可用)
3. Python源码(python3.x版本)
from wxpy import * import picamera import time import RPi.GPIO as GPIO #初始化 GPIO.setwarnings(False) GPIO.setmode(GPIO.BOARD) GPIO.setup(12,GPIO.IN) bot = Bot() my_friend = bot.friends().search('高杆')[0] tuling = Tuling(api_key='8edce3ce905a4c1dbb965e6b35c3834d') # 自动回复 @bot.register(msg_types=TEXT) def auto_reply_all(msg): if GPIO.input(12) == True: #初始化照相机 camera = picamera.PiCamera() camera.led = True try: #捕获图像 camera.vflip = True camera.capture('image.jpg') except: my_friend.send('PiCamera Error') else: my_friend.send_image('image.jpg') finally: camera.close() else: tuling.do_reply(msg) time.sleep(5) # 开始运行 time.sleep(5) bot.join()
4.代码分析
代码依然比较简单,与上次不同的是这里应用了一个Python控制树莓派GPIO接口的类库RPi.GPIO ,当检测到GPIO12有输入时,触发树莓派摄像头进行拍照,并将照片传至微信,程序里设定每五秒执行一次检测,与上次相同拍摄的照片文件在反复覆盖,不会增加占用树莓派的内存。
pytyhon学习资料
python学习资料