上一篇文章《Python+樹莓派 實(shí)現(xiàn)微信拍照、攝相機(jī)器人》中簡單的實(shí)現(xiàn)了由手機(jī)微信控制樹莓派攝像頭拍攝照片及錄像,并將拍攝文件回傳至微信的功能瞧柔,程序比較簡單,
今天要和大家分享的是在上一個(gè)微信拍照機(jī)器人的基礎(chǔ)上增加一個(gè)人體紅外該應(yīng)模塊睦裳,實(shí)現(xiàn)有人經(jīng)過探測(cè)區(qū)域造锅,將自動(dòng)拍攝照片傳至手機(jī)微信。
1.準(zhǔn)備材料
在上次材料的基礎(chǔ)上增加了一個(gè)人體紅外感應(yīng)模塊 HC-SR501 和三根母對(duì)母的杜邦線
2.模塊鏈接說明
分別將紅外感應(yīng)模塊的正極(+)推沸、負(fù)極(-)和輸出(out)用杜邦線鏈接raspberry pi 3b 的GPIO 針腳1(3.3V)备绽、針腳6和針腳12(這種鏈接方式親自測(cè)試,安全鬓催,不用外加電阻即可用)
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')
# 自動(dòng)回復(fù)
@bot.register(msg_types=TEXT)
def auto_reply_all(msg):
if GPIO.input(12) == True:
#初始化照相機(jī)
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)
# 開始運(yùn)行
time.sleep(5)
bot.join()
4.代碼分析
代碼依然比較簡單肺素,與上次不同的是這里應(yīng)用了一個(gè)Python控制樹莓派GPIO接口的類庫RPi.GPIO ,當(dāng)檢測(cè)到GPIO12有輸入時(shí)宇驾,觸發(fā)樹莓派攝像頭進(jìn)行拍照倍靡,并將照片傳至微信,程序里設(shè)定每五秒執(zhí)行一次檢測(cè)课舍,與上次相同拍攝的照片文件在反復(fù)覆蓋塌西,不會(huì)增加占用樹莓派的內(nèi)存。