Raspberry pi връзка с камера. Създаване на безжична шпионска камера с Raspberry Pi. Активирайте поддръжката на камера в Raspbian

Добър ден!

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

  • Едноплатков компютър Raspberry Pi Model B
  • Уеб камера LOGITECH HD Webcam C270
След като прочетох, реших да развия малко идеята на автора.
Запознанство
Така че, първо, нека се запознаем с основния „компонент“:
Външен вид на Raspberry Pi:

Спецификации:

  • Процесор Broadcom BCM2835 700MHz ARM1176JZFS с FPU и Videocore 4 GPU
  • GPU осигурява Open GL ES 2.0, хардуерно ускорен OpenVG и 1080p30 H.264 декодиране с висок профил
  • GPU е способен на 1Gpixel/s, 1.5Gtexel/s или 24GFLOPS с филтриране на текстури и DMA инфраструктура
  • 512MB RAM
  • Зарежда се от SD карта, работи с версия на операционната система Linux
  • 10/100 BaseT Ethernet гнездо
  • HDMI видео изход
  • 2 x USB 2.0 гнезда
  • RCA композитен видео изход
  • Гнездо за SD карта
  • Захранва се от microUSB гнездо
  • 3,5 мм жак за аудио изход
  • Raspberry Pi HD конектор за видео камера
  • Размер: 85,6 x 53,98 x 17 mm"
pi@hall-pi ~ $ cat /proc/cpuinfo процесор: 0 име на модел: ARMv6-съвместим процесор rev 7 (v6l) BogoMIPS: 2.00 Характеристики: swp half thumb fastmult vfp edsp java tls CPU implementer: 0x41 CPU архитектура: 7 CPU вариант : 0x0 Част на процесора: 0xb76 Ревизия на процесора: 7 Хардуер: BCM2708 Ревизия: 000e Сериен: 000000005a82c372

Можете да намерите списък с официално поддържани дистрибуции. Избрах Raspbian без графична обвивка.

Процесът на инсталиране е доста прост и не се нуждае от подробно описание, така че ще изброя основните факти, на които си струва да обърнете внимание:

  1. Настройка на часовата зона
  2. Задаване на името на компютъра
  3. Разрешаване на SSH достъп
  4. Актуализация на системата
След като завършите всички необходими настройки, можете да продължите.
Подготовка
Първо, нека инсталираме всички необходими пакети:
sudo apt-get инсталирате 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 инсталирате 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 потребителска парола
Работен процес
Нека добавим команди към /etc/rc.local за монтиране на WebDAV и стартиране на скрипта за излъчване към мрежата:
монтиране -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 име на файл=$(perl -e "време за печат") име на папка=$(дата --rfc-3339=дата) curl http://localhost:8080/?action=snapshot > $filename timestamp=` stat -c %y $filename` mkdir /mnt/dav/out/$foldername конвертиране на $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 за f в `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
Примерно видео
Заключение
Този подход помага да се елиминира необходимостта от прекарване на много време в гледане на видеоклипове и също така намалява цената на крайния продукт. Благодарение на наличието на пълноценна операционна система става възможно разширяването на функционалността в правилната посока.

Публикувана на 12/03/2014

Камера матрица 5 MP, камерата има обектив с фиксиран фокус и ви позволява да правите снимки с разделителна способност 2592×1944. видео: 1080p, FPS: 30 fps, 720p при 60 fps и 640x480 до 90 fps. Камерата се поддържа изцяло от операционната система Raspbian.

Свързване на камерата

Бъдете внимателни!Статичното електричество може да повреди камерата! Модулът на камерата е свързан към Raspberry Pi с помощта на гъвкав кабел в конектора, който се намира между Ethernetи HDMI.

Първо издърпайте ключалката на конектора и поставете гъвкавия кабел с контактите към HDMI конектора. Влакът трябва да влезе без усилие. След това затегнете кабела със скобата, като внимателно го поставите в конектора.

Камерата тежи около 3 грама и е с миниатюрни размери. За да закрепите правилно камерата, препоръчвам да направите произволен държач. Държачът, който виждате на снимката, е 3D принтиран.

Sudo apt-get актуализация sudo apt-get ъпгрейд

След това стартираме raspi-configи активирайте поддръжка на камера:

Sudo raspi-config

Ние се променяме Деактивиранена Активирайте

Рестартирайте Raspberry Pi:

Правене на снимки от Raspberry Pi с помощта на модула на камерата

Има два стандартни инструмента за работа с камерата рязъки raspistill. Камерата ви позволява да работите с графични ефекти и общи параметри на камерата. Можете да промените баланса на бялото, фокуса, типа на снимката, експозицията, ISO и др.

Снимка (raspistill)

Помощната програма заснема изображения в JPEG формат. Използване на командни опции raspistill:

Употреба: raspistill Команди за параметри на изображението -?, --help: Тази помощна информация -w, --width: Задаване на ширина на изображението -h, --height: Задайте височина на изображението -q, --quality: Задаване на jpeg качество<0 to 100>-r, --raw: Добавяне на необработени bayer данни към jpeg метаданни -o, --output: Име на изходния файл (за да пишете в stdout, използвайте "-o -"). Ако не е посочено, не се записва файл -l, --latest: Свържете най-новото пълно изображение към името на файла -v, --verbose: Извежда подробна информация по време на изпълнение -t, --timeout: Време (в ms) преди заснемане на снимка и изключване (ако не е посочено, зададено на 5s) -th, --thumb: Задаване на параметри на миниатюра ( x:y:качество) или нищо -d, --demo: Стартиране на демонстрационен режим (преминаване през набор от опции на камерата, без заснемане) -e, --encoding: Кодиране за използване за изходен файл (jpg, bmp, gif, png) -x, --exif: EXIF ​​​​таг за прилагане към заснемания (формат като "ключ=стойност") или нищо -tl, --timelapse: Режим Timelapse. Прави снимка всеки ms -fp, --fullpreview: Стартирайте визуализацията, като използвате разделителната способност за заснемане на неподвижно изображение (може да намали fps за визуализация) -k, --keypress: Изчакайте между заснеманията за ENTER, X и след това ENTER, за да излезете -s, --signal: Изчакайте между заснема за SIGUSR1 от друг процес -g, --gl: Начертайте предварителен преглед на текстура вместо да използвате компонент за визуализиране на видео настройки на камерата и пишете в stdout -cs, --camselect: Изберете камера . По подразбиране 0 -bm, --burst: Активиране на "режим на заснемане на пакет" Команди за параметри за визуализация -p, --preview: Настройки на прозореца за визуализация<"x,y,w,h">

Следващата команда записва снимката, направена от камерата, във файла photo.jpg. Файлът ще бъде записан в текущата директория:

Raspistill -o снимка.jpg

Снимката ще бъде 2592x1944 (5 MP). За да промените настройките на снимката, използвайте опциите, описани по-горе.

Направете снимка 640×480:

Raspistill -o image.jpg -w 640 -h 480

Видео (распивидно)

Помощната програма заснема видео във формат H264. Използване на командни опции рязък:

Употреба: raspivid Команди за параметри на изображението -?, --help: Тази помощна информация -w, --width: Задаване на ширина на изображението . По подразбиране 1920 -h, --height: Задайте височина на изображението . По подразбиране 1080 -b, --bitrate: Задайте битрейт. Използвайте битове в секунда (напр. 10MBits/s ще бъде -b 10000000) -o, --output: Име на изходния файл (за да пишете в stdout, използвайте "-o -") -v, --verbose: Извежда подробна информация по време на изпълнение -t, --timeout: Време (в ms) за улавяне. Ако не е посочено, задайте на 5s. Нула за деактивиране -d, --demo: Стартиране на демонстрационен режим (преминаване през набор от опции на камерата, без заснемане) -fps, --framerate: Посочване на кадрите в секунда за запис -e, --penc: Показване на изображение за визуализация * кодиране след* (показва артефакти на компресия) -g, --intra: Посочете периода на вътрешно опресняване (ключова честота на кадрите/размер GoP). Нула за създаване на първоначален I-кадър и след това само P-кадри. -pf, --profile: Посочете H264 профил, който да се използва за кодиране -td, --timed: Цикъл между заснемане и пауза. -cycle on,off където on е времето за запис и off е времето за пауза в ms -s, --signal: Цикъл между улавяне и пауза на Signal -k, --keypress: Цикъл между улавяне и пауза при ENTER -i, -- първоначално: Първоначално състояние. Използвайте "запис" или "пауза". По подразбиране "запис" -qp, --qp: Параметър за количествено определяне. Използвайте приблизително 10-40. По подразбиране 0 (изключено) -ih, --inline: Вмъкване на вградени заглавки (SPS, PPS) за поточно предаване -sg, --segment: Сегментиране на изходния файл в множество файлове на определен интервал -wr, --wrap: В режим на сегментиране, обгръща всяко номерирано име на файл обратно до 1, когато достигне номер -sn, --start: В режим на сегментиране, започва с определен номер на сегмент -sp, --split: В режим на изчакване, създава нов изходен файл за всяко стартово събитие -c, --circular: Изпълнение на кодирани данни през кръгов буфер, докато се задейства, след което запишете -x, --vectors: Име на изходния файл за вградени вектори на движение -cs, --camselect: Изберете камера . По подразбиране 0 -set, --settings: Извлича настройките на камерата и записва в stdout H264 Опции на профила: baseline,main,high Команди за параметри за визуализация -p, --preview: Настройки на прозореца за визуализация<"x,y,w,h">-f, --fullscreen: Режим на визуализация на цял екран -op, --opacity: Непрозрачност на прозореца за визуализация (0-255) -n, --nopreview: Не показвайте прозорец за визуализация Команди за параметри на изображението -sh, --sharpness: Задайте изображение рязкост (-100 до 100) -co, --contrast: Задайте контраст на изображението (-100 до 100) -br, --brightness: Задайте яркост на изображението (0 до 100) -sa, --saturation: Задайте наситеност на изображението (- 100 до 100) -ISO, --ISO: Задаване на ISO за улавяне -vs, --vstab: Включване на видео стабилизация -ev, --ev: Задаване на EV компенсация -ex, --exposure: Задаване на режим на експонация (вижте Бележки) - awb, --awb: Задаване на режим AWB (вижте Бележки) -ifx, --imxfx: Задаване на ефект на изображението (вижте Бележки) -cfx, --colfx: Задаване на цветен ефект (U:V) -mm, --metering: Задаване режим на измерване (вижте Бележки) -rot, --rotation: Задаване на завъртане на изображението (0-359) -hf, --hflip: Задаване на хоризонтално обръщане -vf, --vflip: Задаване на вертикално обръщане -roi, --roi: Задаване на регион от интерес (x,y,w,d като нормализирани координати) -ss, --shutter: Задаване на скоростта на затвора в микросекунди -awbg, --awbgains: Задаване на AWB печалби - AWB режимът трябва да е изключен -drc, --drc: Задаване Ниво на ДРК

Следната команда записва 20 секунди видео във формат h264:

Raspivid -t 20000 -o video.h264

За по-подробно проучване на тези команди ви препоръчвам да се запознаете с . Той съдържа много примери, демонстриращи всички възможности на модула на камерата.

Поточно видео

За да получавате поточно видео, инсталирайте на Raspberry Pi mjpg-стример. Първо, нека инсталираме необходимото mjpg-стримерпакети:

Apt-get инсталирате cmake apt-get инсталирате subversion apt-get инсталирате libv4l-dev apt-get инсталирате libjpeg8-dev apt-get инсталирате imagemagick

Сега да инсталираме mjpg-стример:

Wget github.com/jacksonliam/mjpg-streamer/archive/master.zip разархивирайте ./master -d ./ms cd ./ms/mjpg-streamer-master/mjpg-streamer-experimental make clean all

За конфигуриране mjpg-стримеркоригирайте файла начало.ш:

Нано старт.ш

Коментираме всички редове или ги изтриваме и добавяме следните два реда:

Cd /root/ms/mjpg-streamer-master/mjpg-streamer-experimental ./mjpg_streamer -o "./output_http.so -w ./www" -i "./input_raspicam.so -x 640 -y 480 -fps 10 -ex auto -awb auto -vs -ISO 100"

където:
-x 640– хоризонтален размер на видеото
-y 480– вертикален размер на видеото
-fps 10– кадрова честота
-ex auto– автоматична експозиция
-awb авто– автоматичен баланс на бялото
- срещу– вертикална синхронизация
-ISO 100– ISO настройки

Да стартираме mjpg-стример:

./start.sh

Сега от друг компютър в тази мрежа можем да гледаме поточно видео с помощта на обикновен браузър, използвайки връзката:

Къде 192.168.1.100 – IP адрес на моя Raspberry Pi. Трябва да го промените на адреса на вашия Raspberry Pi.

Видеоклиповете могат да се гледат и от мобилни устройства – таблети, смартфони и др. Да гледате видео на смартфон с операционна система AndroidИзползвам програмата IP Cam Viewer Lite.

Да спреш mjpg-стримерв конзолата щракнете Ctrl+c

Времево видео

Сега нека се опитаме да направим Времево видео. Тази техника се използва за заснемане на много бавни процеси. Поредица от снимки се прави на определен интервал, обикновено от 1 секунда или повече (това зависи от скоростта на процеса, който снимате). След това се създава видеоклип от набор от снимки с помощта на всяка налична програма, която има такива функции. Много камери могат да правят снимки за Time Lapse Video, но Raspberry Pi има някои предимства. Освен да прави снимки, Raspberry Pi може да прави и други неща, като например да включва светлините, докато правите снимки, и след това да ги изключва. Това е доста подходящо, когато заснемането се извършва в продължение на няколко седмици с доста големи интервали от време. Не искате светлината да свети през цялото време, особено ако снимките ви изискват силно осветление. Raspberry Pi се захранва от електрическата мрежа, което е необходимо за дългосрочно записване на доста бавни процеси, като растеж на кристали или растителен живот, чийто процес на запис може да продължи няколко дни, седмици или дори месеци. Направените снимки могат да се копират на друг компютър и да се обработват по време на процеса на снимане. Когато снимате, когато камерата трябва да промени позицията си, Raspberry Pi може да помогне за автоматизирането на този процес.

И така, най-лесният начин да създадете поредица от снимки за Времево видео- използвайте ключа -tlв отбора raspistill. Например:

Raspistill -t 600000 -tl 10000 -o image_num_%d_today.jpg

Тази команда ще създава снимка на всеки 10 (-tl 10000) секунди за 10 минути (10 минути = 600000ms). Файловете ще бъдат извикани image_num_1_today.jpg, image_num_2_today.jpg, image_num_3_today.jpgи така нататък. Този метод е доста подходящ за заснемане на кратко видео. Но при заснемане на дълги процеси може да възникне малък проблем. Ако захранването на Raspberry Pi бъде прекъснато по някаква причина, ще трябва да изпълните командата отново.

Това не ме устройваше. Затова написах скрипт и го посочих да се изпълнява crontab. Съдържание на скрипта:

#!/bin/bash echo 11 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio11/direction echo 1 > /sys/class/gpio/gpio11/value DATE=$(date +" %Y-%m-%d_%H%M") raspistill -o /root/camera/$DATE.jpg echo 0 > /sys/class/gpio/gpio11/value echo 11 > /sys/class/gpio/unexport

Ред в crontab:

*/10 * * * * root /root/camera/camera.bash

Сега скриптът се изпълнява на всеки 10 минути. Дори ако Raspberry Pi се рестартира, скриптът ще продължи да работи. Скриптът включва светлината (има верига, свързана към GPIO11, която включва електрическата крушка), прави снимка и след това изключва светлината.

Можете да съберете видеоклип от получените снимки с помощта на помощната програма avconv. Инсталиран avconvсъс следната команда:

Apt-get инсталирайте libav-tools

Снимките трябва да имат имена на файлове в уникален формат. Пример за скрипт, който преименува jpgфайлове в текущата директория, като се вземе предвид датата на тяхната модификация, започва конвертирането и записва видеото във файла timelapse.avi:

#!/bin/bash i=0 за f в `ls -tr *.jpg 2>/dev/null` do newf=`printf %06d $i`.jpg echo $f "-->" $newf mv $ f $newf i=$((i+1)) done avconv -r 10 -i %06d.jpg -r 10 -vcodec mjpeg -qscale 1 timelapse.avi

Но ако обработката на материала изисква допълнителни действия, като предварителна пакетна обработка на снимки, има смисъл да копирате фотоматериала на по-мощен компютър и да не зареждате Raspberry Pi с него.

Ето какво получих:

Това първо тестово видео е направено за избор на параметри за снимане.

Надписи на снимката

Ако трябва да направите бележка върху снимка, най-често дата и час, можете да използвате командата преобразувам.

Нека променим скрипта, така че да добавя датата и часа в горния ляв ъгъл на направената снимка:

#!/bin/bash echo 11 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio11/direction echo 1 > /sys/class/gpio/gpio11/value DATE=$(date +" %Y-%m-%d_%H%M") времево клеймо=$(дата +"%Y.%m.%d %H:%M:%S") raspistill -o /root/camera/tmp.jpg конвертиране /root/camera/tmp.jpg -fill black -draw "правоъгълник 0.0 420.70" -fill white -pointsize 45 -draw "text 10.50 "$(timeshtamp)"" /root/camera/$DATE .jpg rm /root/ camera/tmp.jpg echo 0 > /sys/class/gpio/gpio11/value echo 11 > /sys/class/gpio/unexport

Сега всички снимки ще имат датата и часа, когато са направени. Първо на снимката е нарисуван черен правоъгълник ( -запълване с черно -начертаване на "правоъгълник 0.0 420.70"), а след това часът е изписан в бяло ( -fill white -pointsize 45 -draw “text 10.50 ‘$(timestamp)””).

Успех

Обичате ли да се отпуснете и да се възхищавате на красотата на нашия свят, докато птичките весело чуруликат и пеят песните си? Може би си спомняте какви спиращи дъха природни кадри се заснемат от различни природни канали, когато камерата е в центъра на събитията. Ще направим скрита камера на базата на Raspberry Pi, благодарение на която можете да станете истински натуралист и да снимате животни, които не подозират нищо.

Обикновено тези скрити камери имат възможности за откриване на движение, които задействат процеса на запис, когато нещо се появи в полезрението. Тези камери обикновено използват PIR за задействане на снимане или видеозапис.

PIR е пироелектричен инфрачервен сензор за движение.

За съжаление използването на PIR може да доведе до това, че камерата не се задейства или обектът изчезва напълно, преди камерата да се задейства. С камерата в проекта можем да разрешим този проблем, като се отървем от PIR и вместо това използваме система за откриване. Също така ще можем да улавяме събития, които се случват преди да бъде засечено движение (благодарение на възможностите на софтуера), което увеличава вероятността да получим перфектната снимка или видео.

Най-важното сега е да вземете своя Raspberry Pi със себе си и да поровите из кухнята за пластмасов контейнер за храна.

Ако използвате модула No-IR Pi Camera (без IR филтър) и някои IR светодиоди, можете да направите камера с възможност за нощно виждане.

За да улесним проекта, използваме библиотеката MotionEyeOS с нашия Raspberry Pi. Той е предназначен за видеонаблюдение, но е идеален за нашата камера, защото поддържа неподвижни изображения и също така записва видео с HD качество, плюс това има възможности за откриване на движение.

Стъпка 2. Какво ви трябва

За да създадете тази проста камера, ще ви трябват следните компоненти:

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

Допълнителни подробностикоето може да се счита:

  • Допълнителна камера(и) - за многопосочен запис.

    Моля, имайте предвид, че Pi има само една връзка към модула на камерата, всички допълнителни камери трябва да бъдат свързани чрез USB.

  • Телена/платна мрежа за покриване на допълнителния вентилационен отвор.
  • USB HDD - добавя допълнителен капацитет, но изразходва батерията по-бързо.

Ще ви е необходим малък набор от инструменти:

  • Отвертка.
  • Горещо лепило.
  • Електрическа бормашина.
  • Добавете. инструменти.

Софтуер:

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

Стъпка 3. Създайте кутия за камерата Raspberry

Снимките по-горе показват пример за процеса.

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

съвет. Пробийте допълнителен отвор в кутията и я покрийте с мрежа, за да осигурите вентилация. Ако оставите фотоапарата на слънце за някакъв период от време, препоръчително е да оставите въздуха да влезе в контейнера, за да охлади Raspberry и особено батерията.

Стъпка 4: Настройване на Raspberry Pi

Ако вече сте запознати с Raspberry Pi, тази стъпка вероятно няма да ви заинтересува и можете да я пропуснете.

Инсталиране на операционни системи:

  • Windows
  • MacOS
  • Linux

Забележка. Използваме изображението на MotionEyeOS, така че не е необходимо да изтегляте Raspbian.

За да настроите своя Raspberry Pi, изпълнете следните стъпки:

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

Забележка. Ще искате да свържете RJ45 Ethernet кабела от Pi към рутера за първоначална настройка, в който случай може да е по-лесно първо да направите това и след това да настроите Wi-Fi връзката.

Лесен начин да намерите IP адреса на Pi е чрез конзолата за управление на вашия уеб рутер. Това обикновено става чрез въвеждане на неговия IP адрес в адресната лента на вашия уеб браузър (например http://192.168.0.1).

Стъпка 5. Настройте MotionEyeOS

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

Когато за първи път се опитате да влезете в MotionEyeOS, ще бъдете подканени за идентификационни данни, потребителското име по подразбиране е: admin, а паролата по подразбиране: --blank--.

Уеб интерфейсът е доста интуитивен, така че не би трябвало да имате много проблеми:

  1. Препоръчително е да зададете парола за два акаунта по подразбиране (администратор и потребител).
  2. Задайте правилната часова зона, така че вашите мултимедийни файлове да имат правилно времево клеймо.
  3. Включете Wi-Fi и въведете вашите идентификационни данни за Wi-Fi, не е необходимо да се свързвате с Ethernet кабел.
  4. Задайте желаната кадрова честота и разделителна способност на камерата (напр. 1-10 кадъра в секунда и 1920x1080).
  5. Задайте съхранение на файлове - оставете по подразбиране, ако използвате SD карта, променете, ако използвате USB устройство.
  6. Можете да изберете дали да записвате неподвижни изображения (снимки) или видеоклипове, или и двете.

Тъй като ще имаме скрита камера, за да правим снимки на животни, ще използваме функцията Motion Detection. Това позволява на събитие "движение" да задейства заснемането и записването на изображения и/или видео. Откриването на движение се постига чрез откриване на промени в пикселите на изображението на камерата, като се вземат предвид различни параметри, които могат да бъдат конфигурирани.

Използваме следните настройки за откриване на движение по-долу, но ви предлагаме да си поиграете с опциите, докато намерите това, което работи за вас, тъй като всеки сценарий е малко по-различен:

  • Праг на промяна на рамката = 1,5%
  • Автоматично откриване на шум = Изкл
  • Ниво на шум = 12%
  • Light Swith Detection = 0% (забранено)
  • Филтър за отстраняване на петна = Изкл
  • Motion Gap = 5 секунди
  • Заснето преди = 5 кадъра
  • Заснето след = 10 кадъра
  • Минимални кадри на движение = 5 кадъра

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

След като приключите с промените в настройките, щракнете върху бутона Приложи, актуализирането ще отнеме около 10-20 секунди. Моля, имайте предвид, че някои промени ще изискват рестартиране на Pi.

Стъпка 6. Поставете камерата

Сега, след като сте настроили самата камера на Raspberry Pi, е време да я поставите. Как ще направите това до голяма степен ще зависи от това, което се опитвате да снимате. В нашия случай покрихме камерата с клони. Нашият „кеш“ се съчетава добре с природата и не плаши животните. Но можете да използвате например камуфлажна опаковка.

Не забравяйте да покриете възможно най-голяма част от кутията, без да закривате обектива. Ако използвате инфрачервени светодиоди за нощно виждане, ще трябва също да се уверите, че не ги покривате.

Колко дълго ще издържи вашата камера ще зависи до голяма степен от капацитета на батерията, която използвате, и дали имате допълнителни елементи, консумиращи енергия (напр. IR светодиоди, 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 GHz на Broadcom BCM2837 едночипов чип;
RAM: 1GB LPDDR2 SDRAM;
цифров видео изход: HDMI;
композитен изход: 3,5 мм (4 пина);
USB портове: USB 2.0×4;
мрежа: WiFi 802.11n, 10/100 MB RJ45 Ethernet;
Bluetooth: Bluetooth 4.1, Bluetooth Low Energy;
Съединител за дисплей: сериен интерфейс на дисплея (DSI);
конектор за видеокамера: MIPI Camera Serial Interface (CSI-2);
Карта с памет: MicroSD;
I/O портове: 40;
размери: 85х56х17 мм.

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

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

В такава кутия е опакован "Raspberry pi 3".


Пише произведено в Китай


Вътре, инструкции за бърз старт и безопасност


Самата платка е в антистатична торбичка


Малина от различни ъгли










Флюсът е слабо измит на места


Опаковка на модула на камерата




Платка за камера




Модулът на камерата е свързан към Raspberry с помощта на 15-жилен лентов кабел.

Дълго мислих какво да избера като софтуер за моите задачи. Има много пакетни програми като GStreamer, Motion, mjpg-streamer и други. Но всеки от тях има значителни недостатъци. Разбирам, че експертите по Linux могат да сглобят всички необходими пакети, да напишат GUI и да оптимизират работата. Познанията ми по Linux обаче няма да са достатъчни. Това означава, че за хора като мен се нуждаем от решение, което работи веднага. И такава програма се намери!!! Наречен MotionEye OS. Това дори не е отделна програма, а Linux дистрибуция със собствен графичен интерфейс.

Функции на MotionEye OS:
- Работа с множество камери
- Синхронизиране на времето през интернет
- Поддръжка на Ethernet и Wi-Fi
- Записвайте дневници на събития
- Задаване на режими на работа на камерата (яркост, контраст, наситеност, автоматичен баланс на яркостта, честота на кадрите в секунда, въртене на камерата и резолюция). Възможно е да зададете свои собствени нестандартни настройки.
- Запазване на екранни снимки и видеоклипове според сценарии. С възможност за запазване на SD карта, споделяне на мрежа или облак (поддържат се Google Drive и DropBox).
- Използване на детектор за движение, изпращане на заявки за получаване/публикуване, изпълнение на ваши собствени скриптове, изпращане на известия по имейл
- наслагване на всеки текст върху изображение
- Едновременно излъчване на видео към интернет с възможност за ограничаване на достъпа и собствени настройки за резолюция и fps на камерата.
- Фина настройка на детектора за движение
- Работа по график.
- Това разпространение е абсолютно безплатно

Ето как изглежда основният прозорец на програмата


Основни прозорци за настройки на MotionEye















Пример за изображение от камера, резолюция 1280x1024

И така, MotionEye OS може да се инсталира на: Banana PI, Cubietruck, Odroid C1 (и C1+), Odroid XU4, Raspberry PI (модели A, B, A+, B+, Compute Module и Zero), Raspberry PI 2, Raspberry PI 3.
Има два метода на инсталиране.

Първият метод е да инсталирате „голо“ изображение.
Изтеглете дистрибуцията от . Изображението се инсталира на Micro SD картата с помощта на . Първото стартиране на дистрибуцията трябва да стане с включен Ethernet кабел!!! Влезте като администратор без парола. Административният панел ще бъде достъпен в браузъра чрез IP, получен от малината.
Този метод е бърз, но ще бъде инсталирана само MotionEye OS. А това не е добре, защото... Ние силно намаляваме функционалността на Raspberry.

Вторият метод е инсталиране на Raspbian.
1. Инсталирайте Raspbian (мисля, че няма нужда да обяснявам как се прави това).
2. Проверете и инсталирайте актуализации
sudo apt-get актуализация sudo apt-get ъпгрейд
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 премахнете libavcodec-extra-56 libavformat56 libavresample2 libavutil54 sudo apt-get инсталирайте libavutil54 libavformat56 libswscale3
5. Инсталирайте движение
sudo apt-get инсталирайте движение sudo wget https://github.com/ccrisan/motioneye/wiki/precompiled/motion-mrdave-raspbian -O /usr/local/bin/motion sudo chmod +x /usr/local/bin/ движение
6. Инсталирайте зависими пакети
sudo apt-get инсталирате python-pip python-dev curl libssl-dev libcurl4-openssl-dev libjpeg-dev
7. Инсталирайте motioneye
sudo pip инсталирайте 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 инсталирайте motioneye --upgrade sudo systemctl рестартирайте motioneye
11. За да поддържате модула на камерата, трябва да добавите запис bcm2835_v4l2 към /etc/modules
sudo nano /etc/module
Това завършва инсталацията. Можете да получите достъп до административния панел в браузъра, като посочите raspberry IP и порт 8765. Сега имаме пълноправен raspbian и работещ motioneye.

След това ще добавим полезна функция, като Push известие към телефона ви, ако бъде засечено движение. Това може да бъде полезно, ако някой стои пред вратата ви, а вие не сте у дома.
Първото нещо, което трябва да направите, е да отидете на уебсайта. Там можете да изтеглите приложението за Android или iOS. Пълна регистрация. След това регистрирайте приложението „Регистриране на приложение“. След това попълнете полетата „Име“ и „Описание“ и изберете „Приложение“ в раздела „Тип“. Ако желаете, можете да добавите икона. След потвърждение ще бъде добавено приложение с уникален API токен/ключ. Вашият потребителски ключ е посочен на главната страница.
Следващата стъпка е да напишете скрипт на Python.

#!/usr/bin/python import httplib, urllib conn = httplib.HTTPSConnection("api.pushover.net:443") conn.request("POST", "/1/messages.json", urllib.urlencode(( "token": "am25zkm2p3msdgtmohaho9fraiieb", # Вмъкнете токен на приложение тук "user": "umsxy2qh9ub14rbkc59711fzca5nfx", # Вмъкнете потребителски токен тук "html": "1", # 1 за HTML, 0 за деактивиране на "title": "Tambur web camera ", # Заглавие на съобщението "message": " Детектор на движение!!", # Съдържание на съобщението "url": "http://192.168.1.33:8081", # Връзка, която да бъде включена в съобщението "url_title": "Преглед на потока на живо", # Текст за връзката "sound": " сирена", # Дефиниране на възпроизвеждания звук )), ( "Content-type": "application/x-www-form-urlencoded" )) conn.getresponse()
Не се опитвайте да ми изпращате нищо, смених ключовете))
След това нека създадем файл pushover.py за това
докоснете ./pushover.py
Отворете и добавете горния текст на скрипта. Запазване. Затворете файла.
sudo nano pushover.py
Нека зададем разрешения на файла
sudo chmod 777 pushover.py
Сега нашият скрипт е готов за изпълнение. Остава само да го добавите към менюто „Известия за движение“ в полето „Изпълнение на команда“ /home/pi/pushover.py

Няколко теста.
За тестване използвах Ethernet връзка. Снимките показват максималните fps в нормален режим и при засичане на движение.






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

Заключение.
Разбира се, има леки забавяния при показване на изображения. Смятам, че оптималната резолюция е 1024 x 768 и по-ниска. Като цяло бях доволен от резултатите на камерата. Планираме да добавим възможност за запис на звук от микрофон при засичане на движение.

Прегледът се оказа фокусиран върху софтуерната част, но отдавна събирах информация по този въпрос и исках да говоря за него. Извинявам се за евентуални грешки, все още съм на борда на Linux-подобни системи)) Добавките и коментарите са много добре дошли! Също така готов да отговаря на въпроси.

P.s. Сега цената в този магазин за Raspberry pi 3 е $35,99

Смятам да си купя +85 Добавяне към любими Ревюто ми хареса +54 +117

Едноплатковият компютър Raspberry Pi може да се използва не само за създаване на системи за домашна автоматизация и други проекти, които не изискват големи ресурси, но и за работа с видео, по-специално за стрийминг на видео от уеб камера през мрежа.



Този материал ще предостави инструкции стъпка по стъпка за настройка на Raspberry Pi като сървър с уеб камера, от която видеото ще се предава поточно по мрежата с помощта на специален софтуер. В нашия случай ще използваме софтуерния пакет Motion, който е безплатен и с отворен достъп.


И така, за този проект ще ви е необходим Raspberry Pi Model B или по-нов, USB WiFi адаптер, USB уеб камера с микрофон, SD карта с Raspbian OS, достъп до Raspberry Pi чрез клавиатура и мишка или дистанционно.


Уверете се, че всички софтуерни пакети са получили необходимите актуализации. За да направите това, можете просто да въведете:


sudo apt-get актуализация


След това трябва да инсталирате приложението 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 = не (променете на да).


Сега трябва да стартирате сървъра на уеб камерата. Уверете се, че уеб камерата е свързана към Raspberry Pi чрез USB. Въведете следния ред:


sudo service motion start


Ако искате да спрете тази услуга, използвайте тази команда:


спиране на движението на услугата sudo


За да рестартирате услугата Motion, можете да използвате следната команда:


sudo service motion рестартиране


Ако Motion работи, тогава можете да отворите уеб страница на вашия обикновен настолен компютър, който ще има IP на вашия Raspberry Pi в адресната лента и порт 8081 (или друг, ако сте го променили). След това ще видите изображението от уеб камерата, свързана към Raspberry Pi.