Фотоаппарат из веб камеры и raspberry. Подключаем камеру к Raspberry Pi

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

Особенности камеры для Raspberry Pi

Для Raspberry Pi камера появилась в 2014 году, и она стала самым популярным модулем для данного одноплатника. Используя его, пользователи-разработчики получили возможность реализовывать самые разные проекты, в числе которых:

  • телескопы;
  • устройства для слежения за животными;
  • системы видеонаблюдения с функцией распознавания лиц и т. д.

Первая версия камеры имела 5-мегапиксельную матрицу. Производством соответствующих оптических сенсоров занималась компания Omnivision. И уже в конце 2014-го она сняла их с производства, в связи с чем пришлось подыскивать замену.

Вскоре вышла Raspberry Pi camera v2, которая была даже лучше, чем предыдущая. В ней использовался 8-мегапиксельный сенсор от Sony, который имеет название IMX 219 EXMOR RS.

Новая камера научилась снимать с частотой кадров 60 FPS в HD-разрешении, тогда как старая выдавала лишь 30 FPS. И, как и первая генерация, вторая также могла записывать FullHD-видео с 30-кадровым фреймрейтом.

Также устройство стало быстрее, а главное - научилось лучше корректировать баланс белого.

Следует отметить, что Raspberry camera не потребляет процессорное время, так как у нее есть свой видеоускоритель. Это положительно отличает ее от обычных USB-камер.

Как подключить камеру Raspberry Pi

Предположим, что камера уже извлечена из упаковки, а одноплатник находится на столе. Все, что нужно, чтобы подсоединить модуль к Raspberry - вставить шлейф в CSI-порт, который имеет соответствующую подпись - CAMERA.

Важно: цветовой ключ нужно направить на Ethernet-порт. Подключение, в свою очередь, следует производить только при обесточенной плате.

Когда загрузится рабочий стол Raspbian, понадобится:

  • открыть меню;
  • перейти к пункту Preferences;
  • запустить программу Raspberry Pi Configuration.

Откроется утилита конфигурирования, в интерфейсе которой есть четыре вкладки - нужно перейти на Interfaces. Оказавшись на ней, потребуется найти переключатель Camera (он, обычно, идет первым) и поставить его в положение "Включено" (Enabled). Далее нужно просто нажать на OK и выполнить перезагрузку.

Если устройство исправно и все вышеперечисленное выполнено правильно, к Raspberry Pi подключение камеры должно быть выполнено успешно. Но, конечно, это следует проверить. Для этого после загрузки Raspbian потребуется: открыть меню, перейти к пункту Programming и открыть Python 3.

Запустится IDLE, в котором потребуется создать файл с названием camera.py (можно по-другому, но, чтобы было понятно, лучше оставить так).

  • from picamera import PiCamera
  • # вышеуказанная инструкция подключает интересующий модуль
  • from time import sleep
  • # теперь объявим переменную для камеры
  • camera = PiCamera()
  • # затем запустим просмотр поступающего с камеры сигнала так, чтобы изображение выводилось поверх любых окошек
  • start_preview()
  • # пусть картинка выводится 15 секунд
  • sleep(15)
  • # завершаем предпросмотр
  • stop_preview()

Когда код введен, потребуется выполнить сохранение (клавиши CTRL+S), а затем - запустить исполнение кода, что делается нажатием на F5. Если на экране появится картинка, которую видит сенсор, значит Py camera Raspberry работает исправно.

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

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

Как подключить USB-камеру к Raspberry

Что касается того, как выполняется к Raspberry Pi подключение камеры по USB, то следует сказать, что это делается так же, как и во всех дистрибутивах Linux.

Принцип настройки такой:

  • подключение камеры;
  • обновление списка репозиториев и ПО (опционально);
  • установка программы Motion;
  • конфигурирование приложения.

Настройка заключается в изменении содержания двух файлов: motion/motion.conf и default/motion - оба из них находятся в директории etc.

В первом нужно изменить два параметра: DAEMON - на ON и Webcam_local - на OFF. Во, втором, в свою очередь, следует после знака "=" у параметра start_motion_daemon написать yes (по умолчанию стоит - no).

Чтобы запустить Motion Raspberry Pi, нужно запустить его сервис. Это делается командой: service motion start (естественно, под sudo). Останавливается демон той же командой, только вместо start нужно указывать stop.

Если же требуется трансляция в интернет, то нужно в роутере открыть для Raspberry порт 8081. Затем к камере можно будет обращаться так: http://адрес_роутера:8081.

Чтобы проверить работу камеры, нужно в браузере ввести следующий адрес: http://адрес_raspberry:8081. Вот таким нехитрым образом была настроена Raspberry Pi web camera usb.

Выше было рассмотрено, как камера под управлением Raspberry может быть подключена к одноплатнику. Как можно видеть, это сделать очень легко - главное, четко следовать инструкциям.

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

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

PIR - это пироэлектрический инфракрасный датчик движения.

К сожалению, использование PIR может привести к тому, что камера не будет запущена или объект съемки исчезнет полностью до срабатывания камеры. С помощью камеры в проекте мы можем решить эту проблему, избавившись от PIR и вместо этого используя систему обнаружения. Мы также сможем фиксировать события, которые происходят до обнаружения движения (благодаря возможностям программного обеспечения), что увеличивает вероятность получения идеальных фото или видео.

Главное теперь взять с собой Raspberry Pi и порыться на кухне в поисках пластмассового контейнера для продуктов.

Если вы используете модуль No-IR Pi Camera (без инфракрасного фильтра) и некоторые ИК-светодиоды, вы можете сделать камеру с возможностью ночного видения.

Чтобы сделать проект проще мы используем с нашей Raspberry Pi библиотеку MotionEyeOS . Она предназначена для видеонаблюдения, но идеально подходит для нашей камеры, поскольку поддерживает неподвижные изображения, а также делает запись видео качества HD, плюс обладает возможностью обнаружения движения.

Шаг 2. Что нужно

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

  • Рекомендуется использовать Raspberry Pi 3 Model B +, но вы можете использовать любой Pi (включая Zero).
  • MicroSD Card - используйте Class 10 для лучшей производительности и большей емкости для большего времени записи.
  • Pi камера - рекомендуется модуль камеры Pi V2, но также будут работать USB веб-камеры.
  • Используйте инфракрасный фильтр для Pi камеры с инфракрасными светодиодами для ночного видения.
  • Портативный аккумулятор с USB-выходом. Выберите большую емкость аккумулятора для более длительного времени работы.
  • Пластиковый контейнер для пищевых продуктов. Используйте один с герметичной крышкой, способной обеспечить защиту от атмосферных воздействий.

Дополнительные детали , которые можно рассмотреть:

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

    Обратите внимание, что Pi имеет только одно подключение к модулю Camera Module, любые дополнительные камеры должны быть подключены через USB.

  • Проволочная/тканевая сетка для покрытия дополнительного вентиляционного отверстия.
  • USB HDD - добавляет дополнительную емкость, но быстрее потребляет аккумулятор.

Вам потребуется небольшой набор инструментов:

  • Отвертка.
  • Горячий клей.
  • Электрическая дрель.
  • Доп. инструменты.

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

MotionEyeOS - загрузите соответствующий файл изображения для вашей модели Pi.
- используется для записи файла образа MEYEOS на карту MicroSD.
WinSCP - не требуется, но удобен для загрузки нескольких медиафайлов из Pi за один раз.

Шаг 3. Создание бокса для Raspberry камеры

Фотографии выше демонстрируют примерный процесс.

  1. Используя маркер, нарисуйте контур объектива камеры на стене контейнера (включая ИК-светодиоды, если используете).
  2. Используя сверло с конусом, сверлите из центра контуров и вырежьте отверстия, пока вы не перестанете видеть границы маркерных отметок.
  3. Используйте инструмент для обрезки и очистки отверстий, если это необходимо.
  4. Если вы устанавливаете дополнительный навес/щит для защиты от дождя, отрежьте его по размеру и закрепите на месте горячим клеем.
  5. Прикрепите кабель от камеры к модулю камеры (следуйте инструкциям, прилагаемым к вашей камере).
  6. Используйте горячий клей для надежного крепления модуля камеры - старайтесь избегать приклеивания к компонентам модуля, это упростит удаление камеры из коробки позже.
  7. Поместите все в коробку.

Совет. Просверлите дополнительное отверстие в коробке и закройте его сеткой для обеспечения вентиляции. Если вы оставите камеру на солнце в течение какого-то времени, рекомендуется сделать так, чтобы был доступ воздух в контейнер для охлаждения Raspberry и особенно аккумулятора.

Шаг 4. Настройка Raspberry Pi

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

Установка операционных систем:

  • Windows
  • MacOS
  • Linux

Примечание. Мы используем изображение MotionEyeOS, поэтому вам не нужно скачивать Raspbian.

Чтобы настроить свою Raspberry Pi, выполните следующие действия:

  1. Вы можете загрузить последнюю версию файла изображения MotionEyeOS из своего GitHub .
  2. После того как вы загрузили изображение, вам нужно его извлечь, для этого используйте winRAR или другие программы.
  3. Вставьте карту MicroSD в компьютер и запишите файл изображения. Если у вас Windows используйте .
  4. После завершения записи изображений извлеките карту MicroSD из своего компьютера, вставьте в Raspberry Pi и затем включите ее.
  5. Как только Pi включится и загрузится (как правило, занимает около 30 секунд), к нему можно получить доступ через веб-браузер, вам просто нужно узнать имя хоста или IP-адрес, а затем ввести его в адресную строку браузера.

Примечание. Вы хотите подключить кабель Ethernet RJ45 от Pi к маршрутизатору для первоначальной настройки, в этом случае будет проще сделать сначала это, а затем настроить соединение Wi-Fi.

Легкий способ найти IP-адрес Pi - это консоль управления веб-маршрутизатором. Обычно это делается путем ввода его IP-адреса в адресной строке веб-браузера (например, http://192.168.0.1).

Шаг 5. Настройка MotionEyeOS

На данный момент вы создали свой бокс, подготовили SD-карту Pi, включили все и получили доступ к веб-консоли MotionEyeOS. Пришло время настроить MotionEyeOS в соответствии с вашими требованиями. Ссылки на библиотеку на GitHub мы приводили выше.

Когда вы сначала пытаетесь войти в систему MotionEyeOS, вам будет предложено ввести учетные данные, по умолчанию используется имя пользователя: admin и пароль по умолчанию: --blank--.

Веб-интерфейс достаточно интуитивно понятен, поэтому у вас не должно быть особых проблем:

  1. Рекомендуется установить пароль для двух учетных записей по умолчанию (Admin и User).
  2. Установите правильный часовой пояс, чтобы на мультимедийных файлах была установлена ​​правильная отметка времени.
  3. Включите Wi-Fi и введите свои учетные данные Wi-Fi, вам не нужно подключаться к кабелю Ethernet.
  4. Установите желаемую частоту кадров камеры и разрешение (например, 1-10 кадров в секунду и 1920x1080).
  5. Установите хранилище файлов - оставьте по умолчанию, если используете SD-карту, измените, если используете USB-накопитель.
  6. Вы можете выбрать, нужно ли записывать неподвижные изображения (фото) или видео или оба варианта одновременно.

Поскольку у нас будет скрытая камера для съемки животных, мы будем использовать функцию «Обнаружение движения». Это позволяет событию "движение" инициировать захват и запись изображений и/или видео. Обнаружение движения достигается путем обнаружения изменений в пикселях изображения камеры с учетом различных параметров, которые можно настроить.

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

  • Frame Change Threshold = 1.5%
  • Auto Noise Detection = Off
  • Noise Level = 12%
  • Light Swith Detection = 0% (disabled)
  • Despeckle Filter = Off
  • Motion Gap = 5 seconds
  • Captured Before = 5 frames
  • Captured After = 10 frames
  • Minimum Motion Frames = 5 frames

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

После того, как вы закончите вносить изменения в настройки, нажмите кнопку «Применить», для обновления потребуется около 10-20 секунд. Обратите внимание, что некоторые изменения потребуют перезагрузки Pi.

Шаг 6. Размещаем камеру

Теперь, когда вы настроили саму Raspberry Pi камеру, пришло время ее разместить. Как вы это сделаете, во многом будет зависеть от того, что вы пытаетесь снять. В нашем случае мы покрыли камеру ветками. Наш "тайник" хорошо сливается с природой и не пугает животных. Но можно использовать, например, камуфляжную упаковку.

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

Длительность работы камеры во многом будет зависеть от емкости используемой батареи и есть ли у вас какие-либо дополнительные элементы, потребляющие электроэнергию (то есть ИК-светодиоды, USB-накопитель и т.п.).

Стоит также скачать, что MotionEyeOS дает вам возможность просматривать захваченные изображения и видео прямо из веб-интерфейса, что довольно удобно. Он также позволяет загружать отдельные мультимедийные файлы и сохранять их на свое устройство для последующего просмотра и совместного использования.

Приветствую! В данном обзоре хочу рассказать о Raspberry Pi 3 и его применении в качестве домашнего видео наблюдения в тамбуре (видеоглазок). На рынке существует множество решений от китайских производителей, однако их качество и функционал меня не устраивал. Есть решения, которые мне понравились, например или , но цены от 200 до 240 евро - это очень дорого! Поэтому принял решение сделать своё устройство. В обзоре концепт, который будет дорабатываться.
Итак, реализацию видео наблюдения решил делать на Raspberry по следующим причинам:
Во-первых, за небольшую цену получаем мини-компьютер с большими функциональными возможностями (как программными, так и аппаратными) в отличие от стационарных ip камер (видеоглазков);
Во-вторых, есть возможность подключить видеокамеру посредством интерфейса CSI (Camera Serial Interface), который минимально задействует процессор. На сегодняшний день существует два варианта таких камер (с разрешением 5 и 8Мп);
В-третьих, много источников информации в случае появления проблем и вопросов;

Все необходимое заказал в магазине Gearbest.
1.
2.
3.
4. На всякий случай набор , много было страшилок о перегреве третьей малины.

Скрин заказа



Подробно описывать Raspberry Pi 3 я не буду, это можно сделать, прочитав обзор. Приведу лишь основные характеристики:
Процессор: 64-битный 4-ядерный ARM Cortex-A53 с тактовой частотой 1,2 ГГц на однокристальном чипе Broadcom BCM2837;
оперативная память: 1ГБ LPDDR2 SDRAM;
цифровой видеовыход: HDMI;
композитный выход: 3,5 мм (4 pin);
USB порты: USB 2.0×4;
сеть: WiFi 802.11n, 10/100 Мб RJ45 Ethernet;
Bluetooth: Bluetooth 4.1, Bluetooth Low Energy;
разъем дисплея: Display Serial Interface (DSI);
разъем видеокамеры: MIPI Camera Serial Interface (CSI-2);
карта памяти: MicroSD;
порты ввода-вывода: 40;
габариты: 85x56x17 мм.

Видеокамеру решил использовать первого поколения, для тамбурного наблюдения этого более чем достаточно.
Характеристики:
-Матрица 5МП Omnivision 5647 с фиксированным фокусом;
-Максимальное разрешение фотоснимка 2592х1944 пикселей;
-Разрешение видеосъемки: 1080p (30 кадров в секунду), 720p (60 кадров в секунду), 640x480p (60/90 кадров в секунду);

Упаковка, плата, комментарии

«Raspberry pi 3» упакована в такую коробочку


Написано, что сделано в Китае


Внутри, инструкция по быстрому началу работы и безопасности


Сама плата находится в антистатическом пакете


Распберри с разных ракурсов










Местами флюс плохо отмыт


Упаковка модуля камеры




Плата камеры




Модуль камеры подключается к распберри ленточным 15ти жильным кабелем.

Долго думал, что выбрать в качестве программного обеспечения для моих задач. Есть множество программ пакетов типа GStreamer, Motion, mjpg-streamer и прочие. Но в каждой из них есть существенные недостатки. Понимаю, что знатоки Linux могут собрать все нужные пакеты воедино, написать GUI и оптимизировать работу. Однако моих знаний в Linux будет маловато. Значит, для таких, как я, нужно решение, работающее «из коробки». И такая программа была найдена!!! Называется MotionEye OS . Это даже не отдельная программа, а линуксовый дистрибутив со своим графическим интерфейсом.

Возможности MotionEye OS:
- Работа с несколькими камерами
- Синхронизация времени по интернету
- Поддержка Ethernet и Wi-Fi
- Запись лог журналов событий
- Настройка режимов работы камеры (яркость, контрастность, насыщенность, авто баланс яркости, скорость кадров в секунду, вращение и разрешение камеры). Есть возможность задать собственные нестандартные настройки.
- Сохранение скриншотов и видео по сценариям. С возможностью сохранения на sd карту, сетевую шару или облако (поддерживается Google Drive и DropBox).
- По детектору движения отправка Get/Post запросов, выполнения собственных скриптов, отправка уведомления на e-mail
- Наложение любого текста на изображение
- Одновременная трансляция видео в интернет с возможностью ограничения доступа и собственными настройками разрешения и fps камеры.
- Тонкая настройка детектора движения
- Работа по расписанию.
- Данный дистрибутив абсолютно бесплатный

Так выглядит основное окно программы


Основные окна настроек MotionEye















Пример изображения с камеры, разрешением 1280х1024

Итак, MotionEye OS может быть установлена на: Banana PI, Cubietruck, Odroid C1 (and C1+), Odroid XU4, Raspberry PI (A, B, A+, B+, Compute Module and Zero models), Raspberry PI 2, Raspberry PI 3.
Существует два способа установки.

Способ первый - установка «голого» образа.
Скачать дистрибутив с . Образ устанавливается на Micro sd карту посредством . Первый запуск дистрибутива должен выполняться с подключенным Ethernet кабелем!!! Логин admin без пароля. Админка будет доступна в браузере по ip, полученным малиной.
Данный способ быстрый, но будет установлена только MotionEye OS. А это не есть хорошо, т.к. сильно урезаем функционал Raspberry.

Способ второй - установка на Raspbian.
1. Установить Raspbian (как это сделать, думаю, объяснять не надо).
2. Проверить и установить обновления
sudo apt-get update sudo apt-get upgrade
3. Установить кодек ffmpeg
sudo wget https://github.com/ccrisan/motioneye/wiki/precompiled/ffmpeg_2.8.3.git325b593-1_armhf.deb sudo dpkg -i ffmpeg_2.8.3.git325b593-1_armhf.deb
4. Если в системе есть старые кодеки, их надо удалить и поставить новые
sudo apt-get remove libavcodec-extra-56 libavformat56 libavresample2 libavutil54 sudo apt-get install libavutil54 libavformat56 libswscale3
5. Установить motion
sudo apt-get install motion sudo wget https://github.com/ccrisan/motioneye/wiki/precompiled/motion-mrdave-raspbian -O /usr/local/bin/motion sudo chmod +x /usr/local/bin/motion
6. Установить зависимые пакеты
sudo apt-get install python-pip python-dev curl libssl-dev libcurl4-openssl-dev libjpeg-dev
7. Установить motioneye
sudo pip install motioneye
8. Сконфигурировать директории
sudo mkdir -p /etc/motioneye sudo cp /usr/local/share/motioneye/extra/motioneye.conf.sample /etc/motioneye/motioneye.conf sudo mkdir -p /var/lib/motioneye
9. Запускаем motionEye и добавляем его в автозагрузку
sudo cp /usr/local/share/motioneye/extra/motioneye.systemd-unit-local /etc/systemd/system/motioneye.service sudo systemctl daemon-reload sudo systemctl enable motioneye sudo systemctl start motioneye
10. Для обновления и получения новой версии motionEye
sudo pip install motioneye --upgrade sudo systemctl restart motioneye
11. Для поддержки работы модуля камеры нужно добавить запись bcm2835_v4l2 в /etc/modules
sudo nano /etc/module
На этом установка закончена. Доступ к админке можно получить в браузере, указав ip малины и порт 8765. Теперь у нас есть полноценный raspbian и работающий motioneye.

Далее добавим полезную функцию, такую как Push уведомление на телефон в случае обнаружения движения. Это может быть полезно, если кто-то топчется перед вашей дверью, а вас нет дома.
Первое, что надо сделать, - это перейти на сайт . Там скачать приложение на Android или iOS. Пройти регистрацию. Затем зарегистрировать приложение «Register an Application». Затем заполнить поля «Name», «Description», во вкладке «Type» выбрать «Application». При желании можно добавить иконку. После подтверждения будет добавлено приложение с уникальным API Token/Key. На главное странице указан ваш User Key.
Следующим этапом нам надо написать скрипт на Python.

#!/usr/bin/python import httplib, urllib conn = httplib.HTTPSConnection("api.pushover.net:443") conn.request("POST", "/1/messages.json", urllib.urlencode({ "token": "am25zkm2p3msdgtmohaho9fraiieb", # Insert app token here "user": "umsxy2qh9ub14rbkc59711fzca5nfx", # Insert user token here "html": "1", # 1 for HTML, 0 to disable "title": "Tambur web camera", # Title of the message "message": "Motion detect !!", # Content of the message "url": "http://192.168.1.33:8081", # Link to be included in message "url_title": "View live stream", # Text for the link "sound": "siren", # Define the sound played }), { "Content-type": "application/x-www-form-urlencoded" }) conn.getresponse()
Не пытайтесь мне ничего отправлять, ключи я изменил))
Далее создадим файл pushover.py для этого
touch ./pushover.py
Открыть и добавить приведенный выше текст скрипта. Сохраняем. Закрываем файл.
sudo nano pushover.py
Назначим файлу права
sudo chmod 777 pushover.py
Теперь наш скрипт готов к запуску. Осталось его добавить в меню «Motion Notifications» в поле «Run a command» /home/pi/pushover.py

Немного тестов.
Для тестировании использовал Ethernet подключение. На картинках виден максимальный fps в обычном режиме и при обнаружении движения.






Загрузка процессора составляет 20-30%. Температура в работе 45 - 48 градусов, процессор дополнительного охлаждения не требует.

Заключение.
Безусловно, есть небольшие задержки при отображении картинки. Оптимальным разрешением считаю 1024 х 768 и ниже. В целом результатами работы камеры я остался доволен. В планах добавить возможность записи звука с микрофона при обнаружении движения.

Обзор получился с уклоном в программную часть, но я долго собирал информацию по данному вопросу и захотел об этом рассказать. Прошу прощения за возможные ошибки, я с линуксоподобными системами пока на ВЫ)) Дополнения и замечания очень приветствую! Также готов ответить на вопросы.

P.s. Сейчас цена в данном магазине на Raspberry pi 3 составляет $35.99

Планирую купить +85 Добавить в избранное Обзор понравился +54 +117

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



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


Итак, для данного проекта потребуется Raspberry Pi Model B или новее, адаптер USB WiFi, USB-вебкамера с микрофоном, SD-карта с ОС Raspbian, доступ к Raspberry Pi через клавиатуру и мышь или удаленно.


Убедитесь, что все программные пакеты получили необходимые обновления. Для этого можно просто ввести:


sudo apt-get update


Затем нужно установить приложение Motion:


sudo apt-get install motion


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



sudo apt-get install -y libjpeg62 libjpeg62-dev libavformat53 libavformat-dev libavcodec53 libavcodec-dev libavutil51 libavutil-dev libc6-dev zlib1g-dev libmysqlclient18 libmysqlclient-dev libpq5 libpq-dev


Теперь нужно настроить это программное обеспечение. Первым делом необходимо отредактировать конфигурационный файл motion.conf. Введите следующую строку:


sudo nano /etc/motion/motion.conf


Здесь нужно изменить следующее: DAEMON = OFF (меняем на ON), Webcam_localhost = ON (Меняем на OFF). Далее нам нужно активировать Daemon-сервис. Печатаем:


sudo nano /etc/default/motion


И меняем start_motion_daemon = no (изменить на yes).


Теперь нужно запустить вебкам-сервер. Убедитесь, что вебкамера подключена к Raspberry Pi через USB. Введите следующую строку:


sudo service motion start


Если вы хотите остановить этот сервис, то воспользуйтесь такой командой:


sudo service motion stop


Для перезапуска сервиса Motion можете воспользоваться следующей командой:


sudo service motion restart


Если Motion работает, то вы можете открыть веб-страницу на вашем обычном настольном компьютере, в адресной строке которой будет IP вашего Raspberry Pi и порт 8081 (или другой, если вы его меняли). Тогда вы увидите изображение с вебкамеры, подключенной к Raspberry Pi.


Т.к. этот компьютер обладает достаточной производительностью для того чтобы принимать, хранить, обрабатывать и передавать по wifi, на другие устройства, видео с камеры (например с usb камеры). Существуют специальные камеры для Raspberry PI которые подключаются к специальному разъёму на нём и USB камеры которые подключаются к, какому либо, порту USB на Raspberry PI. Т.к. USB камеры, как правило, гораздо дешевле чем специальные (пусть и хуже) то далее рассмотрим использование именно USB камеры с Raspberry PI. Существует некоторое количество программ для захвата видео с USB камеры или же можно написать свою но для простоты для начала рассмотрим захват и передачу видео с использованием программы motion. Для установки программы motion на Raspberry PI нужно сначала подключиться к нему через программу Putty (или любую другую программу-терминал с возможностью связи по SSH) (о том как это сделать смотрите в предыдущей статье "Raspberry PI 3 настройка и управление GPIO по WIFI "). После подключения к Raspberry PI нужно произвести обновление системы командами

Sudo apt-get update

Sudo apt-get upgrade

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

Sudo apt-get install motion

При установке возможно будет задан вопрос "Do you want to continue?" после которого надо будет ввести буку "Y". После установки программы motion нужно будет внести некоторые изменения в конфигурационные файлы. Откроем файл motion.conf в редакторе nano командой

Sudo nano /etc/motion/motion.conf

После чего

Заменить на

Далее найдём другие строки для изменения, для этого нажмём сочетание клавиш CTRL+W, впишем "stream_localhost" и нажмём enter, после этого должна найтись нужная строка, если не нашлась то переменная "stream_localhost" называется как то по другому например "webcam_localhost" или что то подобное. После того как строка с данной переменной найдена нужно

Stream_localhost on

заменить на

Stream_maxrate 1

И заменить на

Stream_maxrate 100

Заменить на

После чего

Minimum_frame_time 0

Заменить на

Minimum_frame_time 1

Последнее делается для того чтобы кадры выводились раз в секунду - это не очень хорошо смотрится но зато видео не будет пропадать при резком изменении изображения. Назначение каждой переменной можно прочитать в комментариях.
Теперь сохраним изменения нажав CTRL+O и enter после чего нажмём CTRL+X и выйдем из редактора nano. Теперь давайте отредактируем другой файл, для этого введём команду

Sudo nano /etc/default/motion

И заменим строку

Start_motion_daemon=no

Start_motion_daemon=yes

После чего сохраним изменения нажав CTRL+O и enter а дальше нажмём CTRL+X и выйдем из редактора nano. Теперь запустить передачу видео (USB камера при этом должна быть подключена к одному из портов) можно командой

Sudo service motion start

Остановить командой

Sudo service motion stop

Для того чтобы увидеть видео нужно открыть браузер, и вписать в адресной строке IP адрес Raspberry PI после чего поставить двоеточие и 8081 (IP адрес Raspberry PI:8081) и нажать enter после чего в браузере должно появится видео с USB камеры. Посмотреть как это всё делается, увидеть результат и кое что ещё можно в видео:

Вот так простым способом можно получить видео с USB камеры подключённой к Raspberry PI. Если это Raspberry PI 3 со встроенным wifi и питающийся от powerbank (или какого либо другого переносного источника электроэнергии)(например такой такой или подешевле такой хотя не рекомендуется использовать дешёвый, Raspberry PI нужен нормальный источник питания для использования всех его возможностей, также очень желательно поставить радиатор на процессор и другие микосхемы которые нареваются в ходе работы Raspberry, в идеале радиатор д.б. медным и порытым специальной чёрной краской) то на основе всего этого можно сделать какую либо систему видеонаблюдения, видеокамеру или что то подобное.