软件专栏
树莓派摄像头 + motion 实现视频监控系统
4 年前
8133
快速入门 软件推荐 树莓派 蛋黄~喵~ 视频监控

通过树莓派和树莓派的摄像头,再搭配 motion 这款软件,经过几步简单的配置,便可以实现视频监控,并通过局域网实时查看。

背景

上周,家里增加了新成员“蛋黄”,一只英短蓝金渐层小猫咪~因为只有三个月大,疫苗还没打全,决定安置在小房间里,先暂时不允许整个屋子游荡。但猫咪关在房间里,自己又总想知道猫咪在干什么……

猫咪“蛋黄”的照片

于是,翻出了吃灰多年的树莓派和树莓派摄像头。这个摄像头还是2014年买的,500万像素的版本,当时花了100RMB,现在只要不到50块了😂而且最新的 Raspberry Pi Camera V2 已经有 800 万像素,还有支持夜间拍摄的版本,也是100多块……

摄像头

本文介绍的 motion 不止支持树莓派摄像头,其它 USB 摄像头也可以使用,只要系统能正确驱动它。本文使用的是尘封的树莓派2和树莓派500W像素摄像头。

安装树莓派摄像头

由于我已经把树莓派粘住并挂到了墙上 - -|| 不想弄下来了,就从树莓派官网偷了几张图片来,下面两张图片分别来自 Raspberry Pi 4 Model B 产品介绍Raspberry Pi Camera V2 图片

树莓派主板的 CAMERA 插槽

首先找到树莓派上的 Camera 插槽,主板上会标出 CAMERA 字样,将卡扣朝上扣开即可。

Raspberry Pi Camera V2

接着将树莓派摄像头排线插入 CAMERA 插槽中。树莓派摄像头的排线末端,一面是金手指,一面是蓝色部分,将蓝色部分朝向网卡和 USB Type-A 那一侧。插入后将插槽的卡扣摁下,锁住排线。这样就安装好了

配置树莓派以启用摄像头支持

打开树莓派配置工具

sudo raspi-config 

config raspberry pi camera

依次选择 5 Interfacing Options - P1 Camera ,在 Would you like the camera interface to be enabled? 对话框上选择 Yes 。最后通过 Finish 退出,并重启树莓派。

测试摄像头

重启好后,我们来测试一下摄像头是否可用了。通过 raspistill 来拍摄一张照片来验证一下:

raspistill -o test.jpg

如果一切顺利,摄像头拍摄的内容会被记录到 test.jpg 中。否则请检查一下排线的连结是否插反,或者配置没有正确开启。

motion

motion 是一款开源的支持多种摄像头的监控软件。本文也通过它来把树莓派变成监控摄像头~

不过官方的定义中,motion 是一款“运动检测”软件,因为它支持当图像中一部分发生变化时拍照,或者触发脚本。不过这些功能不在这次文章讨论的范围内。

安装

我使用的是 Raspbian ,你如果使用其它的发行版本,使用对应命令进行安装即可。

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install motion

配置

motion 有着超多的配置,我们先配置一些必须的,打开 motion 的配置文件 /etc/motion/motion.conf

vi /etc/motion/motion.conf

vim 通过按下 / 来进行搜索,n 跳转到下一匹配

  1. daemon 的值修改为 on,让 motion 后台运行
  2. rotate 旋转画面,如果需要90°、180°旋转,可以在这里配置
  3. widthheight 修改画面分辨率(默认为 320*240 像素),我修改成了 1024768
  4. framerate 捕获的帧率,我修改为了 30
  5. stream_maxrate 修改流的帧率,因为我们需要实时查看,这个默认值是 1,会导致画面非常卡顿,我这里修改成了 30
  6. stream_localhost 的值修改为 off,允许通过非 localhost 来查看视频

上面配置中需要注意:

  • 画面分辨率越高越消耗资源
  • 如果画面非常卡,可以调整 stream_maxrateframerate 找到一个合适你的值

配置完成后保存并退出。

当 motion 运行以后,可以通过 SIGHUP 信号来重新加载配置文件

sudo killall -SIGHUP motion

也可以直接杀掉然后重新启动

sudo killall -w motion
sudo motion

测试

sudo motion

启动 motion 后,打开另一台电脑或手机上的浏览器,访问 http://树莓派地址:8081/ 即可查看到画面。

test-motion

这样就完成啦。

(注:非笼养,只是猫咪从小习惯住笼子,没有人的时候自己会进去睡觉。极端主义请绕道。)

参考