Відеореєстратор на базі Raspberry Pi Zero W

Останнім часом я експериментував з 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-порти автомобіля. Нарешті, я хотів, щоб його дані були доступні в локальній мережі, коли автомобіль знаходиться вдома.

Ось список деталей:

  1. Комплект Raspberry Pi Zero W
  2. Офіційна камера Raspberry Pi
  3. Карта Micro SD, мінімум32 гіга
  4. Чохол, створений на 3d-принтері
  5. Повербанк, зазвичай використовується для зарядки мобільних телефонів і планшетів в дорозі.
  6. Двосторонній скотч, який легко знімається, або смужки на липучці

Спочатку я прошив 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 або навіть про автоматичної синхронізації даних при підключенні до домашньої мережі.

Поділіться своєю любов'ю

Залишити відповідь

1 Комментарий
Новіші
Старіші Найпопулярніші
Вбудовані Відгуки
Переглянути всі коментарі
VINRARUS

Скільки RAM вільно при запису відео?
ПС: system:D явно не для таких речей…

1
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x