Мазмуну:

Raspberry Pi 3 Motion Detection Camera with Live Feed: 6 Steps
Raspberry Pi 3 Motion Detection Camera with Live Feed: 6 Steps

Video: Raspberry Pi 3 Motion Detection Camera with Live Feed: 6 Steps

Video: Raspberry Pi 3 Motion Detection Camera with Live Feed: 6 Steps
Video: Raspberry Pi live streaming surveillance camera |access from anywhere| Raspberry Pi + OpenCV + Flask 2024, Ноябрь
Anonim
Raspberry Pi 3 кыймылын аныктоочу камера Live Feed менен
Raspberry Pi 3 кыймылын аныктоочу камера Live Feed менен

Киришүү

Бул долбоордо сиз камера тузагы, үй жаныбары/бала монитору, коопсуздук камерасы жана башка көптөгөн нерселерди колдоно турган кыймыл аныктоочу камераны кантип курууну үйрөнөсүз.

Бул долбоор бир нече этаптан турат:

  • Киришүү
  • Сиздин Pi орнотулууда
  • Сиздин Pi'ге SSHing
  • Сиздин IP дарегиңизди электрондук почтага жүктөө
  • Motion орнотуу жана орнотуу
  • Аныктоо боюнча Motion тартып электрондук кат жөнөтүү
  • Көйгөйлөрдү чечүү жана булактар

Сизге эмне керек:

  • Raspberry Pi 3 модели ~ $ 35
  • 8gb Micro SD карта ~ ~ $ 10
  • USB веб -камерасы ~ ~ $ 20 (бул долбоор Logitech HD веб камерасы c270 колдонулган)
  • микро USB кабели ~ ~ 5 доллар
  • же:
  • кайра заряддалуучу 5 вольт батарейка (телефондун камдык батареясы), бул сиздин долбоорду зымсыз кылат ~ ~ $ 20
  • же
  • USB дубал адаптери ~ ~ $ 5
  • WiFi байланышы

Орнотуу үчүн сизге эмне керек болот:

  • Монитор
  • Чычкан жана клавиатура
  • SD картанын уячасы бар компьютер
  • Micro SD to SD card converter (микро SD картаңыз менен кошо келиши керек)

1 -кадам: Сиздин Pi орнотуу

Сиздин Pi орнотуу
Сиздин Pi орнотуу

Эми пиңизди орнотолу

Баштоо үчүн, акыркы кадамдан баштап керектүү нерселердин бардыгын текшериңиз. Андан кийин, Raspberry Pi веб -сайтынын Raspbian Jessie'ди Microsd картаңызга орнотуу боюнча кадамдарды аткарыңыз, бул жерде.

Пиңизге Raspbian орнотулгандан кийин, кээ бир негизги функцияларды орнотууга убакыт келди.

WiFi

Пиңизден максималдуу түрдө пайдалануунун биринчи кадамы - аны интернетке туташтыруу. Сиз бул кадамды Пиңиздин башкы экранынын жогорку оң бурчунда WiFi символун таап, ошол жерге кирүү менен же акыркы кадамда Raspbian орнотуудан мурун ушул эле нерсени жасоо менен бүтүргөн болушуңуз мүмкүн. Эгерде сиз Wi -Fi тармагыңызга Pi стол интерфейсинен кире албасаңыз, анда буйрук сабы аркылуу WiFi орнотуу үчүн бул жердеги көрсөтмөлөрдү аткарсаңыз болот.

SSH

Пиңизди колдонууда сизге жеткиликтүү болгон эң ыңгайлуу курал - бул башсыз орнотуу деп аталган пиңизге буйрук берүү. Secure SHell же SSHди колдонуу менен, сиз Пиңизди компьютерден алыстан башкара аласыз. Бул ыкманын жардамы менен, сиздин пиңизди түзөтүү үчүн, аны сактап калуу үчүн энергия булагы болот, мындан ары монитор жана клавиатура жок!

2 -кадам: Сиздин PIге SSHing

Сиздин PIге SSHing
Сиздин PIге SSHing
Сиздин PIге SSHing
Сиздин PIге SSHing

Raspberry Pi -ге SSHing киргизүү оңой жана абдан пайдалуу, анткени процесс WiFi туташуусунан башка эч бир компьютерден Piге буйрук берүүгө мүмкүндүк берет.

Пиңизге SSH кирүү үчүн бул 3 жөнөкөй кадамды аткарышыңыз керек.

Биринчиден, сиз Piңизде SSH иштетишиңиз керек. Бул үчүн, пиңизде буйрук терезесин ачыңыз жана териңиз:

sudo raspi-config

Бул буйрук конфигурация менюсуна кирүүгө мүмкүнчүлүк берет. ал жерден сиз жебени, өтмөктү жана ачкычтарды колдонуп, алгач интерфейстин параметрлерине өтүшүңүз керек, андан кийин SSHди, ошондой эле камераны иштетүү үчүн, андан кийин piден чыгып, кайра жүктөңүз.

Андан кийин, сиз Пиңиздин IP дарегин табышыңыз керек. Командалык терминалга териңиз:

sudo ifconfig

Сиздин IP дарегиңиз wlan0 бөлүмүндө, Link encap: ethernet астында болушу керек. Жогорудагы демо сүрөттө IP дареги 192.168.1.10.

Акырында, сиз Macта орнотулган терминалдык колдонмону ачышыңыз керек, же Windows үчүн үчүнчү тараптын ssh колдонмосунун көрсөтмөлөрүн табышыңыз керек. Терминал колдонмосуна териңиз:

ssh pi@Сиздин IP дарегиңиз

Эгерде сиз Raspi-configда сырсөздү алмаштыра элек болсоңуз, анда сиздин сырсөзүңүз киргизилгенде демейки сырсөз болот: малина.

Ал жерден, сен жакшы болушу керек!

3 -кадам: Жүктөө учурунда IP дарегиңизди электрондук почтага жөнөтүңүз

Жүктөө учурунда IP дарегиңизди электрондук почтага жөнөтүңүз
Жүктөө учурунда IP дарегиңизди электрондук почтага жөнөтүңүз

Бул кадамда биз сиз турган тармакка карабастан, Raspberry Piге кантип кирүү керектигине токтолобуз. Тармакка жараша Piнин IP дареги өзгөрөт. Ал эми монитор орнотууңуз жок болсо, кыймылды аныктоо протоколун иштетүү, кыймылдын артыкчылыктарын өзгөртүү же түзмөктөгү башка нерсеге кирүү үчүн Piге ssh киргизишиңиз керек. Бул көйгөйдү чечүү үчүн, биз питондун скриптин жазабыз, ал бизге Piнин учурдагы IP дарегин ишке киргизгенде жөнөтөт. Питон скрипти төмөнкүчө жана "фон" деп белгиленген каталогдо сакталган.

#үй каталогунда баштаңыз

cd ~

#фондук папканы түзүү

mkdir background

#питон скриптин түзүңүз

sudo nano emailip.py

#emailip.py файлына жазыңыз

импорт сокети

s = socket.socket (socket. AF_INET, socket. SOCK_DGRAM)

s.connect (("8.8.8.8", 80))

басып чыгаруу (s.getsockname () [0]) x = s.getsockname () [0] s.close ()

smtplib импорттоо

email. MIMEMultipart импорттоо MIMEMultipart

email. MIMEText импорттоо MIMEText

fromaddr = "СИЗДИН ДАРЕК"

toaddr = "ДАРЕК КАБЫЛ АЛЫНАТ"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

msg ['Subject'] = "IP дареги"

дене = xmsg.attach (MIMEText (дене, 'жөнөкөй'))

сервер = smtplib. SMTP ('smtp.gmail.com', 587)

server.starttls ()

server.login (fromaddr, "СИЗДИН ПАРОЛУҢУЗ")

текст = msg.as_string ()

server.sendmail (fromaddr, toaddr, текст)

server.quit ()

#анда бул кайра жүктөөдө жасалат

sudo nano /etc/rc.local

#et in /etc/rc.local

качан! /sbin/ifconfig wlan0 | grep -q 'inet addr: [0-9]';

укта 3

бүттү

_IP = $ (хосттун аты -I) || чын

эгер ["$ _IP"]; анда

printf "Менин IP дарегим %s / n" "$ _IP"

python /home/pi/Background/emailip.py &

fi

чыгуу 0

#жана сен бүттүң

4 -кадам: Орнотуу жана Орнотуу

Кыймылды орнотуу жана жөндөө
Кыймылды орнотуу жана жөндөө

#pi жаңыртуу

sudo apt-get update

sudo apt-get жогорулатуу

#түшүрүү

sudo apt-get орнотуу кыймылы

#Эми бул файлды төмөнкү өзгөртүүлөр менен түзөтүңүз

sudo nano /etc/motion/motion.conf

#Бул үйрөткүчкө стандарт коюу үчүн, өзгөртүңүз

#################

демон күйүк

stream_localhost өчүк

webcontrol_localhost өчүк

ffmpeg_output_movies күйүк

target_dir/var/lib/motion

##################

#жергиликтүү веб браузердин агымдык параметрлери

##################

stream_maxrate 100 #Бул реалдуу убакытта агымга мүмкүндүк берет, бирок көбүрөөк өткөрүү жөндөмдүүлүгүн жана ресурстарды талап кылат

кадрдын ылдамдыгы 60 #Бул секундасына 60 кадрды тартууга мүмкүндүк берет #бул канчалык жогору болсо, видеону иштетүү ошончолук жай болот

туурасы 640 #Бул көрсөтүлгөн сүрөттүн туурасын өзгөртөт

бийиктик 480 #Бул көрсөтүлгөн сүрөттүн бийиктигин өзгөртөт

##################

#почтадагы видео орнотуулары…/motion.conf

##################

Саптын алдындагы ";" белгисин жок кылыңыз, үтүрлүү чекитти комментарийлейт

on_event_start python /home/pi/background/motionalert.py %f

on_movie_end python /home/pi/background/motionvid.py %f

##################

#astectics

##################

#файлда сүрөттөлгөн тандоолор

output_pictures locate_motion_style

##################

#анда өзгөртүү

sudo nano/etc/default/motion

#айтуу

start_motion_daemon = ооба

#акыркы, B **** баштаңыз

Sudo кызматы кыймылынын башталышы

#сиз "токтотуу" же "өчүрүп күйгүзүү" командасын өзгөртө аласыз

5 -кадам: Видеолорду электрондук почта аркылуу аныктоо

Табуу боюнча кыймылдан видеолорду электрондук почтага жөнөтүү
Табуу боюнча кыймылдан видеолорду электрондук почтага жөнөтүү

Кыймыл аныкталганда электрондук почта:

#үйдөн баштаңыз

dircd ~

#кыймылды эскертүүчү питон скриптин түзүңүз

sudo nano /home/pi/background/motionalert.py

#жаз

smtplib импорттоо

datetime импорттоо datetime

email. MIMEMultipart импорттоо MIMEMultipart

email. MIMEText импорттоо MIMEText

fromaddr = "YOURADDRESS"

toaddr = "RECIEVINGADDRESS"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

msg ['Subject'] = "Кыймыл аныкталды"

body = 'Кыймыл аныкталды. / nУбактысы: % s' % str (datetime.now ())

msg.attach (MIMEText (дене, 'жөнөкөй'))

сервер = smtplib. SMTP ('smtp.gmail.com', 587)

server.starttls ()

server.login (fromaddr, "YOURPASSWORD")

текст = msg.as_string ()

server.sendmail (fromaddr, toaddr, текст)

server.quit ()

Электрондук почта Видео сакталганда кыймылдын видеосу:

#баштоо homedircd ~

#кыймыл видео python скрипттерин түзүү nano /home/pi/background/motionvid.py

smtplib импорттоо

email. MIMEMultipart импорттоо MIMEMultipart

email. MIMEText импорттоо MIMEText

email. MIMEBase импорттоо MIMEBase

электрондук почтанын импорттоо кодерлеринен

fromaddr = "СЕНИН ПОЧТАҢ"

toaddr = "Сиз жиберген электрондук почта дареги"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

msg ['Subject'] = "Кыймыл камерасы иштетилди"

дене = "Кыймылдын видеосу аныкталды"

msg.attach (MIMEText (дене, 'жөнөкөй'))

импорт os

rootpath = '/var/lib/motion'

filelist = [os.path.join (rootpath, f) f үчүн os.listdir (rootpath)]

filelist = [f үчүн f үчүн. os.path.isfile (f)]

newest = max (файл тизмеси, key = lambda x: os.stat (x).st_mtime)

файлдын аты = эң жаңы

импорт os

rootpath = '/var/lib/motion'

filelist = [os.path.join (rootpath, f) f үчүн os.listdir (rootpath)]

filelist = [f үчүн f үчүн тизмеде эгер os.path.isfile (f)]

newest = max (файл тизмеси, key = lambda x: os.stat (x).st_mtime)

тиркеме = ачык (эң жаңы, "rb")

бөлүгү = MIMEBase ('колдонмо', 'октет-агым')

part.set_payload ((тиркеме). окуу ())

encoders.encode_base64 (бөлүгү)

part.add_header ('Content-Disposition', "тиркеме; файлдын аты = % s" % файлдын аты)

msg.attach (бөлүгү)

сервер = smtplib. SMTP ('smtp.gmail.com', 587)

server.starttls ()

server.login (fromaddr, "СИЗДИН ПАРОЛУҢУЗ")

текст = msg.as_string ()

server.sendmail (fromaddr, toaddr, текст)

server.quit ()

6 -кадам: Мүчүлүштүктөрдү оңдоо жана булактар

Көйгөйлөрдү чечүү жана булактар
Көйгөйлөрдү чечүү жана булактар

Мүчүлүштүктөрдү оңдоо:

Бул долбоор бир нече этаптан тургандыктан, бир нерселер туура эмес кетиши мүмкүн. Төмөндө пайда болушу мүмкүн болгон каталардын айрымдары жана аларды кантип оңдоо керек.

  • Пиңизди учурдагы IP дарегиңизге электрондук почтага жөнөтүү үчүн, rc.local файлын мурда көрсөтүлгөндөй түзөтүү өтө маанилүү, анткени бул программа кайра жүктөлгөндөн кийин активдешкенге чейин бир аз кечигүүгө мүмкүндүк берет. Болбосо, пи дагы Wi -Fiга туташпайт жана электрондук кат жөнөтүлбөйт.
  • Motion.conf файлын түзөтүп жатканда, кээ бир параметрлердин алдындагы үтүрлүү чекиттерди жок кылууну унутпаңыз. Үтүрлүү чекит берилген аракетти басат, антпесе өзгөртүү күчүнө кирбейт.
  • Motion.conf файлы абдан жакшы уюштурулган жана деталдуу. Жөндөөлөрдү каалаганыңыздай өзгөртө аласыз, бирок алар кыймыл тартуу тутумунун ийгилигине таасир этиши мүмкүн экенин түшүнүңүз.
  • Электрондук почта эскертүүсүн жана электрондук почта видео параметрлерин орноткондон кийин, кыймылдын аныкталган видеосунун электрондук почтасы баштапкы эскертүү катына караганда бир аз көбүрөөк убакытка созуларын белгилей кетүү маанилүү. Бул видео кыймыл аныкталбай калгандан кийин бир нече секунддан кийин бүтөт жана электрондук тиркеме бир нече мүнөттү алгыдай чоң болушу мүмкүн. Кээ бир учурларда, эгер кыймыл өтө узак убакытка созулса, аны жөнөтүү үчүн өтө чоң болуп калышы мүмкүн. Ушундан улам, биринчи эскертүү катты алгандан кийин түз эфирди текшерүү дайыма жакшы идея.

Эмне үчүн кыймыл?:

Бул долбоорго биринчи киришүүдө биз бир нече башка ресурстарды карап чыктык. Алгач биз малина пи үчүн атайын курулган камера бирдиги болгон PiCam колдонууну карадык. PiCam, албетте, жөндөмдүү түзмөк жана көптөгөн тиркемелери бар, бирок ал атайын иштелип чыккан программаларды колдонуу менен гана чектелген жана арзан көп функционалдуу веб -камераларга салыштырмалуу кымбат. Ошентип, бул долбоорду кеңири аудитория үчүн жеткиликтүү кылуу үчүн, биз жалпы USB веб -камерасын колдонууну чечтик. Кийинки маселе, кайсы программалык камсыздоону киргизүү керек эле. Биз башында OpenCV карадык, ал компьютердик көрүнүштүн көптөгөн түрлөрүнө жана сүрөт иштетүүчү долбоорлорго мүмкүнчүлүк берген бекер программа. Бул жердеги маселелер боюнча, OpenCV - бул көп эстутумду жана узак убакытка чейин орнотулган массалык файл. Орнотуу дагы бир нече этаптан турат жана катага көбүрөөк орун калтырат. Биз өзүбүздүн конкреттүү долбоорубуз үчүн Motionду орнотуу жана иштөө оңой экенин, бирок аны аткарууда алда канча күчтүү экенин байкадык.

Булактар

Код булактары:

www.techradar.com/how-to/computing/how-to-b…

pimylifeup.com/raspberry-pi-webcam-server/

www.pyimagesearch.com/2015/06/01/home-surve…

naelshiab.com/tutorial-send-email-python/

www.raspberrypi.org/documentation/linux/us…

learn.adafruit.com/adafruits-raspberry-pi-…

learn.adafruit.com/adafruits-raspberry-pi-…

pinout.xyz/pinout/i2c

Фото насыялары:

SSH үлүлү:

Почтанын логотиби:

Logitech веб-камерасы:

SSH терезеси:

Сунушталууда: