Ни для кого не секрет, что уже более десяти лет камеры намного «умнее». Они сами рассчитывают расстояние до объекта, наводя на него фокус, производят финальную обработку изображения с учетом его движения и освещенности. Даже единовременное кодирование поступающего сигнала и его последующая запись в цифровом виде производится достаточно «умной» начинкой камеры. Достигается полнота функций встроенными микрокомпьютерами разных классов. Причем если брать ситуацию создания своего самодельного устройства видеозахвата, не уступающего по функциям, производимым брендами, — можно воспользоваться готовыми, универсальными микроконтроллерами и дополнительными модулями для них разработанными. Вот, об одной из таких схем, где используется камера для Raspberry Pi 3 и хотелось бы рассказать далее.
Самодельная цифровая камера может пригодиться во многих областях жизни. Речь идет не только о частных лицах, которым хочется попробовать свои силы в создании простой или сложной конструкции. Снабженная микрокомпьютером она может использоваться в качестве охранной системы видеонаблюдения, которая по своим возможностям не уступит производимым официально. При этом может оказаться более выгодной и надежной по цене и качеству. Кроме того, доступность внутреннего устройства позволяет полностью изменять программное обеспечение, обрабатывающее поступающее видео, вплоть до внесения в него таких функций, как распознавание лиц или номеров машин, определение начала движения в поле зрения аппарата, или работы по расписанию.
В том же случае, если используется Raspberry Pi камера, как описано в статье, так тут вообще бесконечность вариантов. Возможностей и вычислительных мощностей настоящего компьютера вполне достаточно для всех тех объемов обработки, которые только могут прийти пользователю в голову. И все это с тем, что предоставляется удобный и привычный интерфейс Linux с полной сетевой интеграцией и совместимостью с самыми обычными профессиональными и бытовыми USB и IP камерами. Кстати, чуть не забыл — приятной неожиданностью станет возможность подключение нескольких таких устройств к одному распберри, у него «мозгов» достаточно на обработку поступающего сигнала от их всех.
Есть древний смартфон, от которых в современной реальности толку мало. Он будет использоваться как камера наблюдения для контроля дома. Нужно, чтобы малинка (Raspberry Pi) захватывала с него видео и сохраняла к себе. Но делать это она должна только при начале движения. А уж если начала работать, то требуется чтобы еще и фото делалось каждые 30 секунд. Причем желательно, чтобы ко всему этому был бы доступ с «большого» компьютера, для просмотра, происходящего. Почему Raspberry pi Camera, а не использование возможностей самого телефона? Проблема в том, что видеонаблюдение впоследствии будет реализовано с участием нескольких таких аппаратов и нужно получение и передачу данных с них свести в единый центр.
Далее подразумевается, что уже есть Raspberry Pi 3 с установленным и настроенным на него Raspbian. Хотя начинать установку все равно придется со смартфона. Подключаем его к домашней сети по WIFI и устанавливаем программу IP Webcam. Запускаем ее и настраиваем параметры:
Изображение. Чтобы не перегружать канал передачи, устанавливаем достаточно скромными. Нажимаем на «Настройки видео», и в подменю выбираем наиболее подходящий вариант. У меня изначально было так:
Затем отключаем запись, так как функция будет возложена на малинку. В «Датчики движения и звука», ставим галочку на «включить датчик движения» и снимаем ее на «запись видео». Первое делается для экономии заряда батареи, чтобы смартфон начинал отправку видео только при обнаружении движения. Если также отключить эту функцию, как и следующую, то работать он будет все время на передачу, как обычная web-камера.
Далее запуск работы и запоминание цифр адреса аппарата в сети, по которым должно производиться подключение. Они пригодятся впоследствии, для настройки в нашем проекте Raspberry Pi Camera. Они отображаются внизу пред просмотра IP Webcam во время его работы в режиме IP-камеры. Чтобы начать, нужно нажать «Запустить» внизу списка окна программы. IP-адрес в приведенном примере — http://192.168.43.1:8080.
Все, со смартфоном закончили, далее настраиваем малинку. Подразумевается, что она уже соединена с общей локальной сетью. Набираем в ее консоли следующие последовательности, которые установят необходимое программное обеспечения для работы:
su -
apt-get update
apt-get install motion
Вводим пароль и отвечаем «y» на все вопросы. Ждем установки. После делаем настройку непосредственно параметров программы. Что касается ее самой, то введенными командами была установлена бесплатная система видеозаписи с открытым исходным кодом. Ее некоммерческая направленность не говорит о простоте и слабой функциональности. Наоборот, развиваемая большим коллективом сторонних авторов она обладает на редкость богатым функционалом.
Итак, параметры «Motion» можно найти в /etc/motion/motion.conf. Не выходя после предыдущих действий из терминала открываем конфигурацию в nano:
nano / etc / motion/motion.conf
Далее проходим по параметрам и изменяем:
daemon off
Меняем off
на on
videodevice /dev/video0
комментируем, проставляя перед ним символ «;».
;videodevice /dev/video0
прописываем ниже строчку связи со смартфоном используя запомненный адрес:
netcam_url http://192.168.43.1:8080
Параметры width
и height
в файле ставятся аналогичным настройкам камеры. В нашем случае
width 640
height 480
заменяем на
width 1920
height 1088
Изначально такие параметры видео сильно избыточны. Для видеонаблюдения вполне достаточно будет использовать 640×480. Да и сеть загружена будет меньше.
Разрешаем трансляцию видео по сети — stream_localhost on
на off
. Параметр webcam_localhost on
также заменяем на off
. Далее настройка записи по движению. За это отвечают несколько переменных:
target_dir /home/eb
#куда помещать отснятый материал
movie_max_time 60
#длина 1 ролика записи при обнаружении движения
movie_codec mkv
#контейнер видео.
event_gap 60
#сколько ждать окончания движения
Теперь картинки:
picture_output off
заменить на
picture_output best
Команда Motion указывает на сохранение только тех изображений, где больше всего прошло изменений.
После настройки устанавливаем автоматический запуск программы. В консоли:
nano /etc/default/motion
заменяем
start_motion_daemon no
на
start_motion_daemon yes
сохраняем, далее набираем
systemctl enable motion
systemctl start motion
и проверяем статус
systemctl status motion
если все настроено нормально, то будет сообщение, что демон активен.
Подключение к видеонаблюдению доступно с любого компьютера локальной сети через браузер, достаточно набрать в строке адреса http://[адрес малинки]:8081.