Автономна система охорони і спостереження на Raspberry PI

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

Можливо, мій досвід і результати роботи (образ SD з усім налаштованим ПЗ) будуть корисні.

Відео на місцевості не знімав. На зиму не ризикнув залишати на дачі з засипаними снігом дорогами.

Деякі шматочки роботи в тепличних умовах:

Проект не був замовним. Робив виключно для себе і власного задоволення. Від роботи з відео в автономному режимі через модем відмовився відразу. Відео через модем у режимі навіть у 3G - це несерйозно.

Вхідні обмеження проекту:

  1. Низькошвидкісний Інтернет через GSM модем (МТС). У кращому випадку 2G;
  2. Немає свого хосту з «білим IP»;
  3. Тільки легкодоступні компоненти.

Вхідні вимоги, які я сформулював для себе:

  1. Автономна робота з перевантаженням після збою живлення та програмних збоїв;
  2. Поворотна платформа (горизонталь + вертикаль) з круговим оглядом;
  3. Довгофокусний об'єктив;
  4. Зовнішні автономні датчики з радіоканалом;
  5. Автоматична зйомка зони спрацювання датчика;
  6. Посилка Alarm SMS;
  7. Посилка Alarm + фото низької/середньої роздільної здатності на e-mail;
  8. Фонове вивантаження фото високої роздільної здатності на хмарний диск;
  9. Фонове вивантаження логів на хмарний диск;
  10. Управління через e-mail (посилкою bash скриптів і отримання результатів їх виконання);
  11. Керування SMS. Виклик попередньо визначених скриптів. Наприклад, повернути камеру і зробити знімок;
  12. Пересилання прийшли на модем SMS на e-mail;
  13. Додатковий функціонал при знаходженні поруч, в межах стійкого WiFi (15-20м):
  • Функції WiFi роутера з роздачею Інтернету;
  • Доступ до ftp і ssh консоль;
  • Web video stream c камери.

За винятком кругового огляду, всі інші вимоги вдалося реалізувати.

Круговий огляд горизонтально

Повністю круговий огляд не вийшов. Експерименти показали, що подавати струм через пару «щітки від електродвигуна дрелі + струмочок з фольгованого текстоліту» явно не найкраща ідея. Приблизно в межах 2-5 повороту на 360 градусів відбувається збій з харчування та перезавантаження. Додавання електроліту великої ємності не сильно допомогло. У результаті поставив два обмежувачі на кут повороту 270 градусів і записав безпосередньо без струмозйомника.

Фоток конструкції з щітками не робив, але експериментував з нею багато. На фото можна зрозуміти, як це виглядало спочатку (прибрані щітки і струмочеві кільця з фольгованого текстоліту).

Експериментувати з іншими видами струмозйомників не став. Для моїх цілей і місця установки 270 градусів огляду достатньо (кут будівлі).

Вивід: струмочок «вугільна щітка + мідна площина» підходить тільки для випадків, коли короткочасне зникання контакту не принципове і де за рахунок руху за інерцією, контакт буде відновлено.

Поворотна платформа.

Для повороту задіяні дешеві крокові двигуни. За паспортом вони працюють від 12V, але як показала практика, і при 19V не гріються в режимі «1 хвилина через 3 хвилини без режиму утримання». Драйвер UN2003 справляється зі струмом при 19V навіть у корпусі SO16 (SMD) без перегріву. Зі штатними драйверами UN2003 в DIP корпусі, які продаються в комплекті до кроковиків, взагалі проблем не повинно бути.

Поворот виконується плавно і абсолютно безшумно.

Евольвентні шестерні з модулем 1мм, якщо кому цікаво, дуже добре ріжуться на ЧПУ верстаті фрезою 1мм зі склотекстоліту.

Вибір саме крокових двигунів обумовлений простотою управління і точністю позиціонування при автономній роботі.

Для виставлення на «0» передбачав використовувати геркон з магнітом, але після відмови від кругового огляду, прийшов до висновку, що більш зручна наступна технологія:

  1. Обертання горизонтальної вертикальної і платформи на максимальний кут;
  2. При досягненні упору крокові двигуни починають пропускати кроки (двигуни слабенькі і це цілком допустимо);
  3. Наприкінці циклу повороту на максимальні кути, можна вважати, що досягнуто «0» щодо упорів.

Позиція на «0» таким способом відбувається досить повільно, але все ж швидше, ніж завантаження Linux. Швидкість завантаження Linux на малині просто гнітить.

Особливості харчування

Як багато разів говорилося, малина НУ ДУЖЕ вибаглива до харчування. Я запитав її і WiFi USB від 19V 2.6A блоку живлення (який був) від старого ноутбука через stepdown DC-DC перетворювач. Окремий stepdown DC-DC перетворювач знадобився на харчування 3G модема.

Від одного перетворювача запитати модем і плату не вийшло, хоча за «китайським паспортом» струму DC-DC модуля повинно було вистачати. Струму в статиці одного перетворювача вистачає, але при активації модема чутно як зривається генерація в модулі перетворювача напруги, переходячи в звуковий діапазон, і просідає напругу на виході з перезавантаженням Linux.

Камера

Штатна камера Rasberry Pi c заміною об'єктива. Об'єктив підійшов від модуля MT9D111, купленого давно на e-bay для експериментів. Матриця не стало в нагоді, а об'єктив підійшов ідеально. Разом зі штатним об'єктивом знявся і вбудований у нього IR-фільтр. Що навіть добре, оскільки новий об'єктив з маркуванням IR. Кольори на знімках дещо спотворені (рожеваті знімки), але за те можливе IR підсвічування.

Зовнішні датчики

У якості датчика використовується PIR додаток на BISS0001. Передавач з брелка на 433Мгц, трохи дороблений (один біполярний транзистор і резистор) і керований виходом з PIR модуля.

Експерименти показали, що від 12V кислотного акумулятора ця комбінація працює мінімум 2 місяці (може і більше, не пробував).

Приймач 4-х канальний і продається в комплекті з брелоком. Таким чином, забезпечується 4 зони охорони з можливістю зробити фото місця спрацювання.

Дальність комплекту передавач-приймач менша, ніж заявлено у продавців, і вже приблизно на 40 метрах прямої видимості прийом не стійкий. Можливо це перешкоди від Raspberry pi, GSM модема і/або DC-DC перетворювачів.

Влітку, деякими ночами, були «помилкові» спрацювання. Ймовірно на птахів або кажанів.

Перший варіант датчика був з окремим виходом для активації IR підсвічування. Фото тоді не робив, але нічого складно немає. Просто ще один транзистор, керований з виходу PIR. Підсвічування - кругла плата від камери спостереження на 12V з IR світлодіодами.

Після проб, від локального IR підсвічування зони датчика відмовився:

  1. IR світлодіоди підсвічування чітко видно в сутінках. Демаскує місце встановлення датчика;
  2. Вночі, локальне IR підсвічування, що вмикається від PIR датчика, дає, схоже, позитивний зворотний зв'язок з IR випромінювання і починаються «дива» з безперервним спрацьовуванням PIR датчика. Потрібно «мудрити» зі взаємним розташуванням датчика і підсвічування. Складно, незручно і залежить від часу доби.

За сигналом від датчика:

  1. Камера повертається на програмно заданий кут по горизонталі і вертикалі;
  2. Робить знімки низької роздільної здатності (640x480) і знімок з максимальною роздільною здатністю (зберігається в tmpfs);
  3. Знімок з низькою роздільною здатністю посилається на e-mail;
  4. Передається SMS, що інформує про спрацювання датчика;
  5. Знімок з високою роздільною здатністю, у фоновому режимі, викладається на хмарний диск. Якщо не вдається надіслати відразу, то зберігається в архів на SD, для подальшої відправки.

Програмне забезпечення

Налаштуванням 3g модема, WiFiі пр. присвячено дуже багато детальних статей, і повторювати їх вважаю нераціональним.

Образ SD з усім

налаштованих ЗА.

Файл/home/pi/read.me містить посилання, на файли, де потрібно прописати свої паролі.

Налаштовано на сервіси Yandex (e-mail і хмарний диск).

Login/password консолі і ftp - стандартний: «pi/raspberry»

Потенційні можливості для поліпшення (на мій погляд):

  1. Зробити «»/«» повністю readonly. Здебільшого я виніс весь запис у файли в tmpfs. Але, дещо залишилося і було лінь возиться, оскільки, на практиці, ймовірність псування SD, після нештатного вимикання живлення, знизилася до задовольняючих мене значень;
  2. Hardware reset модема шляхом переривання ланцюга його живлення. Може це суб'єктивно, але іноді «вкл/викл» допомагає краще, ніж software reset модема. В принципі, це не складно. Всього один польовий транзистор в ланцюгу живлення модема.

Компоненти

Компоненти типові:

  1. Raspberry pi + SD карта від 4Гб;
  2. Raspberry pi camera (китайський клон);
  3. GSM модем - MTC 3G (ID 12d1:1506 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard).
  4. WiFi зі стандартних, рекомендованих (ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter);
  5. Крокові двигуни 28BYJ-48 12V + драйвери на UN2003;
  6. Блок живлення - будь-який 12-20V не менше 2A;
  7. Stepdown DC-DC перетворювачі - 2шт. На «китайський» вихідний струм не менше 2A;
  8. Об'єктив, якщо не влаштовує стандартний (а він зовсім ніякий) - будь-який який який сподобається. Об'єктиви для камер спостережень є на будь-яке завдання і гаманець;
  9. RS232TTL-USB додаток для підключення консолі. Фактично тільки для зневадження;
  10. Плата приймача і потрібна кількість PIR додатків і брелків передавача (повно на ebay в різних варіантах).

Спаяти:

  1. Подовжувач USBдля модема з виносом + 5V до окремого DC-DCперетворювача;
  2. Узгодження рівнів між GPIO 3.3V IN і виходами приймача. На кожен канал - біполярний транзистор + пара резисторів. Я ще світлодіод для контролю поставив;
  3. Роз'єми і шлейфи, щоб з'єднати все це.

У кого є верстат ЧПУ - без проблем можна намалювати і випиляти корпус/шестерні. Намалювати і вирізати можна максимум за 3 години. Своє вихідне креслення не викладаю. Робив би вдруге - зробив би інакше і компактніше.

Висновки з отриманих результатів

Якби мені було потрібно зробити тиражоване промислове рішення для аналогічного завдання охоронної сигналізації, то я не вибрав би Raspberry Pi.

Взяв би OEM модуль камери, контролер типу STM32... з інтерфейсом під камеру і OEM додаток GSM модема.

Як то мені зручніше такі речі зовсім без OS робити або на спеціалізованих OS.

Час на розробку функціоналу суто охоронної сигналізації пішов би максимум 3-4 рази більше, ніж поєднання купи безкоштовного ПЗ з надлишковою функціональністю і доведення всього цього зоопарку до робочого стану.

Енергоспоживання малини і вибагливість до харчування просто пригнічують.

А так raspberry pi іграшка цікава. Але тільки пограти. Хоча це моя особиста думка і я її не нав'язую.