Raspberry Pi + Pi NoIR Camera实现家庭监控

0

很久没写了,最近没太多时间。

工具及环境

  • Raspberry Pi 3 Model B

    • System: Raspbian Jessie with PIXEL
  • Pi NoIR Camera V2

基本设置

安装系统,配置apt-get源、git等就不再赘述,sudo raspi-config,在选项中开启摄像头,再简单地测试camera的性能,具体可参考官方manual。

下面介绍我在用的这个github项目:

https://github.com/silvanmelchior/RPi_Cam_Web_Interface

Web based interface for controlling the Raspberry Pi Camera, includes motion detection, time lapse, and image and video recording.

首先git clone到本地,cd进去后执行./install.sh,不嫌麻烦建议使用nginx,端口最好不要用80,避开常用端口即可。

安装完之后应该是可以直接./RPi_Cam_Web_Interface_Installer.sh start来启用了,停止可使用命令./RPi_Cam_Web_Interface_Installer.sh stop

浏览器中输入ip:port来访问web界面,应该先看到一个列目录的结构,因为document root默认是/var/www/,但安装时默认是在var/www/html

以下为具体配置解析:

参考资料为官方doc:http://elinux.org/RPi-Cam-Web-Interface

几个配置文件的路径:

  • /etc/raspimjpeg
  • /var/www/html/uconfig
  • /etc/motion/motion.conf
  • /var/www/html/schedule.json
  • /var/www/html/uPresets.html

具体一点:

  • 实现开机自动开启motion detection: 编辑/etc/raspimjpeg修改motion_detectiontrue
  • 设置最大存储容量: 编辑/var/www/html/schedule.json,自定义视频和照片保留时间
  • 设置单次视频录制最长时间: 修改Max_Capture参数,单位为秒
  • 其他自定义设置详见文档,我只改了这些

进阶设置

云同步

项目地址:https://github.com/houtianze/bypy

这是一个百度云/百度网盘的Python客户端。主要的目的就是在Linux环境下(Windows下应该也可用,但没有仔细测试过)通过命令行来使用百度云盘的2TB的巨大空间。比如,你可以用在Raspberry Pi树莓派上。它提供文件列表、下载、上传、比较、向上同步、向下同步,等操作。

可以通过pip来安装,pip install bypy,安装完直接执行。

第一次运行时需要授权,只需跑任何一个命令(比如 bypy info)然后跟着说明(登录等)来授权即可。授权只需一次,一旦成功,以后不会再出现授权提示。

使用bypy syncup [upload_dir]来上传本地upload_dir下所有文件到百度云的我的应用数据/bypy/这个目录下。

具体说明,web界面中录制的视频、拍摄的照片,本地存储路径为/var/www/html/media/,每段视频都对应一个缩略图,为了节省Raspberry Pi的系统资源和家庭的网络资源,我只上传了每段视频的缩略图,原视频默认被从h264格式转码成mp4格式,可直接在web端播放。

Crontab

cd && mkdir uploads/,然后在home/pi/这里写一个shell脚本命名sync,内容如下:

/usr/local/bin/bypy syncup /home/pi/uploads

再写一个bash命名clearcache如下:

rm -rf /home/pi/uploads/*

crontab -e编辑cron定时任务,写入以下三行:

*/1 * * * * cp -Rf /var/www/html/media/*.jpg /home/pi/uploads/
*/1 * * * * /home/pi/sync
  0 0 * * 0 /home/pi/clearcache

目的是每分钟将/var/www/html/media/文件夹中所有的照片复制到/home/pi/uploads这里,然后同步到百度云的我的应用数据/bypy/目录下。每周清除uploads文件夹中缓存。

实现效果

捕捉一切镜头前的动作,一旦有人经过,视频和照片将会被保存,其中照片一分钟内上传至百度云盘,视频亦可在移动端或任何内网设备中查看。

每三天清除旧文件,且保持存储空间至少5GB,每周清除上传文件夹缓存。

Leave A Reply

苏ICP备16066660号-1

苏公网安备 32011502010432号