【智能无线小车系列九】通过USB摄像头实现网络监控功能
如果仅有静态图像可能还不足以满足我们的需求,我们可能会需要用到实时的监控功能。这里介绍一款小应用:motion。motion的功能可强大了,不仅可以将监控的画面通过视频传输,实时展现,更为强大的是,motion可以感知图像中物体的运动,然后触发一定的时间,例如报警等功能,当然这些motion本身并没有时间,具体的事件处理需要我们自己去完成。
1.安装USB摄像头 ,这里建议使用webCam
2.在树莓派中,其本身并未集成motion这款应用,因而我们需要在联网状态下安装强大的网络监控软件motion,输入指令:
pi@raspberrypi ~$sudo apt-get install motion
如果安装不了的,可以先sudo apt-get update 一下。
3.安装完成之后,我们需要进行必要的设置。默认情况下,motion是不允许对WebCam的远程访问的,这意味着我们只能在树莓派桌面的浏览器下访问motion,尽管这是一个出于安全方面的考虑,但是不能满足我们远程对小车进行导航的设计要求,于是我们需要手动去开启这一功能。
使用vi编辑motion的配置文件,默认文件所在路径为:/etc/motion/motion.conf。注意:修改核心配置文件肯定是需要用到管理员权限的。
pi@raspberrypi ~$ sudo vi /etc/motion/motion.conf
4.打开文件之后,在命令模式下使用查找命令“/”找到”control_localhost on “和”webcam_localhost on“这两行,改为以下两行后,保存后退出。
control_localhost off
webcam_localhost off
5.运行motion软件,motion的运行需要使用管理员权限,然后输入:motion -n。
pi@raspberrypi ~$sudo motion -n
注意:motion程序是一个阻塞shell的程序,当我们需要停止其运行时,可以使用“Ctrl +C”强制终止其运行。
6.配置了一大堆,终于要到了见证奇迹的时刻了:监控到的画面即将传送回来!
打开firefox浏览器,在浏览器的地址栏中输入如下地址:
http://192.168.1.24:8081/
注意:这里的192.168.1.24是测试时树莓派所分配到的IP地址,更改成自己的即可。关于浏览器的问题刚开始让我纠结了很长时间,很多浏览器都不支持这一软件,害我以为是配置环节哪里出现了问题,反复调试了一个下午……后来终于明白了原因所在,实际测试的时候,由于motion是开源软件,对于同为开源软件的firefox浏览器的支持力度是最好的,其他的主流浏览器如chrome、IE和猎豹都有测试,都是以失败而告终。
配置网页:http://192.168.1.24:8080/,测试效果如下。控制页面提供了一些远程服务调用接口,通过webservice 的形式提供给用户,可以加以调用封装在客户端程序里面,从而使得用户的控制更加方便,也更加友好~