使用 Raspberry Pi Zero W 构建行车记录仪
我最近一直在玩 Raspberry Pi Zero W,在命令行中玩得很开心。对于那些不熟悉它的人来说,它是一个运行 Raspbian(Debian 的衍生版本)的微型 Arm 计算机。它有一个 1 GHz 处理器,可以超频,以及 512 MB 的 RAM,此外还有无线 g 和蓝牙。
几周前,我构建了一个带视频的 гаражные ворота 开门器,可以通过网络访问。我想做一些不同的事情,于是决定为我姐夫的 SUV 制作一个行车记录仪。
我希望摄像头和 Pi Zero W 安装在仪表板上,并且易于拆卸。启动时,它应该自动启动 RamDashCam (RDC),并且还应该有 4 个桌面脚本 dashcam.sh、startdashcam.sh、stopdashcam.sh、shutdownshutdown.sh。还需要在桌面上创建一个名为 video 的文件夹,用于存放较旧的视频文件。当车辆的 USB 端口没有电源时,我也需要一种为 RDC 供电的方法。最后,我希望当车辆在家时,可以在本地局域网上访问其数据。
以下是零件清单
- Raspberry Pi Zero W 套件(我的来自 Vilros.com)
- Raspberry Pi 官方摄像头
- Micro SD 卡,至少 32GB
- 来自 thingverse.com 的 3D 打印外壳
- 便携式充电器,通常用于在旅途中为手机和平板电脑充电
- Command 胶条,类似于易于移除的双面胶带或魔术贴
首先,我用 Raspbian 刷写了 SD 卡,启动电源并按照设置菜单操作。我还设置了静态 IP 地址。
现在开始有趣的部分。让我们创建一个服务,以便我们可以通过 systemd 启动和停止 RDC。使用您喜欢的编辑器,导航到 "/etc/systemd/system/
" 并创建 "dashcam.service
" 并添加以下内容
[Unit] Description=dashcam service After=network.target StartLimitIntervalSec=0 [Service] Type=forking Restart=on-failure RestartSec=1 User=pi WorkingDirectory=/home/pi/Desktop ExecStart=/bin/bash /home/pi/Desktop/startdashcam.sh [Install] WantedBy=multi-user.target
现在已经完成,让我们启用该服务,运行以下命令:sudo systemctl enable dashcam
我在桌面上添加了这些脚本来启动和停止 RDC,这样我的姐夫就不必在菜单或命令行中折腾了。请记住 "chmod +x" 这 4 个脚本。
startdashcam.sh
#!/bin/bash # remove files older than 3 days find /home/pi/Desktopvideo -type f -iname '*.flv' -mtime +3 -exec rm {} \; # start dashcam service sudo systemctl start dashcam
stopdashcam.sh
#!/bin/bash sudo systemctl stop dashcam.service
dashcam.sh
#!/bin/bash # set variable form the date when=$(date) # make sure dashcam.log is present touch dashcam.log # mv the current video to the same name but with the date added mv dashcam.flv $(date+%F-%H:%M).dashcam.flv # log to dashcam.log every time the service is started echo "Started at: $when" >> dashcam.log # record at 1024x760 with a Desktop preview window of 640x480, pipe to ffmpeg and output dashcam.flv raspivid -t 0 -w 1024 -h 760 -fps 25 -b 5000000 -p 0,0.640,480 -vf -o - | ffmpeg -i - -vcodec copy -an -f flv -r 25 -pix_fmt yuv420p dashcam.flv -y
shutdown.sh
#/bin/bash sudo shutdown now
现在我们可以启动行车记录仪服务了
sudo systemctl start dashcam
接下来,我设置了一个 cronab,每 6 小时重启 RDC,这样就不会是一个连续的视频。我将 crontab 设置如下
0 */6 * * * /home/pi/Desktop/startdashcam.sh >/dev/null 2>&1
好的,软件方面我们都设置好了。在 thingiverse.com 上滚动浏览,我找到了完美的外壳 (https://www.thingiverse.com/thing:2797816)。它直立在一个底座上,可以容纳 Pi Zero W、摄像头以及散热片所需的足够空间。我启动了我的 3D 打印机并打印了三个部件。效果非常好。
我的下一步是将 Pi Zero W 和摄像头放入外壳中,并将其安装在我的测试车辆中。我用 Command 胶条或魔术贴将底座固定在仪表板上。接下来,我将 Pi 连接到车辆的 USB 端口,如果您没有 USB 端口或想通过电池供电,我使用了便携式充电器。我使用的那个有 15000mAh 的电量,可以使 Pi Zero 运行至少 12 个小时。
现在我们已经设置好了一切,我向我的姐夫介绍了如何使用它。连接它的主要方式是连接到带有 HDMI 输入的显示器。启动电源并等待桌面加载,您应该会看到一个带有视频录制的窗口。要停止它,请单击 stopdashcam.sh。接下来,单击右上角的网络接口,连接到您的 wifi 并设置静态 IP 地址。就这样了。
现在,当您停在家中时,您可以使用 sftp 客户端从您的手机或平板电脑(Android/ Admin Hands 或 iPhone/ FTPManager)使用您在 Pi 上设置的 IP 地址和密码访问您的 RDC。
仍有改进的空间,但这应该能让您入门。考虑添加 GPS 或 5g 可访问性,甚至在连接到家庭网络时自动同步数据。