Недавно поставил себе задачу реализовать видеонаблюдение со следующими характеристиками:

  1. Минимальное энергопотребление
  2. Минимальный размер устройства, которое будет принимать видео с камеры (или нескольких камер). С таким небольшим размером, чтобы можно было его, к примеру, запихать в монтажную коробочку 10-10 см или вовсе спрятать в широком кабель-канале (!)
  3. IP-камеры будут подключены по wi-fi, то есть невозможно определить, кто с них смотрит/пишет видео. Запитать их можно от общей сети, будь то подъездное освещение или розетки в офисе
  4. Обязательно должна быть запись видео (в моем случае — на microsd карту), обязательно должна быть возможность просматривать видео через интернет с любой точки мира а также через мобильное приложение
  5. Само собой, должна быть возможность удаленно настраивать и всю систему — добавлять новые камеры, копировать-удалять записи, иметь доступ ко всем настройкам
  6. Минимальная стоимость! А как же? Без этого никуда

Для реализации данной идеи выбор пал на следующие компоненты:

1) Самый дешевый одноплатный компьютер с вай-фаем на борту, на который можно накатить какой-нибудь arm linux дистрибутив — например, мой любимый дебиан. Малинка стоит дороговато, а вот orange pi zero на ebay вам обойдется всего лишь в 900 рублей (еще несколько месяцев назад я покупал ее вообще за 700 рублей). Вот ссылочка на ebay — здесь.

image

2) Собственно, wifi ip-камеры — без них никуда. Маленькая, купольная, потолочная. И хотя бы 720p — обычно для видеонаблюдения в условиях офиса-подъезда более и не требуется. Цена вопроса — около 1500 рублей за камеру. Что далеко ходить, вот здесь на алиэкспрессе — тут

image

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-адреса камер, задать параметры записи видео и прочее.

image

Теперь мы можем из внутренней сети смотреть видео с камер через браузер, причем как через проводную сеть, так и по вай-фаю.

image

Но задача то стояла смотреть видео через интернет с любой точки планеты — а это мы еще не реализовали. Так давайте реализуем! В голову приходят как минимум два варианта:

  1. Заходить через remote desktop наподобие тимвьювера. Увы, тимьювер более-менее корректно работает только на «малинках», здесь даже с бубном и заклинаниями ничего не добиться
  2. У нас есть выделенный ip, идем в настройки роутера, пробрасываем необходимые порты, настраиваем virtual server, теперь мы можем видеть админку zoneminder, к примеру, по адресу наш_белый_ip:123. Это хорошо, но что делать, если нет выделенного ip?
  3. Если выделенного ip нет, то вcпомним про vpn и dyndns. Этому посвящено большое кол-во статей, в том числе и на Хабре, ищите и найдете информацию

Теперь осталось добавить возможность смотреть видео с телефона. Качаем для нашего андроида приложение zoneminder client mobile (легко гуглится), а для iphone — Surveillance Pro.

image

image

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

Комментарии (49)


  1. telobezumnoe
    30.05.2019 14:12

    мне кажется что если rtsp порт камеры пробросить в внешку для он лайн трансляции и сохранять записи при движении на локальный ftp поднятый на роутере с юсб и винтом (флешкой) получится ещё дешевле


    1. Javian
      31.05.2019 05:25

      Про фтп для видеонаблюдения была статья habr.com/ru/post/420005
      В другой публикации был вариант сохранения на Яндекс диск habr.com/ru/post/343672


  1. Sdima1357
    30.05.2019 15:15

    На картинке у Вас c процессором H5 (Cortex-A53), а по ссылке H2(Cortex-A7), который вдвое дешевле.


  1. zedroid
    30.05.2019 15:49
    +1

    Втыкаем флешку в нашу апельсинку, включаем монитор, подключаем адаптер питания и… ничего.

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


    1. vladkorotnev
      31.05.2019 05:35

      Правда толку, если как выяснилось в статье, проблема была с питанием :-)


  1. jaiprakash
    30.05.2019 16:01

    Если выделенного ip нет, то вcпомним про vpn и dyndns.
    Разве для dyndns не нужен внешний ip, хоть и динамический?


    1. Delion
      30.05.2019 23:41

      Угу. Сколько уж лет прошло, а до сих пор наблюдаю иногда путаницу в понятиях «выделенный» и «статический/динамический».

      Разве для dyndns не нужен внешний ip
      Строго говоря, нет :) Но тогда и dyndns едва ли нужен (:
      VPN другое дело.


      1. jaiprakash
        31.05.2019 10:03

        Вы имеете ввиду через VPS? Тогда не в счёт, действительно.
        Или что другое?


        1. Delion
          31.05.2019 17:18

          Я имею в виду, во-первых, что DDNS при желании можно использовать и для серого айпи в локальной сети.
          Вопрос доступности сервера извне совсем другое дело, во-вторых.
          В-третих, в прошлом я часто встречался с синонимичностью понятий "выделенный" и "статический", а это всё равно что смартфон называть айфоном.


          1. nitro80
            02.06.2019 05:28

            Я имею в виду, во-первых, что DDNS при желании можно использовать и для серого айпи в локальной сети.
            Простите, но не могу понять, для чего это может быть нужно.
            У провайдеров сети разбиты по районам vlan'ами, и часто, даже зная серый адрес — никакой пользы имхо вы не извлекёте


            1. Delion
              02.06.2019 15:20

              Вестимо, для красоты.
              У моего провайдера одно время серые адреса из разных районов имели возможность соединения. Потом серые IP отменили и выдали всем внешние динамические, и так по сей день.
              Для тех, кто держал свои ресурсы в локалке провайдера, но не покупал собственный домен, определённо был смысл использовать DDNS.


        1. Delion
          31.05.2019 17:25

          Почему-то не могу поправить свой коммент.
          Таки да, упоминание DDNS в контексте статьи ошибочно.


    1. nitro80
      31.05.2019 04:23

      Белый ip-адрес.
      А то толку, если провайдер даёт клиенту серый адрес?


  1. may-cat
    30.05.2019 16:16

    В таких «не сердитых» решениях больше всего заставляет грустить питание. В средней квартире нет столько розеток в такой доступности, а штробить стены ради камер и новых розеток повсюду — такое себе решение.


    1. rPman
      31.05.2019 08:07

      А по мне так заранее нужно озаботиться о проводке по стенам, как раз ради розеток.
      зы. если потолки натяжные, то там полно места для почти любой проводки, бывает даже сильно долбить стены не придется.


    1. nitro80
      31.05.2019 11:57

      Во время ремонта в квартире озаботились именно большим кол-вом эл-ких и сетевых розеток — очень оправдало себя, теперь к проводной сети я могу любое железо подключить. Очень удобно. Правда забыли к ТВ подтянуть коаксиал, но позже поняли, что IPTV с головой хватает.


      1. may-cat
        31.05.2019 13:12

        а как принимали решение — куда ставить их и в каком количестве?


        1. rPman
          31.05.2019 14:50

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


        1. nitro80
          31.05.2019 16:35

          Примерно так:
          а) тут будет висеть ТВ, значит надо:
          1 тв
          2 приставка
          3 raspberry pi
          4 что-то еще
          б) под ТВ ближе к полу:
          1 Sony PS3
          2 Sony PS4
          3-4 мало ли что
          в) по периметру комнаты розетки эл. и ethernet для подключения ноутбука, системника (иногда работу домой приношу, системник ставлю в гостинной и из кабинета на нем работаю).

          Как-то так


          1. ksenobayt
            03.06.2019 08:35

            Любопытства ради: вы это имплементировали в доме какой свежести?
            Я давно задумываюсь о серьёзном ремоделинге проводки, но не уверен, что в моей панельке это проканает.


            1. nitro80
              03.06.2019 08:40

              Дом 70х годов постройки.
              Просто делали ремонт основательный, с заменой проводки в половине квартиры.


  1. jackes
    30.05.2019 20:05

    Совсем бюджетный вариант получится, если к одноплатнику подключить USB web-камеру.


    1. nitro80
      31.05.2019 04:23

      Zoneminder умеет работать с usb-камерами?


      1. jackes
        31.05.2019 06:45

        Не знаю, может-ли Zoneminder работать с USB-камерами напрямую, но если не может, то можно организовать RTSP трансляцию с USB-камеры с помощью Motion, а далее этот RTSP завести в Zoneminder.


  1. Naves
    31.05.2019 01:03
    +2

    А теперь делаем ставки, через сколько месяцев сдохнет сд-карточка. Жаль нигде на скринах не видно итоговый битрейт от камеры.

    И хотя бы 720p — обычно для видеонаблюдения в условиях офиса-подъезда более и не требуется.

    Если потом внезапно надо будет увидеть лицо, то будет типичный фоторобот в кепке.


    1. nitro80
      31.05.2019 04:24

      А ещё, сама апельсина очень греется


      1. chicago1
        31.05.2019 06:33

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


        1. rPman
          31.05.2019 08:10

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


      1. jaiprakash
        31.05.2019 10:28

        С нормальными частотами (как в armbian по дефолту) — нет, это производитель баловался оверклокингом, когда они только вышли. Но радиаторы всё равно наклеил.


    1. ksenobayt
      31.05.2019 10:53

      А теперь делаем ставки, через сколько месяцев сдохнет сд-карточка.
      Нормальным вариантом будет подцепить внешний сторадж по CIFS или самбе, с того же бытового NAS.

      Если же по существу — больше двух камер подобный конфиг не утащит, SoC слабоват. И перегрев — это серьёзная проблема. Мне пришлось колхозить пассивку из старого медного радиатора времён Athlon XP, дабы не озадачиваться активным охлаждением.


  1. chicago1
    31.05.2019 06:27

    Как огранизовано питание в подъезде, вы от квартиры тянули?


    1. nitro80
      31.05.2019 11:59

      PoE же как ни крути нужно колхозить, и вроде Orange Pi Zero как раз умеет по PoE питаться, после небольшого допиливания.


  1. Archon
    31.05.2019 10:59

    Кто-нибудь проверял, насколько легко заглушить вайфай-камеру? Что-то подсказывает, что для этого к ней даже приближаться необязательно, можно заглушить прямо через перекрытие с другого этажа или с улицы.

    В таком случае решение подойдёт только для наблюдения за какими-то не особо сопротивляющимися целями, у которых нет цели не светиться на вашей камере. Например, можно мониторить погоду или писать время выезда машин с территории. А всё, что серьёзнее, требует более надёжного подключения камер.


    1. Voiddancer
      31.05.2019 11:22

      думаете, закладчикам хватит мозгов?


      1. Archon
        31.05.2019 11:28

        Закладчикам явно не хватит, а вот угонщикам, например — вполне.


    1. MadLord
      31.05.2019 11:40

      цена вопроса глушилки?.. стОит ли она того?.. да и довольно непросто определить, wi-fi это камера или нет при «правильной» ее установке…


      1. maverickcy
        31.05.2019 12:01

        Цена вопроса глушилки до 100 евро. А если есть мозги, можно и дешевле 50 обойтись. А уж гадать, wi-fi или нет, не будут — будут глушить. К тому же, что есть «правильная установка»? «Правильная» установка антенны подразумевает ее открытость и ничем не заслоненность, чтоб была прямая видимость и свободная зона от переотражений.


        1. MadLord
          31.05.2019 12:05

          «правильная установка» — имелась в виду такая установка, когда не ясно, wi-fi это камера или нет… мне все-таки кажется, что на текущий момент подавляющее большинство камер — не wi-fi… и поэтому трата 50-100 евро себя не оправдывает… проще капюшон надеть )))…


          1. maverickcy
            31.05.2019 12:25

            ну вот с этим я согласен. Нет ничего надежнее провода. Да и ко всему, как слабо засрут эфир 4 камеры? А если их 8?) Для общего пользования не останется, учитывая очень узкий диапазон вифи


    1. nitro80
      31.05.2019 12:00

      У меня одна камера из набора видеоняни глушила wifi по всем каналам, выяснилось случайно :(
      Соседи наверно были «рады» такому подарку.


  1. dizjis
    03.06.2019 02:11

    А можно несколько вопросов?

    Почему был выбран вариант ОС с графическим интерфейсом, если вся работа предполагается через веб-морду zoneminder? Чисто настроить вайфай? А как же putty, ну или как здесь предложили — uart? Использовать систему с графическим пакетом на данном одноплатнике не рационально ввиду ограниченных ресурсов самого одноплатника, а все эти свистоперделки будут потреблять озу и мучать проц. А именно эта модель очень горячая и ей нужно качественное охлаждение. 60 градусов в простое с радиатором — норма для нее.

    Соответсвенно, почему не был сделан выбор в сторону armbian? Он более оптимизирован, меньше потребляет ресурсов, с обновлениями у него тоже все хорошо.


  1. Ars-AngeL
    03.06.2019 02:11

    ru.aliexpress.com/store/1553371?spm=a2g0o.detail.1000002.2.7a9652c6duKySe — у них на али что-то типа офф. магазина где тока оранджи. С корпусами и т.д есть ниче. Тоже думал так сделать + ивидион юзать…
    но чето так и не решился. пока висит на мини-пс на атоме мииго чето там.
    самый суровый метод это купить на али материнку от двр ru.aliexpress.com/item/32810273317.html?spm=a2g0s.9042311.0.0.274233edN7ppet — там и хдд есть и софт уже готовый… хотя на малиновый формат можно еще фоном чего повесить


  1. drapass
    03.06.2019 02:11

    Стоит добавить, что у одноплатных ПК на базе SOC от Allwinner H2+, H3, H5, H6 и т.п. есть аппаратные возможность по обработке видео (кодирование/декодирование). Для этого понадобиться ядро с BSP от Allwinner. Детали смотреть здесь -> linux-sunxi.org. Стоит еще обратить внимание на проект Armbian, ребята делают образы для одноплатников. По мне так получается хорошо, плюс у них неплохая система сборки дистрибутивов github.com/armbian/build.


  1. jadorvski
    03.06.2019 02:11

    Запись нужно вести на внешний жесткий диск, потому что у флешки сильно ограничен цикл записи, сам лично столкнулся с этим, систему не настраивал на Raspberry Pi, логи писались на флешку, в итоге за пару лет флешке кранты.
    Рекомендую почитать мануалы как сделать флешку read-only, либо снизить запись (например — смонтировать логи на ОЗУ и т.п.).


  1. Nikkorot
    03.06.2019 02:11

    Честно говоря я сомневаюсь, что эта железяка vpn потянет.


  1. SadLion
    03.06.2019 02:11

    Системы видеонаблюдения на wi-fi такие забавные, с ними ничего не надо делать, что бы быть не обнаруженным, достаточно глушилки в рюкзаке! Как видео няня самое то, но не больше.


  1. spballiance
    03.06.2019 02:11

    2 канала fullhd неужели потянет одновременную запись?


    1. Naves
      03.06.2019 09:43

      Для 2Мп камер обычно потока 2-3Мбита достаточно. Далее в сервере настраивается просто direct stream без какого-либо пережатия. И все упирается в скорость самой флешки.


      1. spballiance
        03.06.2019 11:24

        кардридер на апельсине максимум 1 fhd