Останнім часом я експериментував з 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 явно не для таких речей…