Рубрики
Проекты на Raspberry Pi

Камера видеонаблюдения на Raspberry Pi с захватом движения

Системы безопасности с каждым годом занимают все более прочное место в жизни современного общества. Системы видеонаблюдения на основе видеокамер (CCTV cameras) становятся все более популярными для охраны личных жилищ и офисов. Хотя в последнее время значительно снизились цены на обычные камеры видеонаблюдения, тем не менее, системы видеонаблюдения с опцией трансляции видеоизображений через сеть интернет все еще остаются достаточно дорогими.

В этой статье мы рассмотрим создание очень дешевой камеры видеонаблюдения с захватом движения на основе платы Raspberry Pi и обычной USB веб камеры. Камеру можно будет подготовить к работе за несколько минут.

Но прежде чем мы перейдем к сути проекта, кратко рассмотрим программное обеспечение (ПО) для систем видеонаблюдения под названием Motion, которое является «сердцем» этого проекта. Motion представляет собой свободно распространяемое программное обеспечение с открытым исходным кодом, предназначенное для систем видеонаблюдения (CCTV software) и работающее в операционной системе Linux. Оно способно обнаруживать движение и начинать запись видео при его обнаружении. Когда на вашей Raspberry Pi будет установлено ‘Motion’, вы легко можете превратить ее вместе с камерой в своеобразную систему безопасности и получить доступ к следующему функционалу:

  1. Доступ к видеоизображениям, получаемым с камеры, из любой точки сети Интернет через веб-браузер, для этого необходимо будет ввести IP адрес вашей платы Raspberry Pi.
  2. Запись и сохранение видео при любом обнаружении движения в поле зрения камеры. Записанный файл можно будет просмотреть позже.
  3. Возможность создания красивого Timelapse Video (фотосъемка с определенным интервалом между снимками, в результате которого можно получить ускоренное видео).
  4. Возможность делать снимки через регулярные интервалы времени, которые также сохраняются на диск.

Также с помощью ПО Motion можно настраивать заранее определенные ‘триггеры’ на определенные события. Motion работает с видеокамерами, подключаемыми через порт USB, если вы хотите использовать специализированную камеру для платы (Pi Camera), то в этом случае вам будет необходима специализированная сборка Motion.

Быстрый запуск камеры видеонаблюдения на Raspberry Pi с захватом движения

Чтобы начать записывать ваше первое видео и транслировать его через сеть интернет, понадобится ввести всего лишь несколько команд. Но перед этим убедитесь в том, что ваша плата Raspberry Pi подключена к сети Интернет – через LAN или Wi-Fi. После этого выполните следующую последовательность шагов.

Шаг 1. Обновите вашу Raspberry Pi OS до последней версии с помощью команды:

Шаг 2. Установите библиотеку ‘Motion’ с помощью следующей команды:

Шаг 3. Установите процесс Motion (Motion daemon) в состояние «yes» (чтобы он был всегда запущен и действовал) с помощью редактирования файла /etc/default/motion. Его можно отредактировать с помощью редактора ‘nano’, запустив его с правами суперпользователя.

Затем сохраните файл нажав ‘CTRL+X’, затем ‘Y’, после чего нажав Enter.

Шаг 4. Далее нам необходимо установить разрешение на использование целевого каталога (/var/lib/motion/), в котором программное обеспечение Motion будет сохранять все записываемые видео и изображения. Вам необходимо установить Motion в качестве «владельца» этого каталога с помощью команды:

Это разрешение крайне необходимо выставить, иначе вы получите ошибку, показанную на рисунке ниже. Эта ошибка высветится если вы будете проверять состояние (статус) Motion с помощью команды: sudo service motion status.

Шаг 5. На этом этапе у нас уже практически все готово, нам необходимо всего лишь изменить одну настройку в конфигурационном файле Motion (/etc/motion/motion.conf) – мы должны выключить stream_localhost (off). Мы должны отключить эту настройку, иначе вы не сможете транслировать видео в сеть Интернет и оно будет доступно только на самой плате Raspberry Pi. Измените эту настройку в конфигурационном файле Motion (Motion Configuration file) с помощью редактора ‘nano’:

Теперь у нас все готово к трансляции видеоизображения в сеть Интернет, получаемого с USB веб камеры, подключенной к плате Raspberry Pi. Запустите Motion с помощью следующей команды и откройте IP вашей Raspberry Pi на порту 8081 в вашем браузере (например, 192.168.1.103:8081):

После этого вы увидите транслируемое видеоизображение как показано на рисунке ниже. В данном проекте мы использовали очень дешевую USB веб камеру (Quantum web camera QHM500LM), но если вы хотите улучшить качество изображения в данном проекте, вы можете использовать более дорогую камеру с хорошим разрешением.

Кроме просмотра данного видеоизображения (видео стрима с камеры) на компьютере вы его также можете просматривать на любом устройстве, в котором есть браузер, например, смартфоне, планшете и т.д. На следующем рисунке представлен для примера скрин с экрана смартфона.

Вы всегда сможете начать, остановить, возобновить и узнать состояние программы Motion с помощью следующих команд:

Или же вы можете перезагрузить Raspberry Pi в случае возникновения проблем:

Примечание: если у вас модель платы Raspberry Pi ниже версии 3, то вам, скорее всего, понадобится Wi-Fi адаптер чтобы подключить плату к роутеру по беспроводному соединению. Мы в этом проекте использовали плату Raspberry Pi 2 Model B, поэтому нам такой адаптер понадобился. Платы Raspberry Pi 3 и выше имеют в составе встроенный Wi-Fi.

Изменение настроек камеры наблюдения

Итак, в первоначальном варианте у нас камера уже работает. Теперь давайте рассмотрим какие ее настройки можно изменить чтобы оптимизировать ее использование конкретно под наши задачи. В конфигурационном файле Motion все эти настройки достаточно детально объяснены, приведены их значения по умолчанию и рекомендуемые значения. Посмотреть вы их можете введя следующую команду:

Независимо от того, настроена ли видеотрансляция в сеть Интернет или нет, программа Motion записывает и сохраняет видеофайлы всегда, когда она обнаруживает движение. Соответственно, вы можете настроить частоту кадров, качество, ширину/высоты этих видеоизображений. Но если вы устанавливаете высокую частоту смены кадров для видео реального времени, убедитесь в том, что у вас достаточно быстрое соединение с интернетом. В нашем проекте мы использовали следующие значения (вы можете изменить их по своему усмотрению):

Также можно настроить работу камеры наблюдения таким образом, что она будет сохранять несколько статичных изображений перед и после процесса записи видео (после того как камера обнаружит движение):

Программа Motion по умолчанию делает слишком много изображений когда она обнаруживает движение и для «маленьких» движений такое большое количество ‘jpg’ файлов может слишком напрягать. В связи с этим можно либо отключить эту настройку (output_pictures off) или установить ее в значение ‘best’:

Также можно настроить захват снимков через регулярные интервалы, определяемые вами, с помощью следующей настройки:

Одной из самых «привлекательных фишек» программы является timelapse Video, причем это совершенно бесплатно, в то время как другие программы для создания такого видео могут стоить достаточно дорого. Вы можете настроить интервал снимков для Timelapse Video:

Вы можете изменить каталог, в который по умолчанию сохраняются все изображения и видеофайлы (Target Directory), с помощью опции ‘target_dir’, но не забывайте сделать Motion «владельцем» этого каталога как объяснено ранее в статье.

Также можно изменить порт, через который происходит трансляция видео в сеть интернет (по умолчанию – 8081):

Если вы не хотите работать с видеофайлами большой длительности, вы можете настроить Motion таким образом, чтобы она делала несколько коротких видеофайлов определенной длительности вместо одного длинного. Вы можете задать длительность этих файлов в секундах (0 – бесконечно):

Также вы можете изменить границу (в числе изменяемых пикселов в изображении), при превышении которой камера будет фиксировать движение.

По умолчанию, логи (logs) программы Motion сохраняются в файл ‘syslog’, но вы можете изменить файл, в который будут сохраняться логи:

Не забывайте сохранять и заново запускать программу Motion после того как внесли какие-нибудь изменения в ее настройки. Чтобы сохранить файл motion.conf, нажмите CTRL+X, затем Y и затем Enter.

Мы рассмотрели базовые настройки, которые можно изменить для программы Motion. Но при желании вы можете глубже погрузиться в изучение ее конфигурационного файла. Там вы найдете еще настройки для изменения яркости, контрастности, битовой скорости передачи данных, триггерам (triggers), идентификации с помощью пароля и многое другое.

Как смотреть видеотрансляцию с камеры через сеть интернет

Ранее в статье мы рассмотрели как смотреть видео трансляцию с камеры в нашей локальной сети, используя IP адрес нашей платы Raspberry Pi. Но если вы хотите смотреть ее из любой точки через сеть интернет, вы должны настроить перенаправление (переадресацию) порта (Port Forwarding) в вашем роутере/модеме. В большинстве случае вам потребуется перенаправлять порт 80 (используемый для HTTP или интернета) на ваш локальный или частный (private) IP адрес вашей платы Raspberry Pi (например, 192.168* в нашем случае). После настройки перенаправления (переадресации) порта все входящие соединения на порт 80 будут перенаправляться на ваш локальный адрес и вы сможете смотреть трансляцию из любой точки в сети интернет вводя там публичный (public) IP адрес вместе с портом видео трансляции, который мы установили ранее (8081).

Каждый роутер имеет свой собственный интерфейс для настройки перенаправления порта (Port Forwarding), чтобы получить доступ к этим настройкам, вы должны войти в панель управления своим роутером, расположенную по адресу (192.168.1.1). Но помните о том, что для того, чтобы вы могли смотреть видео трансляцию через сеть интернет с камеры, подключенной к вашей Raspberry Pi, вы должны иметь статичный IP адрес при выходе в сеть интернет и он не должен изменяться при каждой перезагрузке вашего роутера/модема. Про услугу подключения статичного IP адреса вы можете узнать у своего провайдера (обеспечивающего вам выход в сеть интернет) – чаще всего она платная (100-200 рублей в месяц), но у некоторых провайдеров она может быть бесплатной.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *