Поігравшись з Raspberry Pi і камерою для нього, я задумався про його практичне застосування. Якраз до цього моменту дозріла необхідність в автономній системі спостереження з функціями охорони для дачі (бездоглядні сусідські дітки спалили лазню на дачі в результаті посиденьок з алкоголем і куріння).
Можливо, мій досвід і результати роботи (образ SD з усім налаштованим ПЗ) будуть корисні.
Відео на місцевості не знімав. На зиму не ризикнув залишати на дачі з засипаними снігом дорогами.
Деякі шматочки роботи в тепличних умовах:
Проект не був замовним. Робив виключно для себе і власного задоволення. Від роботи з відео в автономному режимі через модем відмовився відразу. Відео через модем у режимі навіть у 3G - це несерйозно.
Вхідні обмеження проекту:
- Низькошвидкісний Інтернет через GSM модем (МТС). У кращому випадку 2G;
- Немає свого хосту з «білим IP»;
- Тільки легкодоступні компоненти.
Вхідні вимоги, які я сформулював для себе:
- Автономна робота з перевантаженням після збою живлення та програмних збоїв;
- Поворотна платформа (горизонталь + вертикаль) з круговим оглядом;
- Довгофокусний об'єктив;
- Зовнішні автономні датчики з радіоканалом;
- Автоматична зйомка зони спрацювання датчика;
- Посилка Alarm SMS;
- Посилка Alarm + фото низької/середньої роздільної здатності на e-mail;
- Фонове вивантаження фото високої роздільної здатності на хмарний диск;
- Фонове вивантаження логів на хмарний диск;
- Управління через e-mail (посилкою bash скриптів і отримання результатів їх виконання);
- Керування SMS. Виклик попередньо визначених скриптів. Наприклад, повернути камеру і зробити знімок;
- Пересилання прийшли на модем SMS на e-mail;
- Додатковий функціонал при знаходженні поруч, в межах стійкого 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» передбачав використовувати геркон з магнітом, але після відмови від кругового огляду, прийшов до висновку, що більш зручна наступна технологія:
- Обертання горизонтальної вертикальної і платформи на максимальний кут;
- При досягненні упору крокові двигуни починають пропускати кроки (двигуни слабенькі і це цілком допустимо);
- Наприкінці циклу повороту на максимальні кути, можна вважати, що досягнуто «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 підсвічування зони датчика відмовився:
- IR світлодіоди підсвічування чітко видно в сутінках. Демаскує місце встановлення датчика;
- Вночі, локальне IR підсвічування, що вмикається від PIR датчика, дає, схоже, позитивний зворотний зв'язок з IR випромінювання і починаються «дива» з безперервним спрацьовуванням PIR датчика. Потрібно «мудрити» зі взаємним розташуванням датчика і підсвічування. Складно, незручно і залежить від часу доби.
За сигналом від датчика:
- Камера повертається на програмно заданий кут по горизонталі і вертикалі;
- Робить знімки низької роздільної здатності (640x480) і знімок з максимальною роздільною здатністю (зберігається в tmpfs);
- Знімок з низькою роздільною здатністю посилається на e-mail;
- Передається SMS, що інформує про спрацювання датчика;
- Знімок з високою роздільною здатністю, у фоновому режимі, викладається на хмарний диск. Якщо не вдається надіслати відразу, то зберігається в архів на SD, для подальшої відправки.
Програмне забезпечення
Налаштуванням 3g модема, WiFiі пр. присвячено дуже багато детальних статей, і повторювати їх вважаю нераціональним.
Образ SD з усім
налаштованих ЗА.
Файл/home/pi/read.me містить посилання, на файли, де потрібно прописати свої паролі.
Налаштовано на сервіси Yandex (e-mail і хмарний диск).
Login/password консолі і ftp - стандартний: «pi/raspberry»
Потенційні можливості для поліпшення (на мій погляд):
- Зробити «»/«» повністю readonly. Здебільшого я виніс весь запис у файли в tmpfs. Але, дещо залишилося і було лінь возиться, оскільки, на практиці, ймовірність псування SD, після нештатного вимикання живлення, знизилася до задовольняючих мене значень;
- Hardware reset модема шляхом переривання ланцюга його живлення. Може це суб'єктивно, але іноді «вкл/викл» допомагає краще, ніж software reset модема. В принципі, це не складно. Всього один польовий транзистор в ланцюгу живлення модема.
Компоненти
Компоненти типові:
- Raspberry pi + SD карта від 4Гб;
- Raspberry pi camera (китайський клон);
- GSM модем - MTC 3G (ID 12d1:1506 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard).
- WiFi зі стандартних, рекомендованих (ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter);
- Крокові двигуни 28BYJ-48 12V + драйвери на UN2003;
- Блок живлення - будь-який 12-20V не менше 2A;
- Stepdown DC-DC перетворювачі - 2шт. На «китайський» вихідний струм не менше 2A;
- Об'єктив, якщо не влаштовує стандартний (а він зовсім ніякий) - будь-який який який сподобається. Об'єктиви для камер спостережень є на будь-яке завдання і гаманець;
- RS232TTL-USB додаток для підключення консолі. Фактично тільки для зневадження;
- Плата приймача і потрібна кількість PIR додатків і брелків передавача (повно на ebay в різних варіантах).
Спаяти:
- Подовжувач USBдля модема з виносом + 5V до окремого DC-DCперетворювача;
- Узгодження рівнів між GPIO 3.3V IN і виходами приймача. На кожен канал - біполярний транзистор + пара резисторів. Я ще світлодіод для контролю поставив;
- Роз'єми і шлейфи, щоб з'єднати все це.
У кого є верстат ЧПУ - без проблем можна намалювати і випиляти корпус/шестерні. Намалювати і вирізати можна максимум за 3 години. Своє вихідне креслення не викладаю. Робив би вдруге - зробив би інакше і компактніше.
Висновки з отриманих результатів
Якби мені було потрібно зробити тиражоване промислове рішення для аналогічного завдання охоронної сигналізації, то я не вибрав би Raspberry Pi.
Взяв би OEM модуль камери, контролер типу STM32... з інтерфейсом під камеру і OEM додаток GSM модема.
Як то мені зручніше такі речі зовсім без OS робити або на спеціалізованих OS.
Час на розробку функціоналу суто охоронної сигналізації пішов би максимум 3-4 рази більше, ніж поєднання купи безкоштовного ПЗ з надлишковою функціональністю і доведення всього цього зоопарку до робочого стану.
Енергоспоживання малини і вибагливість до харчування просто пригнічують.
А так raspberry pi іграшка цікава. Але тільки пограти. Хоча це моя особиста думка і я її не нав'язую.
