Начитавшись на Хабре о timelapse с Raspberry Pi (раз, два) и после того как трем машинам на стоянке пробили за одну ночь колеса, а за неделю до того одну машину вскрыли, я решил, что нужно организовать малобюджетное видеонаблюдение.
На супер-крутую HD IP камеру с wi-fi бюджета нет, да и, честно говоря, желания, так как люблю покопаться в конфигах, потыкать провода и всякое прочее.
В общем, кому интересно, прошу под кат.
Железная часть
• Центр вселенной процессинга — Raspberry Pi (43$ за плату с картой SD 8Gb + 16грн. за доставку Новой почтой из областного отделения DHL).
• Плата видео захвата – EasyCap на чипсете STK1160 (12$ из Китая).
• Связь с миром – Wi-fi dongle COMFAST (6$ из Китая).
• Резервное питание – NONAME PowerBank (6$ из Китая).
• Аналоговая камера вроде на CCD от Sony (была в наличии много лет).
• Дешевая NONAME вебкамера для примера (7$ из Китая).
• Зарядное устройство для PowerBank на 1А, блок питания для аналоговой камеры на 9В, пара проводов microUSB (всё добро было в наличии).
Программная часть
Операционная система
Устанавливаем на Raspberry Pi Debian Wheezy (взято тут). Я не стал заморачиваться с юниксовым dd и Windows утилитой Win32DiskImager и скачал Noobs Lite, с помощью которой и установил в последствии желанный Raspbian Wheezy.
При первом запуске нас приветствует raspi-config, где можно поменять локаль, пароль пользователя pi, разогнать процессор (советую делать только после установки радиаторов). Далее следует перезагрузка и вот мы в линуксе.
Сразу же советую сделать:
sudo apt-get update sudo apt-get upgrade
Подключение к сети
Устанавливаем драйвера на wi-fi модуль:
sudo apt-get install firmware-ralink
Далее прописываемся в своей wi-fi сети
sudo nano /etc/network/interfaces
allow-hotplug wlan0 auto wlan0 iface wlan0 inet dhcp wpa-ssid “ИМЯ_ВАШЕЙ_СЕТИ” wpa-psk “ПАРОЛЬ_К_ВАШЕЙ_СЕТИ”
Сохраняем. Выполняем команду:
sudo /etc/init.d/networking restart
и отключаемся от проводного подключения.
Программа захвата
Долго искал что то подходящее, перебирал разные варианты представленные в том числе и на Хабре, но выбор пал на FSwebcam. Устанавливаем его:
sudo apt-get install fswebcam cd /home/pi touch fswebcam.conf sudo nano /home/pi/fswebcam.conf
И в конфиге пишем:
device /dev/video0 pid 9990 input 0 loop 10 skip 20 resolution 720x576 top-banner title "Stoyanka@RPi" timestamp "%d-%m-%Y %H:%M:%S (%Z)" palette YUYV jpeg 100 save /home/pi/webcam/capture."%Y%m%d%H%M%S".jpg save /usr/share/nginx/www/wc/capture.jpg
Сохраняем.
По конфигу надеюсь всё просто:
• device /dev/video0 – наше видео устройство
• loop 10 – захват картинки каждые 10 минут
• skip 20 – перед захватом картинки пропускать 20 кадров
Запускаем FSwebcam:
sudo fswebcam –c /home/pi/fswebcam.conf –b
И смотрим как обновляется картинка.
В дебри nginx лезть не буду и так в интернете есть много простых примеров. Всё добро выводиться на веб страничку с одной картинкой, которая в конфиге FSwebcam сохраняется в /usr/share/nginx/www/wc/capture.jpg.
Пример картинки с вебкамеры утром
Пример картинки с аналоговой камеры утром
По фото можно предположить что фото с вебкамеры лучше, «цветнее», но ночью всё меняется. При чем на вебкамере ночное качество максимум что можно вытянуть, а на аналоговой – дефолтные настройки, какие еще можно подергать.
Пример картинки с вебкамеры ночью
Пример картинки с аналоговой камеры ночью
Да и угол обзора у аналоговой больше. Идем дальше.
Так как мощности Raspberry Pi будет мало для компиляции видео, я решил, что лучше будет это делать на стареньком ноутбуке Toshiba Satellite A100.
Подключаемся к ноутбуку по sshfs (мне показалось так проще будет).
Устанавливается он просто:
sudo apt-get install sshfs
и наконец:
sudo echo 'ROOT_PASSWORD' | sshfs root@192.168.1.1:/usr/storage/primary/webcam /home/pi/webcam -o password_stdin
Я не стал мучиться каждый раз вводить пароль и забил эту команду в crontab при перезагрузке. Теперь все картинки с штампом времени в имени файла складируются на ноутбуке, где по крону в 8 утра запускается команда:
mv -a /usr/storage/primary/webcam/. /home/note/webcam
Далее переименовываем все фото по одному шаблону, чтобы их aconv скушал:
ls *.jpg| awk 'BEGIN{ a=0 }{ printf "mv %s cap_%04d.jpg\n", $0, a++ }' | bash
Склеиваем видео:
avconv -i cap_%04d.jpg -c:v libx264 -r 24 -crf 21 test.mkv
Очищаем папку от фото. После этого видео заливаем вручную или автоматически на YouTube и накладываем музыку, чтобы не скучно смотреть было.
Сорри за видео со старой вебкамеры, так как аналоговую только вчера подключил и не успел всё донастроить и склеить видео.
Рабочий вид системы
Примечания
Цены на товары из Китая приведены с сайта Aliexpress в момент покупки.
Raspberry Pi запитан от PowerBank, который подключен к зарядке, что позволяет системе автономно работать при пропадании питания до 4 часов. Правда питание на аналоговую камеру зарезервировано через ИБП.
Перечень ссылок
Скрипт загрузки видео на Youtube
Установка драйверов на wi-fi Ralink
Подключение к wi-fi сети
Монтирование удаленной папки
О FSwebcam
Почему нужно покупать EasyCap именно на чипсете STK1160
У меня всё. Буду рад если кому то будет полезно и интересно.
ссылка на оригинал статьи http://habrahabr.ru/post/200934/
Добавить комментарий