家庭监控系统实现(一) -- 硬件准备及picamera使用

转载请注明出处:https://blog.csdn.net/mymottoissh/article/details/83053587

从本文开始,将逐步实现一个小型的家庭监控系统,可以实现实时视频监控和历史监控调取的功能。

主要硬件组件包括树莓派、camera、android前端设备。

实现思路为,树莓派上电,即开启视频录制功能,每3min存储一次视频文件到本地。树莓派一端提供历史视频文件和实时视频流的推送。移动端通过网络接口请求历史文件或实时视频流面。具体的实现分四篇文章进行介绍,分别是:

  • 硬件准备及picamera使用
  • 树莓派定时转存文件功能及HTTP服务器准备
  • 树莓派nginx部署及rtmp服务器搭建
  • Android移动端视频获取及播放

本篇主要介绍树莓派摄像头硬件环境搭建和使用picamera进行视频抓取。

本次采用的硬件是树莓派3+官方摄像头模块。

环境搭建

1、将摄像头模块通过CSI接口连接到树莓派

CSI接口连接

官方建议插拔摄像头时,要保证板子处于掉电状态。否则会损坏摄像头。

连接后上电树莓派,使能摄像头。

sudo raspi-config --> Interfacing Options --> Camera --> Enable

 然后输入 

raspistill -o image.jpg

如果能够显示图片,表示摄像头可以正常使用。

2、安装picamera

如果你用的是树莓派 Raspbian系统,很可能已经安装过驱动。进入python工作环境,导入picamera,如果没有提示错误,表示picamera已经安装好了。

pdx@ubuntu:~$ python
Python 2.7.12 (default, Nov 20 2017, 18:23:56) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import picamera

否则需要手动安装

$ sudo apt-get update
$ sudo apt-get install python-picamera python3-picamera

初识picamera

picamera的操作其实很简单,先贴一个官方的例子,实现将图片抓取到文件

from time import sleep
from picamera import PiCamera

camera = PiCamera()
camera.resolution = (1024, 768)
camera.start_preview()
# Camera warm-up time
sleep(2)
camera.capture('foo.jpg')

然后是一个抓取视频到文件的例子

import picamera

camera = picamera.PiCamera()
camera.resolution = (640, 480)
camera.start_recording('my_video.h264')
camera.wait_recording(60)
camera.stop_recording()

可以看到短短几行代码就实现了想要的功能。如果是单纯的视频和图片抓取的话,只用PiCamera这个类就足够了。而事实上,常用的也就五个类:

PiCamera:最常用的类,提供了基础的获取图片和视频流的方法,构造的同时初始化摄像头。

PiVideoFrameType:定义了一些表示帧格式的常量

PiVideoFrame:储存了视频帧中的相关数据。建议通过属性名称来访问其中的数据。

PiResolution:存储分辨率

PiFramerateRange:存储帧率的上下限

其中后三个继承自namedtuple,所以建议直接用属性名称访问数据,而不用下标操作。 

可以说针对每一种常用操作,picamera均给出了相应的接口和实例,而且操作并不复杂。文档非常清晰,这里就不废话了。

附picamera参考文档地址:https://picamera.readthedocs.io/en/release-1.13/

以上对开发环境进行了准备。下一篇将开始实现视频录制功能以及本地网络服务器。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值