https://www.raspberrypi.com/news/watch-your-fish-with-a-raspberry-pi-camera/
作者:Ashley Whittaker 2023年1月23日
使用树莓派可以轻松进行远程视频监控。在这个#MagPiMonday上,PJ Evans向您展示了如何使用防水摄像头外壳来获得一些水族朋友的独特视角。
装置像鱼一样漂浮着,所以需要一些巧妙的方法来保持它的位置
本教程的灵感来自树莓派摄像头模块(https://www.raspberrypi.com/products/camera-module-3/)的Entaniya防水外壳(https://e-products.entaniya.co.jp/en/list/waterproof-case-for-raspberrypi-v2-camera-module/)。这种装置可保护相机模块,而不会扭曲图像。有了它,我们可以将相机浸入水族馆的深处,通过流媒体视频来观测我们的鱼朋友。如果这对你还没有吸引力,您可以调整本教程,以便能够监控任何您喜欢的视频流,无论是室内还是室外。与家庭助理(Home Assistant)相结合,您很快就能从世界任何地方用你的摄像头进行监控。
01.准备你的树莓派
为了获得最佳的图像质量,树莓派4(https://www.raspberrypi.com/products/raspberry-pi-4-model-b/)是完美的选择。当然,你也可以从树莓派Zero-2W中获得良好的效果,而且安装起来也会更容易。无论您选择哪种,我们都建议您使用树莓派Lite(Legacy)操作系统。该项目使用raspivid工具,最新版本的操作系统对其支持有限。原来的“Buster”映像仍然具有完全兼容性。你可以在“树莓派OS(其他)”选项下的树莓派映像中找到它。设置Wi-Fi,并确保“sudo apt -y update && sudo apt -y upgrade”,这样升级后一切都是最新的。
02.安装和配置相机
断开树莓派Pi的电源后,安装带状电缆和摄像头模块(稍后我们将介绍)。电缆在任何方向上可工作;然而,蓝色侧(没有暴露接触的一侧)需要在每一端抵靠黑色夹。找到树莓派上标记为“CAMERA”的连接器,抬起夹子,轻轻插入电缆,然后再次按下夹子。对摄像头模块重复上述步骤。给树莓派通电,然后在命令行运行sudo raspi config。转到“Interfaces”,然后选择“Camera”,然后单击“Enable”。然后你需要重新启动。
防水的鱼监控器树莓派外壳已拆卸需要组装。该套件易于构建,为您的相机创造了防水空间
03.测试设置
我们先把摄像头装好,检查一切是否正常,然后再把它放在防水的壳子里。重新启动后,运行以下命令:
raspivid-f
如果一切顺利,你应该在屏幕上看到摄像机的视频五秒钟。如果没有,请检查电缆是否正确插入,以及是否已启用相机,如步骤2所示。现在检查方向。当电缆从模块向上时,图像是否正确向上?如果没有,可以使用以下命令进行切换:
v4l2-ctl --set-ctrl horizontal_flip=1
最后,检查一切是否对焦,并相应调整摄像头。
04.安装依赖项
我们将使用实时视频流服务器来观测我们的鱼(或您决定的任何东西)。这需要一些支持软件,以便我们能够构建和运行它,所以现在是准备好一切的时候了。确保您已经运行了“sudo apt -y update && sudo apt -y upgrade”,如步骤1所示。输入以下命令:
sudo apt install cmake liblog4cpp5-dev libv4l-dev git
这将安装您所需的一切。
这条小鱼为了舒适而靠近了一点。获得清晰的图像可能需要几次才能获得最佳效果
05.构建视频流服务器
不幸的是,APT上没有流媒体服务器,所以我们必须自己构建它。这很简单,只要您仔细按顺序输入下面的命令。在命令行中,输入以下内容:
cd
git clone https://github.com/mpromonet/v4l2rtspserver.gitcd
v4l2rtspserver
cmake .
make
sudo make install
这将下载源代码,为树莓派准备一个配置,然后编译软件并安装它。一旦安装,您可以根据需要删除v4l2rtserver目录。
06.测试视频流
在我们开始观测鱼之前,让我们测试视频流本身是否正常。在另一台计算机上,安装VLC(videolan.org)。这是一个多用途视频播放应用程序,支持我们正在使用的服务器。从树莓派运行以下命令:
v4l2rtspserver -W 640 -H 480 -F 15 -P 8554
/dev/video0
您应该在屏幕上看到一些文本输出。在另一台计算机上,打开VLC,单击“文件”,然后单击“打开网络”。在URL框中,输入:
rtsp://<ip-address>:8554/unicast
将<ip address>替换为树莓派的ip地址(使用ip addr查找)。单击“打开”并等待几秒钟。你会看到来自摄像头的视频。
组装好的装置。现在,无论是在鱼缸里还是在室外,相机都受到了保护
07.Boot时启动
现在我们有了一个工作的视频流,我们需要确保它总是在Boot时启动。服务器已存在服务文件;我们只需要更改一行。打开文件:
sudo nano /lib/systemd/system/
v4l2rtspserver.service
找到以“ExecStart”开头的行,并将其更改为如下所示:
ExecStart=/usr/local/bin/v4l2rtspserver -W
640 -H 480 -F 15 -P 8554 /dev/video0
检查它是否与此处所写的完全相同,然后使用CTRL+X,后跟Y和ENTER保存文件并关闭编辑器。现在使能服务:
sudo systemctl enable v4l2rtspserver
要测试它,请重新启动,然后再次使用VLC打开流。
08.将相机安装在机壳中
让我们把注意力转向防水壳。按照包含的说明,将底座与外盖分离。现在打开提供的防水垫,将两片垫子放在底座中央提供的空间中。如果有湿气进入,这些会吸收水分,保护您的相机。拧入相机的适配器底座,然后小心地将连接的带状电缆穿过插槽。最后,将相机安装到适配器上,注意不要过度拧紧螺钉。确保电缆安装正确。
一旦您的视频流开始运行,您可以将其添加到家庭助理,以便您随时观测我们的鱼
09.安装摄像头盖
定位橡胶O形圈并将其放置在底座上,使其位于提供的凸起上。取下透明盖,将其放置在底座上,并用M3螺母和螺栓固定。我们建议穿过每一个,而不是底座周围;这将确保更均匀的贴合。同样,小心不要过度拧紧螺钉。将外盖扣在透明盖上。取下小橡胶索环,非常小心地将带状电缆穿过,穿过索环,直到其与底座接触。插入槽中并用金属板固定。你现在有了一个防水的外壳。
10.安装防水摄像头
接下来发生的事情需要一些主动性。这取决于您要监视的内容,决定了您将如何设置这些内容。对于我们的水族馆项目,您可以连接一些橡胶“吸盘”以保持相机的位置,或者找到一个合适的地方将其放置在基底或沙子上。对于户外使用,Entaniya出售一种壁挂式适配器,以方便操作。无论是哪种方式,您都需要考虑如何将带状电缆放入或取出油箱,以及如何安全安装树莓派。您最大的限制是电缆本身的长度。
11.添加到家庭助理
使用此监控解决方案的最佳方式之一是家庭助理,这是一种流行的家庭自动化操作系统。幸运的是,像这样的远程摄像头的支持已经融入到服务中。要添加流,您需要能够访问和编辑configuration.yaml文件。添加以下文本:
camera:
- platform: ffmpeg
name: FishCam
input: rtsp://<ip-address>:8554/unicast
如前所述,将<ip地址>更改为树莓派的地址。现在重新启动家庭助理。在您的仪表板中,您现在可以使用新创建的“FishCam”实体添加“图片浏览”卡。现在,您可以在任何可以访问家庭助理的地方观测您的鱼。
12.下一步
有许多方法可以在这个项目上构建。如果你在水族箱里安装了鱼摄像头,还有很多事情要做。用单线温度传感器监测水族箱的温度,并在出现问题时发出警报。或者,使用流量传感器监视水泵。如果您对远程监控更感兴趣,请尝试在视频源的同时,在家庭助理中添加状态检测或面部识别功能。运动检测可用于触发记录或警报。户外摄像头可以用来监视后院的鸡或前门的人。一切都由你来决定。
作者想感谢siytek.com(https://siytek.com/),其优秀的视频流教程为本文提供了帮助。