В последнее время я экспериментировал с Raspberry Pi Zero W и получил огромное удовольствие от командной строки. Для непосвященных это крошечный компьютер Arm, на котором работает Raspbian, производная от Debian. Он имеет процессор с тактовой частотой 1 ГГц, который можно было разогнать, и 512 МБ оперативной памяти, в дополнение к беспроводной связи и Bluetooth.
Несколько недель назад я построил устройство для открывания гаражных ворот с видео и доступом из сеть. Я хотел сделать что-то немного другое и остановился на видеорегистраторе.
Я хотел, чтобы камера и Pi Zero W были установлены на приборной панели и легко снимались. При загрузке он должен автоматически запускать RamDashCam (RDC), а также должно быть 4 сценария рабочего стола dashcam.sh, startdashcam.sh, stopdashcam.sh, shutdownshutdown.sh. Также создал папку с именем video на рабочем столе для видеофайлов. Мне также нужен был способ питания RDC, когда нет питания на USB-портах автомобиля. Наконец, я хотел, чтобы его данные были доступны в локальной сети, когда автомобиль находится дома.
Вот список запчастей:
- Комплект Raspberry Pi Zero W
- Официальная камера Raspberry Pi
- Карта Micro SD, минимум 32 гига
- Чехол созданный на 3d-принтере
- Портативное зарядное устройство, обычно используется для зарядки мобильных телефонов и планшетов в дороге.
- Двухсторонний скотч, который легко снимается, или полоски на липучке
Сначала я прошил SD-карту с помощью Raspbian, включил ее и сделал настройки. Я также установил статический IP-адрес.
Теперь самое интересное. Давайте создадим службу, чтобы мы могли запускать и останавливать RDC через systemd. Используя свой любимый редактор, перейдите к «/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
Затем я установил crontab для перезапуска RDC каждые 6 часов, так что это не одно непрерывное видео. Я установил 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 и камеру в корпус и установил их на автомобиле. Я прикрепил основание к приборной панели с помощью 2-х стороннего скотча. Затем я подключил Pi к USB-порту в автомобиле. Если у вас нет USB-порта или вы хотите запитать его от аккумулятора, можно использовать портативное зарядное устройство. Я использовал Power-Bank, который имеет мощность 15000 мАч и будет поддерживать Pi Zero в рабочем состоянии не менее 12 часов.
Основной способ подключения — к дисплею с входами HDMI. Включите его и дождитесь загрузки рабочего стола, вы должны увидеть окно с видеозаписью. Чтобы остановить его, щелкните файл stopdashcam.sh. Затем щелкните сетевой интерфейс в правом верхнем углу, подключитесь к Wi-Fi и установите статический IP-адрес. Вот и все.
Теперь, когда вы припаркованы дома, вы можете получить доступ к своему RDC через sftp-клиент со своего телефона или планшета (Android / Admin Hands или iPhone / FTPManager), используя IP-адрес и пароль, которые вы установили на pi.
Он все еще нуждаются в улучшении. Подумайте о добавлении GPS или 5g или даже о автоматической синхронизации данных при подключении к домашней сети.
Скільки RAM вільно при запису відео?
ПС: system:D явно не для таких речей…