玩转树莓派树莓派

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

2017-05-13  本文已影响1934人  高杆python

最近一直在自学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,这两个文件会在每次生成时反复覆盖,不会占用树莓派的过多存储空间,这也也造成了文件不能再树莓派上一直保存。

上一篇下一篇

猜你喜欢

热点阅读