使用 Raspberry Pi Zero W 构建行车记录仪

作者:Ramon Persaud

我最近一直在玩 Raspberry Pi Zero W,在命令行中玩得很开心。对于那些不熟悉它的人来说,它是一个运行 Raspbian(Debian 的衍生版本)的微型 Arm 计算机。它有一个 1 GHz 处理器,可以超频,以及 512 MB 的 RAM,此外还有无线 g 和蓝牙。

raspberry pi zero w with wireless g and bluetooth

几周前,我构建了一个带视频的 гаражные ворота 开门器,可以通过网络访问。我想做一些不同的事情,于是决定为我姐夫的 SUV 制作一个行车记录仪。

我希望摄像头和 Pi Zero W 安装在仪表板上,并且易于拆卸。启动时,它应该自动启动 RamDashCam (RDC),并且还应该有 4 个桌面脚本 dashcam.sh、startdashcam.sh、stopdashcam.sh、shutdownshutdown.sh。还需要在桌面上创建一个名为 video 的文件夹,用于存放较旧的视频文件。当车辆的 USB 端口没有电源时,我也需要一种为 RDC 供电的方法。最后,我希望当车辆在家时,可以在本地局域网上访问其数据。

以下是零件清单

  1. Raspberry Pi Zero W 套件(我的来自 Vilros.com)
  2. Raspberry Pi 官方摄像头
  3. Micro SD 卡,至少 32GB
  4. 来自 thingverse.com 的 3D 打印外壳
  5. 便携式充电器,通常用于在旅途中为手机和平板电脑充电
  6. 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 打印机并打印了三个部件。效果非常好。

rashdamcam-parts

rashdamcam-assembled

 

我的下一步是将 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。

rashdamcam-display

 

仍有改进的空间,但这应该能让您入门。考虑添加 GPS 或 5g 可访问性,甚至在连接到家庭网络时自动同步数据。

加载 Disqus 评论