美文网首页玩转树莓派树莓派
Python+树莓派 实现微信拍照、摄相机器人

Python+树莓派 实现微信拍照、摄相机器人

作者: 高杆python | 来源:发表于2017-05-13 14:12 被阅读1934次

最近一直在自学Python,并且深深被它的优雅、简单和高效所吸引,学习的主攻方向是Python的web开发和网络爬虫,但是为了让自学的过程不那么枯燥无味,同时也能满足自己喜欢折腾的爱好,就入手了一块Raspberry Pi 3B和一个摄像头。

今天在这和大家分享一个我刚刚编写的Python脚本,目的是用Python+树莓派实现的微信拍摄机器人,并将图片和视频文件传入到手机微信中。

1. 准备材料:

(1)树莓派

树莓派

(2)摄像头:

摄像头

(3)两部可以登录微信的智能手机(分别用于登录两个互为好友的微信号)

2. 树莓派的安装和链接:

具体的树莓派系统安装以及远程登录的方法可以在简书和百度上搜索,方法都非常详细而且操作也比较简单,就不在这里赘述了(推荐大家两款远程登录树莓派的手机软件JuiceSSH和VNC Real简单好用)

3. Python源码:

from wxpy import *

import picamera

#初始化微信机器人,扫码登录

bot = Bot()

my_friend = bot.friends().search('高杆')[0]

#初始化图灵机器人

tuling = Tuling(api_key='8edce3ce905a4c1dbb965e6b35c3834d')

# 自动回复所有文字消息

@bot.register(msg_types=TEXT)

def auto_reply_all(msg):

#当接受到文字为kk时,拍摄照片

if msg.text == 'kk':

#初始化照相机

camera = picamera.PiCamera()

try:

#捕获图像

camera.vflip = True

camera.capture('image.jpg')

except:

#若调用摄像头拍摄失败,发送错误信息

my_friend.send('PiCamera Error')

else:

#发送给请求者

my_friend.send_image('image.jpg')

finally:

#关闭摄像头,释放资源

camera.close()

#当接受到文字为tt时,录制视频

elif msg.text == 'tt':

with picamera.PiCamera() as camera:

camera.resolution = (640, 480)

camera.start_preview()

#录制视频,视频格式为h264

camera.start_recording('video.h264', format='h264', quantization=23, resize=(1024, 768))

camera.wait_recording(60)

camera.stop_recording()

camera.stop_preview()

my_friend.send_video('video.h264')

camera.close()

else:

tuling.do_reply(msg)

# 开始运行

bot.join()

3. 代码分析:

在这个程序中引用了Python的两个类库,具体可以使用apt-get install python3-wxpy方式下载,一个是wxpy(这个库要去必须使用Python3.X版本),这是基于itchat库开发的网页版微信机器人类库,具体的使用方法可以打开下面的链接学习(对itchat熟悉的朋友也可以直接引用itchat类),在这里还用到了一个图灵机器人,他已经封装到了wxpy库中,这样可以让微信机器人除了拍照和摄像,还能进行简单的问答聊天。

wxpy库使用说明:wxpy.readthedocs.io/zh/latest/

还用一个库就是picamera,具体可以使用apt-get install python3-picamera方式下载,这个Python模块是专门调用树莓派摄像头的,具体的使用方法可以访问下面的链接学习

picamera库使用说明:picamera.readthedocs.io/en/release-1.2/install3.html#raspbian-installation

在程序中生成的图片文件名为image.jpg,视频名称为video.h264,这两个文件会在每次生成时反复覆盖,不会占用树莓派的过多存储空间,这也也造成了文件不能再树莓派上一直保存。

相关文章

网友评论

  • 1b34e0fe2820:你好,图片超过一定大小比如1MB就无法发送了,请问这是怎么解决的?
  • 6433fba13651:为什么扫描二维码后就一直没得反应
  • 昨日轻风:有试过直接从网页进行控制拍照,摄像,然后获取照片,视频么?
  • 灼灼其华啦:可以用markdown语法把Py 缩进啥的整理一下嘛。如果想用USB的话,应该修改啥
    高杆python:这篇是第一次在简书发布的文章,当时还不会使用markdown,做个纪念就没有修改,缩进等问题可以参考后续的几篇有关树莓派的文章,USB摄像头的使用推荐了几篇文章地址,已发至你的简信。
  • 6316e4df5cd5:两部手机的作用是什么,小白有点没看明白
    6316e4df5cd5: @高杆python 我已经实现了,谢谢你😀
    高杆python: @iRed_5e2d 一部手机是在执行python程序时扫描二维码实现网页登陆微信,从而实现微信机器人的功能,另一部手机向第一步手机发送微信信息,作为控制微信机器人的指令。
  • bef986db5e33:为什么我扫码没有反应呢?
    bef986db5e33: @高杆python 嗯,好的
    高杆python:@丿键盘上的舞者 去图灵机器人的网站上可以申请,用这个也可以的。
    bef986db5e33:api_key 在那里获取?直接使用你的那个吗?
  • e217597920b1:video.h264发到微信貌似不能放耶
    e217597920b1:@高杆python 好的,谢谢啦:relieved:
    高杆python: @毁我少年梦 可以用手机安装的其它视频播放器播放,我用 万能视频播放器!

本文标题:Python+树莓派 实现微信拍照、摄相机器人

本文链接:https://www.haomeiwen.com/subject/cjcxxxtx.html