查看: 3743|回复: 0

[项目] 微信监控,基于Python+树莓派+人体红外感应模块

[复制链接]
  • TA的每日心情
    慵懒
    2013-1-22 10:13
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2017-12-6 18:57:35 | 显示全部楼层 |阅读模式
    分享到:
    这里要和大家分享的是在上一个微信拍照机器人的基础上增加一个人体红外该应模块,实现有人经过探测区域,将自动拍摄照片传至手机微信。
    1.准备材料
    在上次材料的基础上增加了一个人体红外感应模块 HC-SR501 和三根母对母的杜邦线
    TIM截图20171206185301.png

    2.模块链接说明
    分别将红外感应模块的正极(+)、负极(-)和输出(out)用杜邦线链接raspberry pi 3b 的GPIO 针脚1(3.3V)、针脚6和针脚12(这种链接方式亲自测试,安全,不用外加电阻即可用)
    3. Python源码(python3.x版本)
    1. from wxpy import *
    2. import picamera
    3. import time
    4. import  RPi.GPIO as GPIO
    5. #初始化
    6. GPIO.setwarnings(False)
    7. GPIO.setmode(GPIO.BOARD)
    8. GPIO.setup(12,GPIO.IN)
    9. bot = Bot()
    10. my_friend = bot.friends().search('高杆')[0]
    11. tuling = Tuling(api_key='8edce3ce905a4c1dbb965e6b35c3834d')
    12. # 自动回复
    13. @bot.register(msg_types=TEXT)
    14. def auto_reply_all(msg):
    15.     if GPIO.input(12) == True:
    16.         #初始化照相机
    17.         camera = picamera.PiCamera()
    18.         camera.led = True
    19.         try:
    20.             #捕获图像
    21.             camera.vflip = True
    22.             camera.capture('image.jpg')
    23.         except:
    24.             my_friend.send('PiCamera Error')
    25.         else:
    26.             my_friend.send_image('image.jpg')
    27.         finally:
    28.             camera.close()
    29.     else:
    30.         tuling.do_reply(msg)
    31.     time.sleep(5)
    32. # 开始运行
    33. time.sleep(5)
    34. bot.join()
    复制代码
    4.代码分析   

    代码依然比较简单,与基于Python和树莓派的微信拍摄机器人不同的是这里应用了一个Python控制树莓派GPIO接口的类库RPi.GPIO ,当检测到GPIO12有输入时,触发树莓派摄像头进行拍照,并将照片传至微信,程序里设定每五秒执行一次检测,与上次相同拍摄的照片文件在反复覆盖,不会增加占用树莓派的内存。

    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则



    手机版|小黑屋|与非网

    GMT+8, 2024-4-24 05:28 , Processed in 0.121233 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.