Контакты

Raspberry pi 2 камера подключение. Как установить и настроить модуль камеры Raspberry Pi

Вы любите сидеть сложа руки и восхищаться красотой нашего мира, в то время как птицы счастливо чирикают и поют свои песни? Может быть вы помните какие захватывающие кадры природы снимают различные каналы о природе, когда камера находится в самой гуще событий. Мы сделаем скрытую камера на основе 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 - одноплатный компьютер, который возымел популярность еще в момент своего выхода. Это случилось благодаря неплохим техническим характеристикам, простоте работы, а главное - возможности подключения всевозможных модулей. Одним из них, в свою очередь, является 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 позволяет создавать действительно интересные и полезные вещи: от мультимедийных центров до систем домашней автоматизации. Благодаря подключению различных модулей к Raspberry Pi можно значительно расширить функциональность этого миникомпьютера.



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


Рассмотрим шесть наиболее популярных камер: ZeroCam Noir, ZeroCam FishEye, Raspberry Pi Compatible Fisheye Camera, Raspberry Pi Camera V2, Raspberry Pi Camera V2 Noir и Raspberry Pi Camera 1.3.



ZeroCam Noir – это модуль камеры для Raspberry Pi Zero или Raspberry Pi Zero W, поэтому, если вы хотите использовать его в Raspberry Pi 3 или 2, вам нужно использовать адаптерный кабель. Эта камера не имеет инфракрасного фильтра на объективе, поэтому идеально подходит для съемки при слабом освещении. Вот некоторые ее основные характеристики: 5-мегапиксельный сенсор, 2592 × 1944 пикселей, 1080p при 30 FPS (или 60 FPS при 720p, 90 FPS при 480p), фокусное расстояние 3.60 мм, 53.50 градуса по горизонтали, 41.41 градуса по вертикали, прибл. размеры платы с камерой: 60 x 11.4 x 5.1 мм.



Это версия ZeroCam типа «рыбий глаз», что означает, что она имеет широкоугольное изображение. Эта камера также сделана для Pi Zero или Pi Zero W, поэтому, чтобы использовать ее с другой Pi-панелью, вам нужен адаптерный кабель.



Это совместимая с Raspberry Pi камера типа «рыбий глаз», которую легко можно найти на различных торговых интернет-площадках типа AliExpress, TaoBao, eBay. Она характеризуется широкоугольным обзором 175º. В ее основе лежит датчик Omnivision 5647 разрешением 5 мегапикселей (2592 x 1944 пикселей).



Эта камера оснащена 8-мегапиксельным датчиком изображений Sony IMX219 с фиксированным фокусным объективом, способным отображать статические изображения 3280 × 2464 пикселей, она поддерживает видео 1080p30, 720p60 и 640 × 480p90. Камера совместима со всеми платами Raspberry Pi, но если вы хотите использовать ее с Pi Zero, вам нужен адаптерный кабель.



Эта камера обладает всеми функциями модуля Raspberry Pi Camera V2, но у нее нет инфракрасного фильтра. Это означает, что это почти идеальная камера для съемки в темное время суток.



Raspberry Pi Camera 1.3 является предшественником модуля V2. Она оснащена 5-мегапиксельным датчиком OmniVision OV5647.

Сравнение полей обора и качества изображения камер для Raspberry Pi

В этом тесте все камеры установлены на расстоянии 1 метра от тестового изображения. Результаты следующие:











Сравнение качества изображения и цветопередачи камер для Raspberry Pi при зумировании











Сравнение качества съемки ночью

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







Выводы

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

Один из самых популярных проектов на Raspberry Pi — это создание сервера видеонаблюдения с возможностью трансляции в интернет. Многие используют подобные системы в качестве охранных систем (и я в том числе), но сущестуют и другие способы применения. Если вы придумали что то интересное, можно написать об этом в комментариях. Подобный проект обойдется примерно в £60 — £70, но я использовал некоторые дополнительные компоненты, которые были у меня в наличии (и, получается, ничего не стоили). Я использовал вебкамеру Logitech Quickcam в своем проекте.

Что нам понадобится:

  • Raspberry Pi
  • SD карта объемом 8 Гб или более
  • Вебкамера
  • Доступ в интернет с помощью Ethernet или WiFi адаптера
  • USB концентратор с внешним питанием
  • Клавиатура
  • Мышь (для настройки WiFi)

Итак, начнём с установки на SD карту свежей версии Debian «Wheezy», которую можно . Для установки образа на компьютере с Windows можно использовать утилиту , а для компьютеров Mac использовать эту программу . (Подробнее об установке образов )

После завершения копирования образа, вставляем SD карту в Raspberry Pi. Подключаем сетевой кабель или беспроводной адаптер, а также клавиатуру. И, наконец, не забудьте подключить USB концентратор и подать на него питание.

После включения Raspberry Pi, установите часовой пояc, в соответствии со своим местоположением, с помощью утилиты raspi-config .

Обратите внимание, что для входа в свежеустановленной системе нужно использовать имя пользователя pi с паролем raspberry .

Если используется подключение к сети по WiFi:

Для настройки беспроводного адаптера и подключения к WiFi с помощью графического интерфеса необходимо ввести команду:

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

Теперь пришло время обновить систему. Наберите в командной строке:

Sudo apt-get update sudo apt-get upgrade

и дождитесь завершения. Теперь необходимо установить Motion — программное обеспечение, которое будет заниматься трансляцией видео с помощью встроенного вебсервера. Для этого, введите:

Sudo apt-get install motion

и подождите. По завершении установки, подключите вебкамеру к порту USB концентратора с внешним питанием.

Теперь нужно внести изменения в конфигурационный файл программы Motion. Для этого выполните команду:

Sudo nano /etc/motion/motion.conf

Откроется редактор с конфигурационным файлом, в который можно внести исправления. Наиболее важными являются эти параметры:

Daemon = OFF (исправить на ON – этот параметр где-то в начале файла) webcam_localhost = ON (исправить на OFF – этот параметр где-то в конце файла)

Нажмите Ctrl + X для сохранения, а затем ‘y’ для подтверждения операции и, наконец, Enter для указания имени файла.

Теперь можно запускать сервер Motion:

Sudo service motion start

Подождите примерно 60 секунд, затем введите в браузер IP адрес Raspberry Pi. Оптимальным выбором браузера будет Firefox последней версии.

Адрес выглядит так: 192.168.X.X:8081

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

Порт 8081 – видео Порт 8080 – веб интерфейс конфигурации

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

Поздравляю! Вы только что настроили свой собственный сервер видеонаблюдения на своём Raspberry Pi! Желаю успехов и не стесняйтесь распространять текст этой статьи!

Примечание: если видеосервер показывает серый прямоугольник вместо изображения — введите команду ls /dev/video в терминале, для того чтобы определить название видеоустройства. По умолчанию в файле /etc/motion/motion.conf указано video0 . Если ваша вебкамера имеет другое название — исправьте конфигурационный файл, затем перезапустите Motion.

Внимание! Всё, что описано в данной статье вы повторяете на свой страх и риск! Я не несу ответственности за любые последствия. Статья представляет собой только руководство.

Доброе время суток!

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

  • Одноплатный компьютер Raspberry Pi Model B
  • Web-камера LOGITECH HD Webcam C270
Прочитав я решил немного развить идею автора.
Знакомство
Итак, для начала познакомимся c главным «компонентом»:
Внешний вид Raspberry Pi:

Характеристики:

  • Broadcom BCM2835 700MHz ARM1176JZFS processor with FPU and Videocore 4 GPU
  • GPU provides Open GL ES 2.0, hardware-accelerated OpenVG, and 1080p30 H.264 high-profile decode
  • GPU is capable of 1Gpixel/s, 1.5Gtexel/s or 24GFLOPs with texture filtering and DMA infrastructure
  • 512MB RAM
  • Boots from SD card, running a version of the Linux operating system
  • 10/100 BaseT Ethernet socket
  • HDMI video out socket
  • 2 x USB 2.0 sockets
  • RCA composite video out socket
  • SD card socket
  • Powered from microUSB socket
  • 3.5mm audio out jack
  • Raspberry Pi HD video camera connector
  • Size: 85.6 x 53.98 x 17mm"
pi@hall-pi ~ $ cat /proc/cpuinfo processor: 0 model name: ARMv6-compatible processor rev 7 (v6l) BogoMIPS: 2.00 Features: swp half thumb fastmult vfp edsp java tls CPU implementer: 0x41 CPU architecture: 7 CPU variant: 0x0 CPU part: 0xb76 CPU revision: 7 Hardware: BCM2708 Revision: 000e Serial: 000000005a82c372

Список официально поддерживаемых дистрибутивов можно найти . Я же остановил свой выбор на Raspbian без графической оболочки.

Процесс установки достаточно прост и не нуждается в подробном описании, поэтому перечислю основные факты, на которые стоит обратить внимание:

  1. Настройка часового пояса
  2. Настройка имени компьютера
  3. Включение доступа по SSH
  4. Обновление системы
После выполнения всех необходимых настроек можно приступать.
Подготовка
Для начала выполним установку всех необходимых пакетов:
sudo apt-get install imagemagick libav-tools libjpeg8-dev subversion
После чего скачаем и соберем mjpg-streamer:
sudo svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer/ mjpg-streamer cd mjpg-streamer make
Т.к. у нас все данные будут храниться в облаке, настроим работу с удаленной файловой системой по WebDAV:
sudo apt-get install davfs2 sudo mkdir /mnt/dav sudo mount -t davfs https://webdav.yandex.ru /mnt/dav -o uid=pi,gid=pi
Для того, чтобы не вводить каждый раз имя пользователя и пароль, нужно добавить их в файл
/etc/davfs2/secrets
/mnt/dav user password
Рабочий процесс
Добавим в /etc/rc.local команды для монтирования WebDAV и запуска скрипта для трансляции в сеть:
mount -t davfs https://webdav.yandex.ru /mnt/dav -o uid=pi,gid=pi cd /home/pi/mjpg-streamer && ./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"
Теперь, зайдя по адресу http://:8080/ мы получим доступ к камере. Осталось только сделать проброс порта на роутере и можно получить доступ к камере за пределами локальной сети.
Создание timelapse видео
Первым делом нам надо получить изображение с камеры. Т.к. она уже занята (изображение транслируется веб-сервером), то воспользуемся возможностью получения текущей картинки с веб-сервера:
curl http://localhost:8080/?action=snapshot > out.jpg
В случае, если мы хотим нарисовать дату снимка на изображение, то мы можем воспользоваться командой convert
timestamp=`stat -c %y out.jpg` convert out.jpg -fill black -fill white -pointsize 15 -draw "text 5,15 "${timestamp:0:19}"" out_.jpg
Полная версия скрипта:
#!/bin/bash filename=$(perl -e "print time") foldername=$(date --rfc-3339=date) curl http://localhost:8080/?action=snapshot > $filename timestamp=`stat -c %y $filename` mkdir /mnt/dav/out/$foldername convert $filename -fill black -fill white -pointsize 15 -draw "text 5,15 "${timestamp:0:19}"" /mnt/dav/out/$foldername/$filename.jpg rm $filename
Сборка видео осуществляется командой avconv:
avconv -r 10 -i %06d.jpg -r 10 -vcodec mjpeg -qscale 1 out.avi
Полная версия скрипта сборки видео:
#!/bin/bash filename=$(date --rfc-3339=date) i=0 for f in `ls -tr /mnt/dav/out/$filename/*.jpg 2>/dev/null` do newf=`printf %06d $i`.jpg echo $f "-->" $newf mv $f $newf i=$((i+1)) done rmdir -R /mnt/dav/out/$filename/ avconv -r 10 -i %06d.jpg -r 10 -vcodec mjpeg -qscale 1 /mnt/dav/$filename.avi rm *.jpg
Теперь осталось только прописать выполнение скриптов в планировщике Cron:
* * * * * pi bash /home/pi/cam.sh 59 23 * * * pi bash /home/pi/build.sh
Пример видео
Заключение
Данный подход помогает избавиться от необходимости траты большого количества времени на просмотр видео, а так-же удешевляет конечный продукт. Благодаря присутствию полноценной ОС, появляется возможность расширять функционал в нужном направлении.
Понравилась статья? Поделитесь ей