91

Видеонаблюдение для бабушки

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

Пожалуй, нужно пояснить, что бабушка значительную часть трудового стажа отработала на зоне, что отложилось в характере и отношении к людям, теперь у неё все вокруг плохие, так и норовят что-нибудь спереть. Так что это не старческое (хотя, и усилилось в последнее время), а проявляется всё время, сколько её помню. Но не буду вдаваться в подробности, приступлю к сути.


Изучив обзоры о совсем китайских и не очень китайских камерах, убедился, что дешёвые решения работать так, как я хочу не будут, а дорогие слишком дорогие и тоже не факт, что будут нормально работать, поскольку основная проблема заключается в скорости интернета: 0,5 Мбит/с (это целых 64Кбайта/с), что потребует временного хранения видеозаписей до того, как они уползут во всемирную сеть. Интернет подключался для неспешной переписки в однокласниках и менять тариф на быстрый, но дорогой только из-за камеры не хотелось.


На полке давно лежал Raspberry Pi model B (далее, малинка), которому я так и не нашёл применения: использовать как рабочий комп — сплошной мазохизм, в качестве медиа-сервера не прижился, файл-сервер не нужен, а «лампочками моргаю» с Arduino/ESP8266.


У китайцев была заказана самая дешевая камера OV5647 с ИК-подсветкой и широким углом съёмки и самый обычный ИК датчик движения HC-SR501. Всё было собрано достаточно тривиальным образом, заиспользован и чуть переписан код на Python из документации библиотеки PiCamera для съёмки видео, потом это всё было обильно залито термоклеем, а кронштейн сделан из обрезка алюминиевого профиля. Готовое решение выглядит как-то так:

Фотал на тапок, пытаясь убежать быстрее, пока меня не закормили до состояния шара.


В итоге бабушка довольна, 2 месяца тишины. Постоянно смотрит, как она бегает по квартире. Бегает, потому что видео ускоренно в несколько раз (кажется, в 10).


Далее много технических подробностей, для интересующихся, в самом конце расчёт стоимости по компонентам. Считал для матери, ей было интересно потраченной суммы.


На малинку был установлен телеграм бот, который позволяет мониторить состояние малинки и выполнять консольные команды. Так же он говорит внешний IP, что позволяет зайти по ssh на серый адрес, выданный провайдером. Привет, РКН, пришлось прикрутить socks5 прокси, сделав форк чужого бота: https://github.com/avissian/shell-bot


В качестве хранилища видеофайлов выбрал яндекс диск, примонтированный по протоколу webdav. Это было ошибкой, при частой записи диск отваливался через 2-3 часа, похоже, есть у яндекса какой-то мониторинг использования их облака и блокировка подобных сценариев. Но у меня есть арендованный сервер VPS, поэтому быстро поднять webdav и переключиться на него не составило труда.


На бабушкином ноутбуке для просмотра записей так же примонтирован webdav (да, она сидит на линуксе), так же есть возможность смотреть записи в браузере.


Некоторые проблемы:


Первая, из-за которой были выдраны все волосы и возни было на 2 недели: PIR датчик запитан от малинки, по неизвестной причине в 44.853 секунды каждой минуты происходил скачок напряжения, что почти всегда вызывало ложное срабатывание датчика. Да, я строил график срабатываний датчика с миллисекундами в пустой и закрытой от кошки комнате. Записывать видео каждые 1-2 минуты в планы не входило, поэтому пришлось ставить стабилизацию напряжения. Поскольку я рукожоп и не дружу с электроникой, то была поставлена плата StepUp (повышения напряжения), выставленная на те же самые 5 вольт.


Проблема 2: датчик движения видел подсветку камеры и иногда непредвиденно срабатывал. Спасло приклеивание со стороны подсветки на «глаз» датчика фольги для готовки, сложенной в несколько слоёв.


Проблема 3: подсветка камеры светит всегда, греется, жрёт электричесто. Проблема не решена, была попытка запитать подсветку через 2 транзистора и рулить через GPIO, но в итоге поторопился и монтировал «как есть», так как паранойя усилилась и нужно было быстрое решение.


Проблема 4: подсветка камеры бьет почти в точку, по бокам в темноте ничего не видно. Решается совместно с проблемой 3, так как штатное крепление подсветки к камере на болтах не позволяет менять угол. Если менять штатное крепление, то вставить транзистор и соплю на GPIO — дело пяти минут.


Проблема 5: Скорость интернета никакая, видео долго уползало в облако, открывать видео из облака для просмотра с таким интернетом — это ад. Изменил схему: видео с камеры пишется на tmpfs (для увеличения времени жизни флешки), пережимается ffmpeg, после этого переносится в директорию webdav (кеш webdav тоже живёт на tmpfs). Температура процессора от 58 до 61 градуса, ffmpeg его особо не перегревает. Думаю, больше открытая форточка и направление ветра влияет на температуру. Использование оперативки в пике - 150Мб, объема малинки хватает с огромным запасом.


Шестая проблема выяснилась уже после установки. Малинка просто тупо висла без объяснения причин максимум через 5 дней после перезагрузки. Человеку с паранойей говорить: «Слушай, у тебя видео не пишется уже 2 дня, выключи и включи из розетки камеру» - далеко не лучшее решение, поэтому были перерыты все форумы, самое адекватное решение проблемы — поменять флешку на более качественную. Не помогло. Менее адекватное решение, использовать встроенный watchdog. Не помогло. Поэтому было принято решение собирать аппаратный watchdog на базе ESP8266. Пост затянулся, поэтому вкратце: ESP питается от USB шнурка и умеет его размыкать релюшкой, поднимает http-сервер и ждёт запроса, если за 30 минут ничего не пришло, то шлёт сообщение в телеграм, выключает на 3 секунды питание малинки и сама уходит в ребут. Если запрос на http получен, то таймаут сокращается до минуты, схема ребута та же при истечении таймаута. Кстати, первая фотка в посте ещё без WatchDog'а... С ним стало симпатичнее, не висит провод, перемотанный изолентой.

Бот телеграма:

Пожалуй, пора заканчивать, как и обещал, расчёт денежных затрат:


$1.46 - датчик движения

$15.95 - камера

$58.99 - Raspberry Pi (2 года назад)

- роутер Zyxel Keenetic Omni, яндекс маркет его оценивает в 2.500р, в продаже уже нет

- 400р на провод, розетку, кабель-канал, коробку для разводки, 2 Wargo (соединители проводов)

- транзистор 4р :-)

- Плата StepUp, что-то около 86 рублей, тоже года 2-3 назад брал, лень искать в заказах

- ESP8266 (NodeMCU) - 210р


Не посчитана цена двух разрезанных USB проводов для WatchDog и прочая мелочевка, типа железяки для кронштейна, резисторов, термоклея и т. д. Да, ещё инструмента примерно на 1500р пришлось купить, не считаю. Роутер тоже не буду считать, цена на маркете от потолка, подойдет почти любой. Ну и стоимость интернета не считаю, а так же аренду VPS для видюшек.


Итоговая стоимость (по текущему курсу): 5538.18р, мне кажется, оно того стоило, пришлось хорошенько упороться чтобы оперативно решить проблемы, 2 ночи провёл почти без сна, как дурак размахивая руками перед датчиком движения. Зато куча нервов сэкономлено. Да, ещё кошка дверь поцарапала, пытаясь прорваться за закрытую дверь, ущерб не считал.


Пример видео для оценки качества. Когда на кухне темно, то комнату хоть маленько видно. Качество так себе, но себя опознать легко, а другого и не надо


PS: @Nuc7ear, можешь отписываться =)

Arduino & Pi

1.5K постов20.9K подписчиков

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу

4
Автор поста оценил этот комментарий
А почему не использовать monit? И пишет, и в сеть стримит... Ну и настроить можно его даже для движения без датчика движения. Плюс может тот же таймлапс делать, ну так для архива.
P.s.: Тоже сначала делал с телеграмм, но потом ушел в пользу monit...
раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Спасибо, полезная вещь, когда-нибудь пригодится. Для данной ситуации избыточна, да при отказе от бота с ESP нужно будет как-нибудь слать уведомления о событиях, а я боюсь это всё трогать =) Первый месяц стабильной работы

показать ответы
4
Автор поста оценил этот комментарий

Ах уеду я уеду. Очумелые ручки и пару жизней свободного времени...

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Ах у ели, ах у ёлки... Да, в пень всё это, пойду дальше разлагаться и в ютуп залипать

1
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Таймер на "передёргивание" было первой моей мыслью избавиться от зависаний. Первое что я бы услышал: "А почему я вечером была дома, а видео нет?". Мне ESP + реле проще всего было сделать, я дольше провода резал и паял, чем писал прошивку, оно ещё мониторит отключение света (перезагрузилась ESP, потом малинка, значит не было света). Отсутствие интернета не приводит к неожиданностям, малинка и esp в одной сети, а davfs2 умеет в кеширование и отправит видюшки при появлении сети.

Дома я могу рулить светом на кухне через интернет, да. На практике, не применяю
показать ответы
1
Автор поста оценил этот комментарий
В стоке нет динамического днс, но в теории, через того же бота можно было управлять, плюс настроить отправку в телеграм скринов, возможно даже таймлапс за выбранный период.
По поводу облака, вы же вроде webdav там используете? Как вариант тот же sshfs раз на свой vps кладете.
Но это все уже лирика 8) главное что работает и все довольны.
А вот если захотите расширить возможности своей системы, то все-таки присмотритесь к motion. Из коробки так сказать можно подключить N камер, для каждой свой конфиг если надо. Плюс, для экономии места, можно настроить запись только при движении, с захватом настроенного интервал до/после движения.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Как результат обкатки: webdav работает отвратительно, залипает, оставляет файлы в кеше, не заливая на сервер...
sshfs - лучше, но тоже плохо. Ещё пришлось поприседать, чтобы монтировать, так как оно через fuse, и из fstab не работает в автоматическом режиме, только mount -a после загрузки

Итоговое идеальное решение: scp
Проблем нет, из-за переподключения при отправке каждого файла, работает как часы. Если верить логам, то все файлы отправились с первого раза

motion так и не осилил посмотреть =( да и чтобы переделать - нужно забрать и обкатать, а это вызовет панику и телефонные звонки - ну его нафиг
0
Автор поста оценил этот комментарий

Было бы невероятно круто!

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
https://github.com/avissian/watchdog

пока там почти пусто, в ближайшие дни наполню. Не уверен, что сегодня вечером будет время
0
Автор поста оценил этот комментарий

Интересна сама программная реализация с обеих сторон (малина и есп) . Дело в том, что я использую esp как удаленный исполняющий узел (реле/силовые ключи), управляемый с малины по mqtt, но как на нем поднимать сервера с таймерами знаю и curl на малине я пока не умею.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Я могу создать репозиторий на гитхабе с подробным ридми и кодом с есп и Малинки. В комменты это всё писать опупею.

Точнее, репозиторий есть, но он без ридми и приватный, так как я особо не парился и зашил пароли. Подойдёт, если я его приведу к нормальному виду и открою?
показать ответы
1
Автор поста оценил этот комментарий

У меня нет малины. Я просто разработчик софта и драйверов под линукс.

Подкинул информацию к размышлению.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Ну, вот, могу с сожалением сообщить, что оно работает только в теории. Либо я более криворукий, чем думаю
1
Автор поста оценил этот комментарий
В стоке нет динамического днс, но в теории, через того же бота можно было управлять, плюс настроить отправку в телеграм скринов, возможно даже таймлапс за выбранный период.
По поводу облака, вы же вроде webdav там используете? Как вариант тот же sshfs раз на свой vps кладете.
Но это все уже лирика 8) главное что работает и все довольны.
А вот если захотите расширить возможности своей системы, то все-таки присмотритесь к motion. Из коробки так сказать можно подключить N камер, для каждой свой конфиг если надо. Плюс, для экономии места, можно настроить запись только при движении, с захватом настроенного интервал до/после движения.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Motion посмотрю позже, на работе тяжело читать "левое". Только вот второй Малинки для проверки у меня нет и, надеюсь, больше не будет =)
Динамический днс особо не нужен под мои задачи, хватает того, что бот пишет. Так же, практика показала, что серый IP ни разу не менялся.
Про sshfs ничего не знаю, нужно читать. Если там нет кеширования на случай отсутствия интернета, то однозначно не подходит.
Спасибо за дельные комменты
1
Автор поста оценил этот комментарий
Я ошибся, не monit, а motion.
Вообще, этот роутер можно перешить на openwrt, там есть watchdog и dyndns что позволило бы иметь постоянный адрес, осталось бы только файрвол настроить, ну и порты пробросить на малину, а авторизация в motion настраивается.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
К слову, стоковая прошивка роутера позволяет пробрасывать все порты, кроме ssh. ssh можно прокинуть на любой другой порт
показать ответы
1
Автор поста оценил этот комментарий

Поищите информацию об опциях ядра Linux.

Они позволяют настроить GPIO в качестве выхода-heartbeat или использовать Watchdog ядра.

Например - http://robocraft.ru/blog/3130.html

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Есть опыт успешного применения? Я читал именно эту статью, выяснил, что в stretch уже все установлено, достаточно отправлять точку в /dev/watchdog, синтетические тесты оно прошло, в логи wd пишет, при прекращении записи через 15 секунд ребутит, форк бомба привела к перезагрузке, но при "боевом" применении малинка так же наглухо зависла...
показать ответы
1
Автор поста оценил этот комментарий
Я ошибся, не monit, а motion.
Вообще, этот роутер можно перешить на openwrt, там есть watchdog и dyndns что позволило бы иметь постоянный адрес, осталось бы только файрвол настроить, ну и порты пробросить на малину, а авторизация в motion настраивается.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
На openwrt шил, но достаточно давно, работал чуть хуже, чем отвратительно.

Motion видел, не стал использовать по нескольким причинам. Он хранит записи локально, хотелось облако (я боюсь за флешку Малинки), в репозитории его нет, а сборка сломалась, в итоге не стал ковыряться
0
Автор поста оценил этот комментарий

Я раз в 6 часов ставил сброс, чтоб перезагружать камеру рубитек и роутер кинетик

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Слишком часто. Вы недооцениваете людей с навязчивой идеей. Использование tmpfs привело к тому, что могут потеряться 2 последние записи, если они были сделаны непосредственно перед перезагрузкой. Минимальная длина записи 30 секунд, к концу второй записи первая загружается на сервер. Ну и нужно добавить время без питания, не знаю механических таймеров, которые могут отключить питание на несколько секунд. Да ещё и малинка загружается около минуты

Уже был вопрос "я сходила на кухню и обратно, а камера не сработала, наверное, ко мне могут забираться и записи не будет".

Самый дешёвый механический таймер я нашел за 245 рублей, решение на есп у меня вышло в 260р, при том, что я использовал не самые дешёвые, а имеющиеся дома компоненты, и собрал всё за вечер.
5
Автор поста оценил этот комментарий
Я так понимаю, тебе вкайф упороться и саморучно решить поставленную задачу. Респект!
Я в этом плане полный рукожоп.
P.S. Половину не понял из применимых технологий
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Я тоже рукожоп, но начал с этим бороться. Думаю, из поста понятно, что у меня даже особо инструментов не было, пришлось покупать
1
Автор поста оценил этот комментарий
Оранж с камерой, картой и корпусом 2500 с мелочью
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

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

показать ответы
0
Автор поста оценил этот комментарий

Уважаемый, расскажи, пожалуйста поподробнее, как ты организовал watchdog? У на малинке крутится сервер умного дома, и иногда он наглухо зависает. Найти проблему, почему он зависает не получается, в логах все норм. Я сделал управляемое реле через облако, но тогда приходится дергать его руками, что, понятно, такое себе. Очень хотелось  увидеть от Вас что-то типа гайда. 

раскрыть ветку (1)
Автор поста оценил этот комментарий
Есп: конектится к роутеру в ту же сеть, ip задан статикой на роутере. Поднят http сервер, запрос на который сбрасывает таймер на 60 секунд. Таймер после старта есп стоит 30 минут. Таймер кончился - передернуть малинку и перезагрузиться самой.

Малинка через curl посылает на url еспшки запрос каждые 15 секунд.

Немного спешил, если не понятно, то могу написать более развернуто. Или интересует аппаратная часть есп?
показать ответы
0
Автор поста оценил этот комментарий

как вы обошли блокировку Роскомпозора? а то без апи бот не пашет :)

раскрыть ветку (1)
Автор поста оценил этот комментарий
Я же ссылку на гитхаб в посте оставил. Или вопрос про esp?
показать ответы
0
Автор поста оценил этот комментарий

Что-то я вот тут немного не понял:

ESP питается от USB шнурка
Ты ESPху запитал от 5В?

раскрыть ветку (1)
Автор поста оценил этот комментарий
Конкретно эта модель хочет от 5 до 12 вольт. Верхний порог не проверял, поверю написанному, а вот нижний проверил
1
DELETED
Автор поста оценил этот комментарий

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

https://hi.watch/product/ds_i114

это прям чтоб щас купить проверенный бренд, но алиэкспресс никто не отменял.

Ну и омни до сих пор присутствует в линейке, купить его можно свободно,

но раз уж вы любите передернуть на технологи, почему зюксель? или это то, что было в Вашем овощном за углом? Там тоже продают еспешки и малинку?

раскрыть ветку (1)
Автор поста оценил этот комментарий
Конкретно про эту камеру читал. 69° угол обзора, ставить 2 пришлось бы. Читал про другие, везде в дешёвом сегменте недостатки.

Роутер и малинка лежали без дела. Еспешки недавно купил пачкой, 5 штук, поэтому была в наличии.
Поэтому фактические затраты на сборку а цена камеры, $16, плюс мелочевка (в посте реле забыл посчитать, 55р). Ну и 400 рублей пришлось бы в любом случае тратить на установку розетки
1
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий
Кстати, про зависания Малинки. Анти-рекорд до установки esp - 3 часа до зависания после перезагрузки. Механический таймер бы ждал сутки, а это пропуск 21 часа.
После установки esp малинка перестала залипать. По сути, поменялся только провод и один контакт теперь проходит через нормально замкнутую цепь реле. Никакой стабилизации не добавилось, значит дело было в проводе. Вон, на скрине аптайм 13 дней, на сегодня уже 17... Прошлая перезагрузка была из-за выключения света, на аптайме 15 дней
показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества