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

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

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

1. 准备材料:

(1)树莓派

Python+树莓派 实现微信拍照、摄相机器人_第1张图片
树莓派

(2)摄像头:

Python+树莓派 实现微信拍照、摄相机器人_第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,这两个文件会在每次生成时反复覆盖,不会占用树莓派的过多存储空间,这也也造成了文件不能再树莓派上一直保存。

你可能感兴趣的:(Python+树莓派 实现微信拍照、摄相机器人)