Непрофессиональное видеонаблюдение квартиры занятно и недорого
С момента как у меня в квартире на страже появилась GSM сигнализация, появилась мысль о том, что неплохо бы иметь в мое отсутствие в квартире и «глаза» в случае срабатывания датчиков сигнализации (а может срабатывание ложное?). Поскольку я инженер в области информационных технологий, ни о каком профессиональном решении в виде регистратора и кучи камер речь не шла — только все сам, своими руками. Бюджет тоже сразу было решено обнулить ограничить, а в случае успешности проекта уже думать о его дальнейшем улучшении и модернизации.
Железо
Первым делом подбираем железо. «Глаза» подразумевают камеру, тут уж никуда не денешься. Потом встает вопрос что делать с полученным изображением — хранить его, передавать куда-то и т.д. Так я подумал про подключенный через UPS роутер с модемом 4G для стабильного канала с интернет который тяжело «положить» потенциальному грабителю.
На работе мы с успехом уже несколько лет пользуемся роутерами с USB портами ZyXel Keenetic (конкретно моя уже устаревшая модель Giga2). После того как разработчики прошивок «прикрутили» такую штуку как OPKG (менеджер пакетов) — появилась возможность превратить свой роутер в персональный компьютер с linux c широчайшими возможностями, чем я и решил воспользоваться для своей цели. Итого, уже имея дома компьютер-роутер с подключенным модемом 4G мне не хватало только «глаза» — камеры USB. Вспомнив, что года три-четыре назад покупал для родителей web камеру logitech С270 для их общения с родственниками через skype на компьютере и то что сейчас они общаются уже через планшет — камеру у них реквизировал. Кстати на камере на лицевой панели есть светодиод, который показывает работает ли камера или нет — в дальнейшем это оказалось очень удобно для визуального определения работы системы видеонаблюдения.
Сопряжение и настройка железа
Итак, железо есть. И что не может не радовать — пока находимся в рамках бюджета.
На моем роутере два USB порта, один из которых уже был занят USB модемом 4G. Будем использовать и второй, воткнув туда камеру logitech С270. Для того, чтобы роутер мог работать с камерой нужно предварительно установить на роутере компонент OPKG (в этом компоненте ставим все галочки кроме «Модули ядра для поддержки USB DVB-тюнеров»). Но тут есть подвох — для работы OPKG в роутере нужно дисковое пространство (гигабайта хватит за глаза), но где его взять, ведь оба порта USB на роутере уже заняты? Вариантов решения оказалось два — либо USB hub c флешкой (первое что сразу приходит в голову), либо то, что в мой USB модем 4G можно поставить карту microSD. И найденная дома старая медленная карта microSD 8 гигабайт сразу отправилась в модем. Файловую систему оставил на карте NTFS (хотя настоятельно рекомендуется EXT2 или EXT3). Создаем папку Install и закачиваем нужный образ Entware в нее.
Затем идем в админку роутера, вкладка OPKG, выбираем нашу карту памяти, в строке «Сценарий initrc» пишем
и нажимаем Применить.
После установки OPKG, SSH клиентом (я использую программу Putty на своем ноутбуке c windows) цепляемся к роутеру и выполняем следующие команды для обновления OPKG:
По умолчанию на SSH логин root пароль keenetic (или zyxel в зависимости от версии прошивки). Пароль настоятельно рекомендуется поменять командой passwd.
Софт
Далее устанавливаем программу motion.
Именно она будет работать с нашей камерой, анализировать изменение картинки и давать указание роутеру куда посылать полученное изображение. Файл настроек программы motion это \etc\motion\motion.conf, редактируя его меняем нужные нам настройки. Первым делом я установил поддерживаемое камерой максимальное разрешение 1280×720, повернул на изображение на 180 градусов (мне удобнее было установить камеру «вверх ногами»), запись 2 кадра в секунду.
rotate 180 width 1280 height 720 framerate 2
Записывать весь видеопоток и транслировать его в интернет я необходимости не видел, поэтому настроил motion записывать видео и передавать его только в случае изменения изображения. В процессе настройки motion стало понятно, что она не поддерживает с моей камерой режим MJPEG, а поддерживает только режим YUYV — в результате чего результатом работы motion будет не видеоряд, а только последовательность фотографий JPEG.
Также я настроил motion так, что копия фотографий копируется на внешний FTP сервер.
on_picture_save wput ftp://login:pass@XX.29.136.XX %f
В случае, если вынесут из квартиры и роутер с картой памяти, все равно будет возможность посмотреть как именно это произошло.
Настоятельно рекомендуется поменять логин пароль на подключение к вашей камере.
stream_authentication login:pass
После всех настроек смотрим в браузере результат по адресу:
Внимание! Если никакого изображения в браузере вы не увидели, следует обратить внимание на вашу версию прошивки Keenetic. Предположительно начиная с версии прошивки 2.11.A.4.0-1 модули видео по умолчанию не подгружаются, поэтому в SSH надо их загрузить «ручками» или добавить в скрипт запуска:
/opt/sbin/insmod /lib/modules/3.4.113/i2c-core.ko /opt/sbin/insmod /lib/modules/3.4.113/i2c-dev.ko /opt/sbin/insmod /lib/modules/3.4.113/videodev.ko /opt/sbin/insmod /lib/modules/3.4.113/videobuf2-core.ko /opt/sbin/insmod /lib/modules/3.4.113/videobuf2-memops.ko /opt/sbin/insmod /lib/modules/3.4.113/videobuf2-vmalloc.ko /opt/sbin/insmod /lib/modules/3.4.113/v4l2-common.ko /opt/sbin/insmod /lib/modules/3.4.113/uvcvideo.ko
Если и после этого изображение не появилось, первым делом смотрим логи Keenetic, что происходит при подключении камеры. Определяется ли камера как видеоустройство и т.д.
Управление
Проделав всю эту работу, пришла мысль о том, что надо как-то этим управлять, т.е. включать и выключать в нужные моменты времени (причем главным образом удаленно). Вопрос решил установкой клиента SSH на свой android смартфон. После выбора SSH клиентов остановился на ScriptKitty. Нажатием двух-трех клавиш на смартфоне можно быстро выполнить включение или отключение motion.
/opt/etc/init.d/K99motion restart
Завершение motion через SSH:
/opt/etc/init.d/K99motion stop
Но тут ждал еще один подвох — «серый» ip адрес на моем модеме 4G. Подключаясь к роутеру через Wi-fi без проблем можно выключить или включить motion. Но что делать, если ты за пределами Wi-fi своего роутера, а у твоего роутера «серый» ip? Я нашел спасение в виде VPN. Схема следующая — своим домашним роутером я цепляюсь к роутеру на работе со статичным IP посредством PPTP клиента(на работе на роутере установлен PPTP сервер). Теперь сделав проброс порта SSH с рабочего роутера на домашний я наконец-то могу управлять своей камерой удаленно обращаясь со своего смартфона по статичному адресу роутера на работе.
Также пробовал автоматизировать управление с помощью автоматизатора Tasker (у него есть свой отдельный SSH клиент) — отслеживать подключение смартфона к Wi-Fi роутера и в зависимости от этого включать или выключать motion. Логика тут такая: смартфон подключен к Wi-Fi роутера — значит я дома — камеру отключить. Смартфон не подключен к Wi-Fi роутера — значит я не дома — камеру включить. Но поэкспериментировав, от этого варианта отказался — слишком много ложных срабатываний. Например я дома, смартфон заснул, роутер потерял смартфон, включилась камера — ну и т.д. В настоящее время пользуюсь только ручным способом.
Заключение
В принципе, что хотел я от проекта, то и получил. Могу «видеть» квартиру когда захочу и в случае каких-то срабатываний GSM сигнализации уже принимать решение что делать дальше. В процессе реализаций решил кучу проблем, но их решение вызывало определенный кайф от приобретенных знаний и реализации задуманного.
Проброс портов Zyxel Keenetic
Современные видеорегистраторы, а в последние годы уже и камеры имеют на борту свой облачный сервис для удаленного подключения к ним через сеть интернет. Соединение с камерами происходит через так называемое «облако», которое имеет некоторую задержку (бывает сервис перегружен или ведутся обновления) и это немного раздражает. Проброс портов позволит подключаться к вашему регистратору или камерам напрямую — минуя облачный сервис, при этом скорость соединения заметно возрастает. Или же ваше оборудование не имеет «облака», то проброс портов даст вам возможность просматривать свои камеры удаленно.
Для начала необходимо подключить у провайдера услугу: статичный IP адрес. Услуга платная, примерно от 200р/месяц (сумма на 2017г), стоимость не большая и позволяет с хорошей скоростью подключаться к своим камерам.
В качестве примера рассмотрим один из самых популярных Wi-Fi роутеров для видеонаблюдения: ZyXEL Keenetic 4G III. У разных моделей и на разных прошивках меню может немного отличаться, но это не суть важно.
Последовательность действий для проброса.
1. Заходим на веб-интерфейс роутера, введя в адресной строке интернет-браузера: 192.168.1.1 (IP адрес по умолчанию также может быть 192.168.0.1).
2. Идем на вкладку безопасность (значок с красным щитом) попадаем на первую вкладку: Правила трансляции сетевых адресов (NAT). Как видим правила у нас отсутствуют. Нужно его создать.
3. Нажимаем: добавить правило.
4. Описание: любое (название вашего правила).
5. Интерфейс: я выбрал Broadband connection (ISP) — т.к. у меня интернет оптоволокно; при использовании 3g/4g модема — выбирайте из списка его.
6. Протокол: TCP.
7. Порты TCP/UDP: Один порт 34567(вашего регистратора, он может быть другим).
8. Перенаправлять на адрес: 192.168.1.10 (IP вашего видеорегистратора, он может быть другим).
9. Новый порт назначения: 34567 (вашего регистратора, он может быть другим).
10. Нажимаем: Сохранить.
11. Перезагружаем роутер. Проброс должен включиться.
На моделях роутеров: Zyxel Keenetic Lite III, Start, USG, Viva, Giga 2, Extra II, DSL, Omni, Ultra проброс портов осуществляется по такому же алгоритму.
Далее вы подключаетесь через мобильное приложение или CMS (с компьютера) на статичный IP адрес, который предоставил вам провайдер.
Для подключения потребуется:
— Порт подключения (порт регистратора, в нашем случае это 34567).
— Password (пароль вашего регистратора).
Удачного просмотра!
Автор: Дмитрий Самохвалов, технический редактор компании Rucam-Video.
Вопросы, замечания и предложения пишите на: samohvalov@rucam-video.ru
Проброс портов Zyxel Keenetic
Современные видеорегистраторы, а в последние годы уже и камеры имеют на борту свой облачный сервис для удаленного подключения к ним через сеть интернет. Соединение с камерами происходит через так называемое «облако», которое имеет некоторую задержку (бывает сервис перегружен или ведутся обновления) и это немного раздражает. Проброс портов позволит подключаться к вашему регистратору или камерам напрямую — минуя облачный сервис, при этом скорость соединения заметно возрастает. Или же ваше оборудование не имеет «облака», то проброс портов даст вам возможность просматривать свои камеры удаленно.
Для начала необходимо подключить у провайдера услугу: статичный IP адрес. Услуга платная, примерно от 200р/месяц (сумма на 2017г), стоимость не большая и позволяет с хорошей скоростью подключаться к своим камерам.
В качестве примера рассмотрим один из самых популярных Wi-Fi роутеров для видеонаблюдения: ZyXEL Keenetic 4G III. У разных моделей и на разных прошивках меню может немного отличаться, но это не суть важно.
Последовательность действий для проброса.
1. Заходим на веб-интерфейс роутера, введя в адресной строке интернет-браузера: 192.168.1.1 (IP адрес по умолчанию также может быть 192.168.0.1).
2. Идем на вкладку безопасность (значок с красным щитом) попадаем на первую вкладку: Правила трансляции сетевых адресов (NAT). Как видим правила у нас отсутствуют. Нужно его создать.
3. Нажимаем: добавить правило.
4. Описание: любое (название вашего правила).
5. Интерфейс: я выбрал Broadband connection (ISP) — т.к. у меня интернет оптоволокно; при использовании 3g/4g модема — выбирайте из списка его.
6. Протокол: TCP.
7. Порты TCP/UDP: Один порт 34567(вашего регистратора, он может быть другим).
8. Перенаправлять на адрес: 192.168.1.10 (IP вашего видеорегистратора, он может быть другим).
9. Новый порт назначения: 34567 (вашего регистратора, он может быть другим).
10. Нажимаем: Сохранить.
11. Перезагружаем роутер. Проброс должен включиться.
На моделях роутеров: Zyxel Keenetic Lite III, Start, USG, Viva, Giga 2, Extra II, DSL, Omni, Ultra проброс портов осуществляется по такому же алгоритму.
Далее вы подключаетесь через мобильное приложение или CMS (с компьютера) на статичный IP адрес, который предоставил вам провайдер.
Для подключения потребуется:
— Порт подключения (порт регистратора, в нашем случае это 34567).
— Password (пароль вашего регистратора).
Удачного просмотра!
Автор: Дмитрий Самохвалов, технический редактор компании Rucam-Video.
Вопросы, замечания и предложения пишите на: samohvalov@rucam-video.ru