Оглавление:

Полнофункциональная камера для наружного наблюдения на базе Raspberry Pi: 21 шаг
Полнофункциональная камера для наружного наблюдения на базе Raspberry Pi: 21 шаг

Видео: Полнофункциональная камера для наружного наблюдения на базе Raspberry Pi: 21 шаг

Видео: Полнофункциональная камера для наружного наблюдения на базе Raspberry Pi: 21 шаг
Видео: Митап: Умный дом своими руками 2024, Июль
Anonim
Полнофункциональная уличная камера видеонаблюдения на базе Raspberry Pi
Полнофункциональная уличная камера видеонаблюдения на базе Raspberry Pi
Полнофункциональная уличная камера видеонаблюдения на базе Raspberry Pi
Полнофункциональная уличная камера видеонаблюдения на базе Raspberry Pi
Полнофункциональная уличная камера видеонаблюдения на базе Raspberry Pi
Полнофункциональная уличная камера видеонаблюдения на базе Raspberry Pi
Полнофункциональная уличная камера видеонаблюдения на базе Raspberry Pi
Полнофункциональная уличная камера видеонаблюдения на базе Raspberry Pi

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

Шаг 1. Вдохновение

Вдохновение
Вдохновение

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

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

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

Шаг 2: Оборудование

Аппаратное обеспечение
Аппаратное обеспечение

Для создания внутренней веб-камеры отлично подойдет простая Raspberry Pi (любая модель) и подключенная камера (любая модель) с ИК-светодиодами для ночного видения. Уже доступно множество наборов с этой комбинацией, поэтому, если вы хотите достичь этого, купите один из них и переходите к шагу 12.

То же оборудование, однако, не подошло бы для уличной камеры: изображение, полученное с помощью ИК-камеры Raspberry за пределами вашего дома, будет выглядеть в основном мизинцевым (из-за инфракрасного света, улавливаемого камерой) и с маленьким внешним видом. -коробка с ИК-светодиодами, вы не сможете видеть ничего за 3 фута / 1 метра.

Чтобы решить первую проблему, нам нужен так называемый механический фильтр IR CUT, который в основном возвращает вам истинные цвета при дневном свете, но все же позволяет улавливать инфракрасный свет в ночное время. Большинство устройств на рынке имеют два провода: один короткий импульс на одном проводе переместит ИК-фильтр перед датчиком (дневной режим), один короткий импульс на другом проводе удалит фильтр (ночной режим). Обычно они работают в диапазоне от 3 до 9 В, и если они подключены к нашей Raspberry, мы можем полностью контролировать, когда переключать ночной режим. Однако фильтром IR Cut нельзя управлять напрямую с штыря Raspberry, поскольку механическая часть внутри него требует гораздо большего тока, чем тот, который может подавать Pi. Мы будем работать над этим, используя H-мост с питанием от 5 В от Raspberry и управляемый двумя контактами.

Чтобы решить вторую проблему, нам понадобится более мощная плата ИК-светодиодов, чтобы обеспечить достойное ночное видение. Платы с меньшим количеством светодиодов большего размера предпочтительнее, чем платы с большим количеством крошечных светодиодов. Большинство плат на рынке также имеют присоединенный LDR (светозависимый резистор), который используется для определения того, когда включать светодиоды в темноте. Обычно они работают от 12 В и имеют небольшой штекер (помеченный «IRC»), который можно использовать для подключения отсекающего ИК-фильтра. Однако импульс не отправляется напрямую через этот штекер, но ночью (светодиоды горят) создается (обычно) падение напряжения 5 В между проводами и землей. Если подключить один из проводов к нашей Raspberry и контролировать сигнал контакта, мы можем определить, входим ли мы в ночной режим или выходим из него (это именно то, что делает PiWebcam).

Последнее, что нужно учитывать в отношении оборудования, - это питание Raspberry Pi. Поскольку у нас есть источник питания 12 В и нам нужно 5 В для питания Pi, необходим регулятор напряжения.

Шаг 3: Программное обеспечение

Программное обеспечение
Программное обеспечение

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

  • Страница проекта:
  • Руководство пользователя:

Шаг 4: Спецификация материалов

Ведомость материалов
Ведомость материалов
Ведомость материалов
Ведомость материалов
Ведомость материалов
Ведомость материалов

Следующий перечень материалов предназначен для наружной веб-камеры, созданной в этом руководстве:

  • Малина Pi Zero W
  • Камера Raspberry Pi (любая модель, с ИК-фильтром)
  • Кабель для камеры Raspberry Pi Zero
  • Водонепроницаемый корпус камеры (любая модель, в которую поместится малина)
  • SD-карта (рекомендуется 16 ГБ)
  • ИК-светодиодная плата (любая плата, подходящая для корпуса камеры)
  • ИК-фильтр (только если он еще не встроен в камеру)
  • Регулятор 12 В - 5 В (убедитесь, что это понижающий регулятор, который может обеспечить не менее 1 А)
  • Штекер Micro USB
  • Розетка 12v
  • Блок питания 12v 3A
  • H-мост
  • Женский-женский Dupont cales

Шаг 5: Подготовка компонентов

Подготовка компонентов
Подготовка компонентов
Подготовка компонентов
Подготовка компонентов
Подготовка компонентов
Подготовка компонентов

Понижающий преобразователь (регулятор напряжения) отвечает за преобразование источника питания 12 В в напряжение 5 В, необходимое для Raspberry Pi. Большинство компонентов на рынке регулируются (например, вы можете изменить выходное напряжение, повернув винт). Поскольку внутри веб-камеры винт может случайно сдвинуться, для обеспечения постоянного и постоянного выходного напряжения 5 В поместите немного олова в слот 5 В, чтобы спаять вместе два края, и перережьте провод на печатной плате (ножом), который входит в «ADJ». (вверху слева на картинке)

Поскольку мы хотим иметь полный контроль над фильтром IR Cut через Raspberry (независимо от того, встроен ли фильтр в камеру, как на картинке), нам нужно избавиться от небольшого разъема. Отрежьте два провода и подсоедините к каждому проводу кабель dupont с внутренней резьбой. Не выбрасывайте маленькую вилку, так как нам нужно использовать ее для получения статуса LDR, установленного на плате IR Led Board. Подключите еще один женский кабель dupont к одному из двух проводов (неважно, к какому).

Шаг 6: Подключите плату с ИК-подсветкой к источнику питания

Подключите плату с ИК-подсветкой к источнику питания
Подключите плату с ИК-подсветкой к источнику питания
Подключите плату с ИК-подсветкой к источнику питания
Подключите плату с ИК-подсветкой к источнику питания
Подключите плату с ИК-подсветкой к источнику питания
Подключите плату с ИК-подсветкой к источнику питания

Начнем с подключения входа источника питания 12 В, входящего в корпус нашей голой камеры, к компонентам.

Подключите к отрицательному (черному) проводу следующее:

  • Минусовой провод платы IR Led
  • Минусовой провод понижающего преобразователя
  • Минусовой провод к штекерному разъему USB

Подключите к положительному (красному) проводу следующее:

  • Положительный (12 В) провод платы IR Led
  • Винный провод понижающего преобразователя

Шаг 7. Включите Raspberry Pi

Включите Raspberry Pi
Включите Raspberry Pi
Включите Raspberry Pi
Включите Raspberry Pi

Подключите провод Vout понижающего преобразователя к разъему USB, который будет питать Raspberry.

После соединения всех проводов спаяйте их или просто закрепите изолентой.

Шаг 8: Подключите ИК-фильтр

Подключите ИК-фильтр
Подключите ИК-фильтр
Подключите ИК-фильтр
Подключите ИК-фильтр
Подключите ИК-фильтр
Подключите ИК-фильтр

Поскольку фильтром IR Cut нельзя управлять напрямую с вывода Raspberry, мы будем использовать H-мост, питаемый от вывода Raspberry 5 В и управляемый двумя выводами.

  • Подключите контакт 4 (5 В) малины к «+» H-образного моста.
  • Подключите контакт 5 (GND) малины к «-» H-моста.
  • Подключите контакт 39 (BCM 20) raspberry к INT1 H-моста.
  • Подключите контакт 36 (BCM 16) raspberry к INT2 H-моста.
  • Подключите два провода ИК-фильтра к MOTOR1 и MOTOR2 или H-мосту.

Таким образом, когда импульс будет отправлен, например, контакт 39, 5В будет подано на ДВИГАТЕЛЬ1, заставляя фильтр переключаться.

Шаг 9: Подключите плату с ИК-подсветкой к Raspberry

Подключите IR Led Board к Raspberry
Подключите IR Led Board к Raspberry

Чтобы знать, когда темнеет, мы используем LDR, установленный на плате ИК-светодиодов. Используйте небольшой штекер, вырезанный из ИК-фильтра на предыдущих этапах, подключите одну сторону к разъему с надписью «IRC» на плате ИК-светодиодов, а другую - к контакту 40 (BCM 21) Raspberry.

Шаг 10: установите камеру на плату с ИК-подсветкой

Установите камеру на плату с ИК-подсветкой
Установите камеру на плату с ИК-подсветкой
Установите камеру на плату с ИК-подсветкой
Установите камеру на плату с ИК-подсветкой

Закрепите камеру в специальном слоте на плате ИК-светодиодов с помощью изоленты или других средств. На этом этапе следует учесть следующее:

  • При включении плата ИК-светодиодов сильно нагревается, поэтому защитите камеру соответствующим образом;
  • Убедитесь, что ИК-свет не может попасть в слот, где расположена камера; Отражение ИК-света - одна из наиболее частых причин плохого (нечеткого) ночного видения;
  • Убедитесь, что между объективом и стеклом корпуса камеры осталось некоторое пространство, в противном случае может возникнуть отражение или искажение изображения;

Пока НЕ закрывайте корпус камеры:-)

Шаг 11: Вариант 1. Прошивка предварительно настроенного изображения PiWebcam (рекомендуется)

Вариант 1. Прошивка предварительно настроенного изображения PiWebcam (рекомендуется)
Вариант 1. Прошивка предварительно настроенного изображения PiWebcam (рекомендуется)
  • Загрузите последний образ PiWebcam (PiWebcam_vX. X.img.zip) с
  • Разархивируйте файл Запишите образ на SD-карту (https://www.raspberrypi.org/documentation/installation/installing-images/)
  • Подключите SD-карту к Raspberry Pi и включите его.
  • Устройство начнет действовать как точка доступа.
  • Продолжайте послеустановочные задачи.

Шаг 12: Вариант 2 - Создайте изображение PiWebcam

Вариант 2 - создание изображения PiWebcam
Вариант 2 - создание изображения PiWebcam

Для создания образа PiWebcam требуется новая установка Raspbian и SD-карта. Пожалуйста, не используйте повторно существующую установку, а начните с нуля:

  • Скачать операционную систему Raspbian Stretch Lite
  • Запишите образ на SD-карту (например, с помощью Win32 Disk Imager)

Шаг 13: Вариант 2 - Скопируйте PiWebcam на SD-карту

Вариант 2 - скопируйте PiWebcam на SD-карту
Вариант 2 - скопируйте PiWebcam на SD-карту
Вариант 2 - скопируйте PiWebcam на SD-карту
Вариант 2 - скопируйте PiWebcam на SD-карту
Вариант 2 - скопируйте PiWebcam на SD-карту
Вариант 2 - скопируйте PiWebcam на SD-карту

Загрузите последнюю версию PiWebcam (PiWebcam_vX. X.zip), извлеките и скопируйте каталог «PiWebcam» в загрузочный раздел.

Для установки без головы поместите в загрузочный раздел также пустой файл с именем «ssh» и «wpa_supplicant.conf» с конфигурацией вашей сети. Таким образом, Raspberry начнет подключаться к вашей сети Wi-Fi при запуске, и вам вообще не понадобится кабель HDMI, но вы сможете подключиться к нему напрямую через SSH.

Шаг 14: Вариант 2 - Включите Raspberry и подключитесь к нему

Вариант 2 - Включите Raspberry и подключитесь к нему
Вариант 2 - Включите Raspberry и подключитесь к нему
Вариант 2 - Включите Raspberry и подключитесь к нему
Вариант 2 - Включите Raspberry и подключитесь к нему

Подключите SD-карту к Raspberry Pi, включите ее и с помощью клиента SSH (или PuTTY в Windows) подключитесь к ней:

  • Имя хоста: raspberrypi.local
  • Имя пользователя: pi
  • Пароль: малина

Шаг 15: Вариант 2 - Настройте систему для PiWebcam

Вариант 2 - настройка системы для PiWebcam
Вариант 2 - настройка системы для PiWebcam
Вариант 2 - настройка системы для PiWebcam
Вариант 2 - настройка системы для PiWebcam

Убедившись, что Raspberry подключен к Интернету, выполните следующую команду:

sudo /boot/PiWebcam/PiWebcam.sh установить

Это полностью настроит систему и установит необходимые зависимости.

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

Обратите внимание, что последние 6 символов случайны (например, PiWebcam-e533fe) и различаются от устройства к устройству.

Шаг 16. Задачи после установки - подключитесь к точке доступа Wi-Fi PiWebcam

Задачи после установки - подключение к точке доступа Wi-Fi PiWebcam
Задачи после установки - подключение к точке доступа Wi-Fi PiWebcam
Задачи после установки - подключение к точке доступа Wi-Fi PiWebcam
Задачи после установки - подключение к точке доступа Wi-Fi PiWebcam

После включения устройство начинает действовать как точка доступа.

Подключитесь к сети Wi-Fi, созданной устройством. Кодовая фраза сети, а также пароль пользователя-администратора (как для веб-интерфейса, так и для SSH) совпадают с идентификатором SSID (например, PiWebcam-XXXXX). Укажите в браузере https://PiWebcam.local и авторизуйтесь с именем пользователя «admin» и паролем, таким же, как имя сети.

Шаг 17: Подключите веб-камеру к вашей сети Wi-Fi

Подключите веб-камеру к вашей сети Wi-Fi
Подключите веб-камеру к вашей сети Wi-Fi
Подключите веб-камеру к вашей сети Wi-Fi
Подключите веб-камеру к вашей сети Wi-Fi

Если вы хотите подключить веб-камеру к существующей сети Wi-Fi, перейдите в «Устройство / Сеть», выберите «Клиент WiFi» и введите «Сеть Wi-Fi» и «Парольную фразу».

Подождите 1-2 минуты, снова подключитесь к своей сети и укажите в браузере https://camera_name.your_network (например,

Шаг 18: закройте корпус веб-камеры

Закройте корпус веб-камеры
Закройте корпус веб-камеры
Закройте корпус веб-камеры
Закройте корпус веб-камеры

После проверки возможности доступа к веб-камере по сети и выполнения базовой настройки, представленной на предыдущем шаге, пришло время закрыть дело.

Шаг 19: Начало работы с PiWebcam

Начало работы с PiWebcam
Начало работы с PiWebcam
Начало работы с PiWebcam
Начало работы с PiWebcam
Начало работы с PiWebcam
Начало работы с PiWebcam
Начало работы с PiWebcam
Начало работы с PiWebcam

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

Вся конфигурация устройства (камера, сеть, уведомления и системные настройки) может быть выполнена через веб-интерфейс. Файл конфигурации можно легко экспортировать и импортировать в разделе «Устройство / Система».

При обнаружении движения PiWebcam начнет запись видео (которое затем будет доступно через меню «Воспроизведение» веб-интерфейса). Как только движение прекратится, изображение, выделенное красным квадратом, также будет сохранено. Если функция обнаружения объекта включена, любое движение, не содержащее сконфигурированный объект, будет игнорироваться, чтобы уменьшить количество ложных срабатываний (например, если движение обнаружено, но никто не идентифицирован).

Когда уведомления включены, снимок будет отправлен на адрес электронной почты пользователя и / или опубликован на настроенном канале Slack. Если подключение к Интернету недоступно, уведомление будет поставлено в очередь и выпущено при следующем восстановлении подключения.

Подробный обзор всех доступных настроек представлен на странице проекта.

Шаг 20: удаленный доступ в Интернет

Удаленный доступ в Интернет
Удаленный доступ в Интернет

При желании к веб-интерфейсу можно получить доступ из Интернета без какой-либо дополнительной настройки в вашей сети или домашнем маршрутизаторе. Чтобы включить эту функцию, установите соответствующий флажок в разделе «Устройство / Сеть».

Если удаленный доступ в Интернет включен, устройство инициирует SSH-туннель через serveo.net без необходимости настраивать какой-либо NAT или UPnP на вашем маршрутизаторе. Имя устройства используется в качестве имени хоста, и доступны как веб-службы, так и службы ssh.

Шаг 21: Технические подробности

Все файлы PiWebcam находятся в загрузочном разделе SD-карты в каталоге PiWebcam. Сюда входит один файл bash, PiWebcam.sh и страницы PHP для панели администратора.

В процессе установки выполняется очень простая конфигурация системы, создается образ initramfs и скрипт PiWebcam.sh добавляется в /etc/rc.local, чтобы запускаться при запуске с параметром «configure».

При первой перезагрузке образ initramfs сожмет корневой раздел (ранее расширенный для заполнения всей SD-карты установщиком Raspbian) и сразу после этого создаст раздел данных.

И загрузочная, и корневая файловые системы монтируются только для чтения, а наложенная файловая система создается образом initram в корневой файловой системе, так что любые изменения в системе сохраняются только в памяти и теряются при следующей перезагрузке. Таким образом, устройство будет более устойчиво к неправильной конфигурации, его можно будет легко восстановить до заводских настроек по умолчанию и выдержать любое отключение электроэнергии, поскольку во время нормальной работы системный файл никогда не записывается на SD-карту. Вместо этого файловая система данных отформатирована с помощью F2FS (Flash-Friendly File System), которая учитывает характеристики устройств хранения на основе флэш-памяти.

Во время запуска PiWebcam считывает свой файл конфигурации, хранящийся в /boot/PiWebcam/PiWebcam.conf, настраивает систему, камеру, сеть и уведомления на основе найденных там настроек и развертывает веб-интерфейс из / boot / PiWebcam / web в расположение корневого веб-сайта.

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

При обнаружении движения вызывается PiWebcam.sh с параметром «notify» через событие движения on_picture_save / on_movie_end. Если обнаружение объектов включено для дальнейшего анализа изображения, изображение отправляется в Clarifai для распознавания всех объектов в изображении. Это отлично подойдет для снижения количества ложных срабатываний, например. если вам интересно узнать, не крадется ли кто-нибудь в вашем доме, а не просто внезапное изменение освещения.

После этого PiWebcam проверяет, доступно ли подключение к Интернету, и, если да, отправляет уведомление. В дополнение к традиционным уведомлениям по электронной почте, отправляемым с помощью ssmtp, с прикрепленным обнаруженным движущимся изображением, PiWebcam также может загружать это же изображение в канал Slack. Если вы не знаете Slack, проверьте его (); это отличный инструмент для совместной работы, но его также можно использовать для создания группы, посвященной вашей семье, предоставления доступа членам вашей семьи, общения с ними и разрешения утилитам PiWebcam или Home Automation (например, eGeoffrey) публиковать там обновления. Если подключение к Интернету отсутствует, уведомление не теряется, а ставится в очередь и отправляется при восстановлении подключения.

Функциональность обновления также предоставляется через веб-интерфейс.

Рекомендуемые: