Недавно поставил себе задачу реализовать видеонаблюдение со следующими характеристиками:
- Минимальное энергопотребление
- Минимальный размер устройства, которое будет принимать видео с камеры (или нескольких камер). С таким небольшим размером, чтобы можно было его, к примеру, запихать в монтажную коробочку 10-10 см или вовсе спрятать в широком кабель-канале (!)
- IP-камеры будут подключены по wi-fi, то есть невозможно определить, кто с них смотрит/пишет видео. Запитать их можно от общей сети, будь то подъездное освещение или розетки в офисе
- Обязательно должна быть запись видео (в моем случае — на microsd карту), обязательно должна быть возможность просматривать видео через интернет с любой точки мира а также через мобильное приложение
- Само собой, должна быть возможность удаленно настраивать и всю систему — добавлять новые камеры, копировать-удалять записи, иметь доступ ко всем настройкам
- Минимальная стоимость! А как же? Без этого никуда
Для реализации данной идеи выбор пал на следующие компоненты:
1) Самый дешевый одноплатный компьютер с вай-фаем на борту, на который можно накатить какой-нибудь arm linux дистрибутив — например, мой любимый дебиан. Малинка стоит дороговато, а вот orange pi zero на ebay вам обойдется всего лишь в 900 рублей (еще несколько месяцев назад я покупал ее вообще за 700 рублей). Вот ссылочка на ebay — здесь.
2) Собственно, wifi ip-камеры — без них никуда. Маленькая, купольная, потолочная. И хотя бы 720p — обычно для видеонаблюдения в условиях офиса-подъезда более и не требуется. Цена вопроса — около 1500 рублей за камеру. Что далеко ходить, вот здесь на алиэкспрессе — тут
3) MicroSD-карточка на 32 гб. Почему на 32, а не больше или меньше? Потому что для моего случая надо иметь возможность отматать видео с двух камер на несколько дней назад. Ну, стало быть, еще 300-400 рублей.
4) Адаптеры питания для одноплатника и для камер.
Итак, что было проделано. Получив заветную посылку на почте, я извлек оттуда апельсиновый одноплатник, осмотрел его и первым делом подумал — черт возьми, а ведь тут нету видеовыхода. Как ставить debian и ПО для видеонаблюдения и производить первичные настройки? Сразу вспомнил, что на малинке всегда был обычный композитный AV, а тут его нет. Ну не может быть, чтобы производитель не оставил такой возможности, как подключиться по композиту — подумал я, и ушел в гугл смотреть распиновку GPIO. Ага, второй пин — это земля, а 9ый это tv-out.
Припаиваем av-гнездо. Теперь воспользуемся адаптером AV->VGA (как вы догадались, его тоже можно купить на алиэкспрессе, полезная вещь) и подключимся к нашему монитору. Но включать еще ничего не будем — ведь мы еще не подготовили карточку microsd.
Идем на сайт www.orangepi.org и качаем дистрибутив Debian xfce desktop, записываем его на карту программой win32 disk imager или etcher. Втыкаем флешку в нашу апельсинку, включаем монитор, подключаем адаптер питания и… ничего. Именно с этим чаще всего сталкиваются новички — одноплатный компьютер не загружается никоим образом, а только издевательски светится желтым диодом. Что это? Неправильно записанная карта (может быть), нерабочий одноплатник (вряд ли, ведь мы его только что распаковали), нет сигнала с видеовыхода? Чаще всего проблема заключается в питании. Orange pi, как и малинки и другие одноплатники, очень придирчивы к питанию — адаптер должен быть 5 В / 2 A, если адаптер слабый и питание проседает в первые секунды включения одноплатника, то он не годится и так дело не пойдет. Так что используйте хороший мощный блок питания, а не зарядку от своего старого андроида.
Подключаем хороший адаптер питания, видим, как пошла загрузка debian. Видим рабочий стол — прекрасно! Теперь надо настроить девайс таким образом, чтобы он работал через вай-фай. Заходим в сетевые подключения, создаем новое вай-фай подключение, вводим наши логин-пароль от домашнего-офисного вай-фая — теперь устройство в нашей локальной сети и имеет выход в интернет! Теперь нам надо избавиться от монитора.
Для того, чтобы иметь возможность видеть рабочий стол удаленно, нам поможет программа vnc viewer, а одноплатнике — vnc server. Обычно эта штука уже встроена в тот дебиан, который распространяет производитель данных одноплатников, необходимо лишь настроить ее — ввести параметры авторизации и т.д. Убедившись, что мы теперь имеем доступ к рабочему столу внутри нашей локальной сети, убираем монитор, прячем устройство в коробочку/кабель канал/еще куда-нибудь и настраиваем все остальное через vnc viewer, находясь за привычным компьютером.
В качестве ПО для видеонаблюдения был выбран zoneminder. Почему именно он? Бесплатный, гибкий, легко настраивается, доступен и в arm-варианте для нашего одноплатника с debian. Данный софт работает на php/mysql, поэтому первым делом нужно установить необходимые пакеты:
sudo apt-get install php5 mysql-server php-pear php5mysql php5-gd
Далее нам необходимо в /etc/apt/sources.list добавить строчку:
deb http://ftp.debian.org/debian jessie-backports main
Выполняем апдейт:
sudo apt-get update
И, наконец, то, ради чего мы это все затевали:
sudo apt-get install zoneminder
Когда консолька сообщила нам, что zoneminder установлен, перейдем к его настройке. Подробно процесс настройки описан на официальном сайте zoneminder, перечислять все его пункты в данной статье смысла нет, поэтому решим, что уважаемый читатель справился с этим, и теперь, если мы наберем в браузере на компьютере адрес_нашего_одноплатника/zm мы попадем в веб-админку видеонаблюдения. Здесь нам нужно добавить ip-адреса камер, задать параметры записи видео и прочее.
Теперь мы можем из внутренней сети смотреть видео с камер через браузер, причем как через проводную сеть, так и по вай-фаю.
Но задача то стояла смотреть видео через интернет с любой точки планеты — а это мы еще не реализовали. Так давайте реализуем! В голову приходят как минимум два варианта:
- Заходить через remote desktop наподобие тимвьювера. Увы, тимьювер более-менее корректно работает только на «малинках», здесь даже с бубном и заклинаниями ничего не добиться
- У нас есть выделенный ip, идем в настройки роутера, пробрасываем необходимые порты, настраиваем virtual server, теперь мы можем видеть админку zoneminder, к примеру, по адресу наш_белый_ip:123. Это хорошо, но что делать, если нет выделенного ip?
- Если выделенного ip нет, то вcпомним про vpn и dyndns. Этому посвящено большое кол-во статей, в том числе и на Хабре, ищите и найдете информацию
Теперь осталось добавить возможность смотреть видео с телефона. Качаем для нашего андроида приложение zoneminder client mobile (легко гуглится), а для iphone — Surveillance Pro.
Итого, за несколько тысяч рублей мы получаем собственный мини-сервер видеонаблюдения, который можно легко спрятать в кабель-канале и который потребляет электричества на сущие копейки, пару беспроводных камер, и возможность всегда с компьютера или телефона из любого места, где есть интернет, посмотреть что происходит в вашем офисе/гараже/подъезде.
Автор: mavpa1