亲身实践:树莓派摄像头视频上传至云服务器的简单教程 (如何把树莓派摄像头的视频上传云服务器)

树莓派是一款微型电脑,广受智能化家居、物联网、教育等领域的开发者和爱好者青睐,因其小巧方便、灵活性强、性价比高等优点。而树莓派的摄像头模块,更是为其产品应用场景增添了不少可能性,如智能门禁、视频监控、智能家居等领域均能应用。本篇文章将介绍如何将树莓派摄像头视频上传至云服务器,通过云平台进行实时监控。

一、硬件准备

1、树莓派(本文使用树莓派4B)。

2、树莓派摄像头模块(注意区分V1和V2版本,并正确安装使摄像头可以使用)。

3、一个能够连接网络的树莓派(推荐使用树莓派3B+及以上)。

二、软件准备

1、树莓派操作系统(本文使用Raspbian Buster Lite版本)。

2、Python程序语言环境(默认Raspbian Buster Lite已经预装)。

3、OpenCV图像处理库(可以通过apt-get命令安装,也可以借助外部库)。

4、云平台账号(本文使用七牛云作为示例场景。其他云平台同理)。

5、七牛云Python SDK库(可以在GitHub下载源代码。其他云平台SDK同理)

三、步骤说明

1、安装树莓派及其摄像头模块。

首先需要将树莓派开机,并安装连接摄像头模块。根据模块类型不同,可以通过官方文档或其他资料进行操作。在本文中,我们使用的是V2的摄像头模块,故需先在terminal输入以下命令:

sudo raspi-config

打开树莓派的配置选项,选择“Interfacing Options”中的“Camera”,并开启摄像头,并确认保存。

2、安装Python和OpenCV库。

在树莓派连接网络后,可以打开terminal,输入以下命令进行安装:

sudo apt update

sudo apt install python3 python3-opencv

提示:如果OpenCV安装失败,可以考虑从外部来源进行安装,如:

sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

sudo apt-get install libopencv-dev

3、注册七牛云账号并创建Bucket。

在此处不再赘述。具体注册及创建Bucket的过程可以查看七牛云平台上的教程。

4、安装云平台Python SDK。

可以通过访问云平台上的GitHub地址,下载SDK的源代码并将其解压。然后进入到解压后的目录,使用命令:

sudo python setup.py install

安装SDK库。

5、编写Python脚本。

编写Python脚本是实现上传树莓派摄像头视频到云服务器的关键步骤。代码如下:

import os

import time

from cv2 import cv2

from qiniu import Auth, put_file, etag, urlsafe_base64_encode

from qiniu import BucketManager, build_batch_delete

# access_key = ‘your_access_key’

# secret_key = ‘your_secret_key’

access_key = ‘x’

secret_key = ‘x’

bucket_name = ‘your_bucket_name’

def upload_camera_record():

videoCapture = cv2.VideoCapture(0)

file_name = str(time.time()) + ‘.avi’

file_path = ‘/home/pi/’ + file_name

fourcc = cv2.VideoWriter_fourcc(*’XVID’)

out = cv2.VideoWriter(file_path,fourcc, 20.0, (640,480))

start_time = time.time()

start_flag = True

while True:

ret, frame = videoCapture.read()

if ret and start_flag:

out.write(frame)

if time.time() – start_time > 8:

out.release()

break

elif not ret:

break

print(cv2.mean(frame))

if cv2.wtKey(1) & 0xFF == ord(‘q’):

break

videoCapture.release()

cv2.destroyAllWindows()

q = Auth(access_key, secret_key)

key = file_name

token = q.upload_token(bucket_name, key, 3600)

ret, info = put_file(token, key, file_path)

assert ret[‘key’] == key

assert ret[‘hash’] == etag(file_path)

assert os.path.exists(file_path)

print(‘Record({}) is uploaded!’.format(file_name))

time.sleep(1)

os.remove(file_path)

print(‘The file({}) is deleted!’.format(file_path))

完成以上步骤后,将Python脚本保存为upload.py,即可使用以下命令运行该脚本:

python upload.py

执行完毕后,树莓派摄像头所拍摄的视频即可被上传到七牛云服务器上。

四、

通过以上步骤,我们成功地将树莓派摄像头模块所拍摄的视频上传到云平台上,方便进行实时监控和录像管理。后续可以根据自身需求和实际场景,通过其它云平台API接口,更多地扩展树莓派应用。


数据运维技术 » 亲身实践:树莓派摄像头视频上传至云服务器的简单教程 (如何把树莓派摄像头的视频上传云服务器)