Непрофесійне відеоспостереження квартири цікаво і недорого

З моменту як у мене в квартирі на сторожі з’явилася GSM сигналізація, з’явилася думка про те, що непогано б мати в мою відсутність в квартирі і «очі» у разі спрацювання датчиків сигналізації (а може помилкового спрацьовування?). Оскільки я інженер в області інформаційних технологій, ні про якому професійному вирішенні у вигляді реєстратора і купи камер мова не йшла — тільки все сам, своїми руками. Бюджет теж відразу було вирішено обнулити обмежити, а в разі успішності проекту вже думати про його подальше поліпшення і модернізацію.

Залізо

Першим ділом підбираємо залізо. «Очі» маю на увазі камеру, тут вже нікуди не дінешся. Потім постає питання, що робити з отриманим зображенням — зберігати його, передавати кудись і т. д. Так я подумав про підключений через UPS роутер з модемом 4G для стабільного каналу з інтернет який важко «покласти» потенційному грабіжникові.

На роботі ми з успіхом вже кілька років користуємося роутерами з USB портами ZyXel Keenetic (конкретно моя вже застаріла модель Giga2). Після того, як розробники прошивок «прикрутили» таку штуку як OPKG (менеджер пакетів) — з’явилася можливість перетворити свій роутер в персональний комп’ютер з linux c широкими можливостями, чим я і вирішив скористатися для своєї мети. Отже, вже маючи вдома комп’ютер-роутер з модемом, підключеним 4G мені не вистачало тільки «очей» — камери USB. Згадавши, що три-чотири роки тому купував для батьків веб камеру logitech С270 для їх спілкування з родичами через skype на комп’ютері і те, що зараз вони спілкуються вже через планшет — камеру у них реквізував. До речі на камері на лицьовій панелі є світлодіод, який показує працює камера чи ні — в подальшому це виявилося дуже зручно для візуального визначення роботи системи відеоспостереження.

Читайте також  AMD представила лінійку процесорів Ryzen 3000 і довгоочікувану графіком Navi

Налаштування заліза

Отже, залізо є. І що не може не радувати — поки перебуваємо в рамках бюджету.
На моєму роутері два 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» пишемо

/opt/etc/init.d/rc.unslung

і натискаємо Застосувати.
Після установки OPKG, клієнтом SSH (я використовую програму Putty на своєму ноутбуці c windows) чіпляємося до роутера і виконуємо наступні команди для оновлення OPKG:

opkg update
opkg upgrade

За замовчуванням на SSH логін root пароль keenetic (або zyxel в залежності від версії прошивки). Пароль рекомендується поміняти командою passwd.

Софт

Далі встановлюємо програму motion.

opkg install motion

Саме вона буде працювати з нашою камерою, аналізувати зміну картинки і давати вказівку роутеру куди посилати отримане зображення. Файл налаштувань програми motion це etcmotionmotion.conf, редагуючи його змінюємо потрібні нам настройки. Першим ділом я встановив підтримувану камерою максимальну роздільну здатність 1280×720, повернув на зображення на 180 градусів (мені зручніше було встановити камеру «догори ногами»), запис 2 кадри в секунду.

rotate 180
width 1280
height 720
framerate 2

Записувати все відео і транслювати його в інтернет необхідності я не бачив, тому налаштував motion записувати відео і передавати її лише у випадку зміни зображення. В процесі настройки motion стало зрозуміло, що вона не підтримує з моєю камерою режим MJPEG, а тільки підтримує режим YUYV — в результаті чого результатом роботи motion буде не відеоряд, а тільки послідовність фотографій JPEG.

v4l2_palette 15

Також я налаштував motion так, що копія фотографій копіюється на зовнішній FTP сервер.

on_picture_save wput ftp://login:pass@XX.29.136.XX %f

У разі, якщо винесуть з квартири і роутер з картою пам’яті, все одно буде можливість подивитися, як саме це сталося.

Читайте також  Знижки на AliExpress в честь 9-річчя компанії

Дуже рекомендується поміняти логін пароль на підключення до вашої камери.

stream_authentication login:pass

Після всіх налаштувань дивимося в браузері результат за адресою:

ІРроутера:8081


Увага! Якщо ніякого зображення в браузері ви не побачили, слід звернути увагу на вашу версію прошивки 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.


Запуск motion через SSH:

/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 з робочого роутера на домашній я нарешті можу керувати своєю камерою віддалено звертаючись зі свого смартфона за статичному адресою роутера на роботі.

Читайте також  Audi представила авто без дзеркал. Зате з екранами замість них

Також пробував автоматизувати управління з допомогою автоматизатора Tasker (у нього є свій окремий SSH клієнт) — відстежувати підключення смартфона до Wi-Fi роутера і в залежності від цього включати або вимикати motion. Логіка тут така: смартфон підключений до Wi-Fi роутера — значить я вдома — камеру вимкнути. Смартфон не підключений до Wi-Fi роутера — значить я не вдома — включити камеру. Але поекспериментувавши, від цього варіанту відмовився — занадто багато помилкових спрацьовувань. Наприклад я вдома, смартфон заснув, роутер втратив смартфон, включилася камера — ну і т. д. В даний час користуюся тільки ручним способом.

Висновок

В принципі, що я хотів від проекту, те й отримав. Можу «бачити» квартиру коли захочу і в разі якихось спрацьовувань GSM сигналізації вже приймати рішення, що робити далі. У процесі реалізацій вирішив купу проблем, але їх рішення викликало певний кайф від набутих знань і реалізації задуманого.

Степан Лютий

Обожнюю технології в сучасному світі. Хоча частенько і замислююся над тим, як далеко вони нас заведуть. Не те, щоб я прям і знаюся на ядрах, пікселях, коллайдерах і інших парсеках. Просто приходжу в захват від того, що може в творчому пориві вигадати людський розум.

You may also like...

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *