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学习资料