出门在外,难免担心有贼入窃。恰好手头上有闲置的树莓派一件,加上摄像头配合motion可以搭一套带运动检测的监控系统,设置好后若检测到异常可以自动将短片,图像发送到指定邮箱。手机收到邮件提醒可以远程连上摄像头查看情况。即便监控被破坏,由于图像和短片已发送至邮件服务器,仍可用于取证。
硬件准备
- 树莓派Raspberry Pi 3
- RPi IR-CUT Camera
软件安装
启用摄像头
添加这一行
重启后测试摄像头
1
| raspistill -o image.jpg -t 10000
|
安装motionEye
核心软件是Motion,我以前就是用它配合Mutt来实现前言的功能的,但配置稍麻烦,且自带的远程管理界面略简单。后来发现motionEye,是用python写的Motion前端,十分好用。
安装依赖
1 2 3 4 5 6
| wget https://github.com/ccrisan/motioneye/wiki/precompiled/ffmpeg_3.1.1-1_armhf.deb sudo dpkg -i ffmpeg_3.1.1-1_armhf.deb
sudo apt-get install python-pip python-dev curl libssl-dev libcurl4-openssl-dev libjpeg-dev libx264-142 libavcodec56 libavformat56 libmysqlclient18 libswscale3 libpq5 v4l-utils wget https://github.com/Motion-Project/motion/releases/download/release-4.0.1/pi_jessie_motion_4.0.1-1_armhf.deb sudo dpkg -i pi_jessie_motion_4.0.1-1_armhf.deb
|
更改pip源为国内aliyun镜像
1 2
| mkdir ~/.pip nano ~/.pip/pip.conf
|
添加如下内容
1 2 3
| [global] trusted-host = mirrors.aliyun.com index-url = http://mirrors.aliyun.com/pypi/simple
|
安装motionEye
1 2 3 4 5 6 7 8
| sudo pip install motioneye sudo mkdir -p /etc/motioneye sudo cp /usr/local/share/motioneye/extra/motioneye.conf.sample /etc/motioneye/motioneye.conf
sudo cp /usr/local/share/motioneye/extra/motioneye.systemd-unit-local /etc/systemd/system/motioneye.service sudo systemctl daemon-reload sudo systemctl enable motioneye sudo systemctl start motioneye
|
更新(可选)
1 2
| sudo pip install motioneye --upgrade sudo systemctl restart motioneye
|
配置motionEye
1
| sudo nano /etc/motioneye/motioneye.conf
|
更改端口(可选)
1 2
| port 8765 motion_control_port 7999
|
相关配置文件位置
1 2
| sudo nano /etc/motion/motion.conf sudo nano /etc/motioneye/thread-1.conf
|
通过前端配置邮件提醒
浏览器打开
localhost:8765
默认login: admin 密码为空
Advanced Settings ON
163邮件参数
163mail 25 non-TLS
控制夜视开关
我选用的摄像头为微雪的RPi IR-CUT Camera,没有led,而是将原来控制led的端口作为夜视开关,官方给出的控制方案为额外接一根线到摄像头模块
但这种方案不仅占用了一个外置GPIO端口,还降低了可靠性,特别是摄像头距主控较远的情况。其实6by9已经指出可以通过GPIO 32 (A+之后,3之前的板子) 或GPIO 5 (树莓派1)来控制camera led。
RPi2设置
1
| sudo nano /boot/config.txt
|
添加以下内容
编译cnv
1 2 3
| git clone https://github.com/mjysci/rpi-cam-night-vision-control cd rpi-cam-night-vision-control gcc -Wall -o cnv cnv.c -lwiringPi
|
运行
RPi3设置
最新的rpi3内置GPIO有变动,disable_camera_led失效,由于是扩展GPIO,并不能直接控制。
1 2 3 4
| git clone https://github.com/6by9/rpi3-gpiovirtbuf.git cd rpi3-gpiovirtbuf make cp rpi3-gpiovirtbuf ~/bin/rpi3-gpiovirtbuf
|
运行
1 2
| rpi3-gpiovirtbuf s 134 1 rpi3-gpiovirtbuf s 134 0
|
清空记录可以直接在前端操作,亦可通过rm实现
1
| sudo rm /var/lib/motioneye/Camera1/*.*
|
debug
之前在rpi2按以上步骤没问题,但重新部署到rpi3时碰到refused to connect错误
查看服务状态
1
| sudo systemctl status motioneye.service -l
|
不知何故安装时并未创建数据文件夹,手动建之
1
| sudo mkdir /var/lib/motioneye
|
参考资料
motionEye wiki
Turning off camera LED
Raw sensor access / CSI-2 receiver peripheral