不专业的公寓视频监控既有趣又便宜

从我在保安室里安装了GSM警报系统的那一刻起,我就想到,如果触发了警报传感器(或者警报是错误的),那么在我不在的时候让“眼睛”呆在公寓里会很好。 由于我是信息技术领域的工程师,因此毫无疑问,任何专业解决方案都可以采用注册服务商和一堆摄像机的形式,只有我自己动手才能完成。 还决定立即将预算设置为极限,如果该项目成功,则已经在考虑进一步改进和现代化。


首先,我们选择铁。 “眼睛”是指相机,什么也看不到。 然后就产生了一个问题,即如何处理接收到的图像-将其存储,传输到某个地方等 因此,我想到了通过UPS与4G调制解调器连接的路由器,以提供稳定的Internet通道,而这很难引起潜在的盗窃。

在工作中,几年来,我们已经成功地将路由器与ZyXel Keenetic USB端口配合使用(特别是我已经过时的Giga2型号)。 在固件开发人员“搞砸” OPKG(程序包管理器)之类的事情之后,便有可能将我的路由器变成具有linux的可能性最大的个人计算机,我决定将其用于我的目的。 总的来说,我已经在家中有一台连接了4G调制解调器的计算机路由器,但我只缺少USB相机的“眼睛”。 记得三,四年前,我为父母购买了一款Logitech C270网络摄像头,以便他们通过计算机上的Skype与亲戚进行交流,而现在他们已经通过平板电脑进行交流-我向他们索要了相机。 顺便说一句,在摄像机的前面板上有一个LED,用于显示摄像机是否正在工作-将来,从视觉上确定视频监视系统的操作非常方便。


配对并配置铁


因此,有铁。 而当我们在预算之内时,不禁会感到高兴。
我的路由器上有两个USB端口,其中一个已经被4G USB调制解调器占用。 我们将通过将Logitech C270摄像机粘贴在那里来使用第二个摄像机。 为了使路由器与摄像机配合使用,必须首先在路由器上安装OPKG组件(在该组件中,我们勾选了除“支持USB DVB调谐器的内核模块”以外的所有复选标记)。 但是有一个陷阱-OPKG要在路由器中工作,您需要磁盘空间(1 GB足以容纳眼睛),但是在哪里可以得到它,因为路由器上的两个USB端口都已经被占用了? 有两种解决方案:要么是带有USB闪存驱动器的USB集线器(立即想到的第一件事),要么是您可以在我的4G USB调制解调器中放入microSD卡的事实。 在家中发现的8 GB的慢速microSD卡很快就进入了调制解调器。 将文件系统放在NTFS卡上(尽管强烈建议使用EXT2或EXT3)。 创建安装文件夹,然后将所需的Entware映像上载到该文件夹​​。

然后我们转到路由器的管理面板的OPKG选项卡,选择我们的存储卡,在“ initrc脚本”行中写

/opt/etc/init.d/rc.unslung 

然后单击“ 应用”
安装OPKG后,SSH客户端(我在装有Windows的笔记本电脑上使用Putty程序)紧贴路由器并运行以下命令来更新OPKG:

 opkg update opkg upgrade 

默认情况下,在SSH上, 密码为keenetic (或zyxel ,具体取决于固件版本)。 强烈建议您使用passwd命令更改密码。

软体类


接下来,安装运动程序。

 opkg install motion 

是她将与我们的相机一起工作,分析图片中的变化并指示路由器将接收到的图像发送到哪里。 运动程序设置文件为\ etc \ motion \ motion.conf,对其进行编辑,我们将更改所需的设置。 首先,我将相机支持的最大分辨率设置为1280x720,将其旋转180度(将相机倒置时更方便),每秒记录2帧。

 rotate 180 width 1280 height 720 framerate 2 

我没有看到需要记录整个视频流并将其广播到Internet的需要,因此我设置了动议来记录视频并仅在图像改变时进行传输。 在配置运动的过程中,很明显它不支持我的相机使用MJPEG模式,而仅支持YUYV模式-因此,工作的结果不是视频序列,而是仅JPEG照片序列。

 v4l2_palette 15 

我还配置了动作,以便将照片的副本复制到外部FTP服务器。

 on_picture_save wput ftp://login:pass@XX.29.136.XX %f 

如果将带有存储卡的路由器从公寓中取出,则仍然有机会查看这是如何发生的。

强烈建议您更改登录密码以连接到相机。

 stream_authentication login:pass 

完成所有设置后,在浏览器中查看以下结果:

 IP:8081 


注意! 如果浏览器中没有看到任何图像,则应注意您的Keenetic固件版本。 大概从固件版本2.11.A.4.0-1开始,默认情况下不加载视频模块,因此您需要将它们加载到“ SSH”“ pens”中或将它们添加到启动脚本中:

 /opt/sbin/insmod /lib/modules/3.4.113/i2c-core.ko /opt/sbin/insmod /lib/modules/3.4.113/i2c-dev.ko /opt/sbin/insmod /lib/modules/3.4.113/videodev.ko /opt/sbin/insmod /lib/modules/3.4.113/videobuf2-core.ko /opt/sbin/insmod /lib/modules/3.4.113/videobuf2-memops.ko /opt/sbin/insmod /lib/modules/3.4.113/videobuf2-vmalloc.ko /opt/sbin/insmod /lib/modules/3.4.113/v4l2-common.ko /opt/sbin/insmod /lib/modules/3.4.113/uvcvideo.ko 

如果之后仍未显示图像,则首先查看Keenetic日志,即连接相机后会发生什么。 是否将相机检测为视频设备等?

管理学


完成所有这些工作后,我们想到了需要以某种方式进行管理的想法,即 在适当的时间打开和关闭(且通常在远程)。 我通过在Android智能手机上安装SSH客户端解决了该问题。 选择SSH之后,客户端便选择了ScriptKitty。 通过按智能手机上的两个或三个键,您可以快速打开或关闭运动。


通过SSH运行运动:

 /opt/etc/init.d/K99motion restart 

通过SSH完成运动:

 /opt/etc/init.d/K99motion stop 

但是还有一个问题:4G调制解调器上的“灰色” IP地址。 通过Wi-fi连接到路由器,您可以打开或关闭运动,而不会出现任何问题。 但是,如果您不在路由器的Wi-Fi范围内,并且路由器的IP地址为“灰色”怎么办? 我找到了以VPN形式进行的救援。 方案如下-使用家用路由器,我使用PPTP客户端(使用PPTP服务器安装在路由器上)通过静态IP固定在使用该路由器的路由器上。 现在,将SSH端口从工作路由器转发到家庭路由器后,我终于可以通过从智能手机访问工作中路由器的静态地址来远程控制摄像机。

我还尝试使用Tasker自动化工具(它具有自己的单独的SSH客户端)使控件自动化-监视智能手机与Wi-Fi路由器的连接,并据此打开或关闭运动。 逻辑是这样的:智能手机已连接到Wi-Fi路由器-所以我在家-关闭相机。 智能手机未连接到Wi-Fi路由器-因此我不在家-打开相机电源。 但是经过试验后,他拒绝了此选项-误报过多。 例如,我在家,智能手机入睡,路由器丢失了智能手机,相机打开-等等。 目前,我仅使用手动方法。

结论


原则上,我从项目中获得的就是我得到的。 我可以随时“看到”公寓,并且在触发任何GSM警报的情况下,我已经可以决定下一步要做什么。 在实施过程中,我解决了很多问题,但是从所获得的知识和计划的实施中,他们的解决方案引起了一定的刺激。

Source: https://habr.com/ru/post/zh-CN420005/


All Articles