Բովանդակություն:

Raspberry Pi 3 շարժման հայտնաբերման տեսախցիկ ՝ կենդանի հոսքով ՝ 6 քայլ
Raspberry Pi 3 շարժման հայտնաբերման տեսախցիկ ՝ կենդանի հոսքով ՝ 6 քայլ

Video: Raspberry Pi 3 շարժման հայտնաբերման տեսախցիկ ՝ կենդանի հոսքով ՝ 6 քայլ

Video: Raspberry Pi 3 շարժման հայտնաբերման տեսախցիկ ՝ կենդանի հոսքով ՝ 6 քայլ
Video: 1. Q Light Controller + Սկսել QLC +- ով: Արշավներ եւ գործառույթներ 2024, Նոյեմբեր
Anonim
Raspberry Pi 3 շարժման հայտնաբերման տեսախցիկ ՝ կենդանի հոսքով
Raspberry Pi 3 շարժման հայտնաբերման տեսախցիկ ՝ կենդանի հոսքով

Ներածություն

Այս նախագծում դուք կսովորեք, թե ինչպես կառուցել շարժման հայտնաբերման տեսախցիկ, որը կկարողանաք օգտագործել որպես խցիկի ծուղակ, ընտանի կենդանու/երեխայի մոնիտոր, անվտանգության տեսախցիկ և շատ ավելին:

Այս նախագիծը կազմակերպված է մի քանի քայլերի.

  • Ներածություն
  • Ձեր Pi- ի կարգավորում
  • SSHing ձեր Pi- ում
  • Էլեկտրոնային փոստով ուղարկեք ձեր IP հասցեն բեռնման ժամանակ
  • Տեղադրեք և կարգավորեք Motion- ը
  • Էլեկտրոնային փոստի հասցե ՝ շարժման տեսանյութերի հայտնաբերում
  • Խնդիրների վերացում և աղբյուրներ

Այն, ինչ ձեզ հարկավոր կլինի

  • A Raspberry Pi 3 մոդել b 35 35 դոլար
  • 8 գբ Micro SD քարտ 10 10 դոլար
  • USB տեսախցիկ ~~ 20 դոլար (այս նախագիծը օգտագործել է Logitech HD վեբ -տեսախցիկ c270)
  • միկրո USB մալուխ ՝ 5 դոլար
  • կամ ՝
  • վերալիցքավորվող 5 վոլտ մարտկոցի փաթեթ (հեռախոսի պահեստային մարտկոց), սա ձեր նախագիծը դարձնում է անլար 20 ֆունտ ստեռլինգ
  • կամ
  • usb պատի ադապտեր ~~ 5 դոլար
  • WiFi կապ

Այն, ինչ ձեզ հարկավոր կլինի մուտք գործելու համար

  • Մոնիտոր
  • Մկնիկ և ստեղնաշար
  • SD քարտի բնիկով համակարգիչ
  • Micro SD- ի SD քարտի փոխարկիչ (պետք է լինի ձեր միկրո SD քարտի հետ միասին)

Քայլ 1: Տեղադրեք ձեր Pi- ն

Ձեր Pi- ի կարգավորում
Ձեր Pi- ի կարգավորում

Այժմ եկեք ստեղծենք ձեր Pi- ն

Սկսելու համար համոզվեք, որ ունեք վերջին քայլից պահանջվող բոլոր տարրերը: Հետո, հետևեք Raspberry Pi վեբ կայքի քայլերին ՝ Raspbian Jessie- ն ձեր Microsd քարտի վրա տեղադրելու վերաբերյալ, որը գտնվում է այստեղ:

Երբ Raspbian- ը տեղադրեք ձեր Pi- ի վրա, ժամանակն է կարգավորել որոշ հիմնական հնարավորություններ:

WiFi

Ձեր Pi- ից առավելագույնը ստանալու առաջին քայլը դա ձեր ինտերնետին միացնելն է: Հավանաբար, դուք արդեն ավարտել եք այս քայլը կամ տեղադրելով WiFi- ի խորհրդանիշը ձեր Pi- ի հիմնական էկրանի վերին աջ անկյունում և այնտեղ մուտք գործելով, կամ նույնը կատարելով ՝ մինչև վերջին քայլը Raspbian- ը տեղադրելը: Եթե դուք չեք կարող մուտք գործել ձեր WiFi ցանց ձեր Pi- ի աշխատասեղանի միջերեսից, կարող եք հետևել այստեղ տրված հրահանգներին `WiFi հրամանի տողի միջոցով կարգավորելու համար:

SSH

Ձեր Pi- ն օգտագործելիս ձեզ հասանելի մեկ շատ հարմար գործիք է ձեր Pi- ին հրամաններ տալու տարբերակը, որը հայտնի է որպես անգլուխ կարգավորում: Օգտագործելով Secure SHell կամ SSH ՝ կարող եք ձեր Pi- ն հեռակա կարգով վերահսկել համակարգչից: Այս մեթոդով ձեր Pi- ն խմբագրելու համար ձեզ անհրաժեշտ է էներգիա ՝ այն միացնելու համար, այլ ոչ մոնիտոր և ստեղնաշար:

Քայլ 2: SSHing ձեր PI- ին

SSHing ձեր PI- ում
SSHing ձեր PI- ում
SSHing ձեր PI- ում
SSHing ձեր PI- ում

Ձեր Raspberry Pi- ում SSH մտնելը հեշտ է և շատ օգտակար, քանի որ գործընթացը թույլ է տալիս ձեր Pi- ին հրամաններ տալ ցանկացած համակարգչից, բացի WiFi կապից:

Ձեր Pi- ին SSH մուտքագրելու համար հարկավոր է հետևել այս 3 պարզ քայլերին:

Նախ, դուք պետք է միացնեք SSH- ը ձեր Pi- ի վրա: Դա անելու համար ձեր Pi- ում բացեք հրամանի պատուհան և մուտքագրեք.

sudo raspi-config

Այս հրամանը թույլ է տալիս մուտքագրել կազմաձևման ընտրացանկ: այնտեղից դուք կցանկանաք օգտագործել սլաքը, ներդիրը և մուտքագրել ստեղները ՝ սկզբում միանալու ընտրանքներին, այնուհետև SSH- ին, ինչպես նաև տեսախցիկին միացնելու համար, այնուհետև դուրս եկեք և վերագործարկեք pi- ն:

Հաջորդը, դուք պետք է գտնեք ձեր Pi- ի IP հասցեն: Հրամանի տերմինալում մուտքագրեք.

sudo ifconfig

Եվ ձեր IP հասցեն պետք է լինի wlan0 բաժնում, որը հայտնվում է, անմիջապես Link encap: ethernet հղման ներքո: Վերևի ցուցադրական նկարում IP հասցեն 192.168.1.10 է:

Վերջապես, դուք պետք է կամ բացեք ներկառուցված տերմինալ ծրագիրը mac- ի վրա, կամ գտնեք և հետևեք Windows- ի երրորդ կողմի ssh ծրագրի հրահանգներին: Տերմինալ հավելվածում մուտքագրեք.

ssh pi@ՁԵՐ IP հասցեն

Եթե Raspi-config- ի ընթացքում չեք փոխել գաղտնաբառը, ապա հուշման ժամանակ մուտքագրելու ձեր գաղտնաբառը կլինի կանխադրված գաղտնաբառը `ազնվամորի:

Այնտեղից պետք է լավ գնալ:

Քայլ 3: Էլփոստով ուղարկեք ձեր IP հասցեն Boot- ում

Էլեկտրոնային փոստով ուղարկեք ձեր IP հասցեն Boot- ում
Էլեկտրոնային փոստով ուղարկեք ձեր IP հասցեն Boot- ում

Այս քայլում մենք կկենտրոնանանք, թե ինչպես մուտք գործել ձեր Raspberry Pi ՝ անկախ այն ցանցից, որտեղ դուք գտնվում եք: Կախված ցանցից, Pi- ի IP հասցեն փոխվում է: Եվ եթե դուք չունեք մոնիտորի կարգավորում, ապա ձեզ հարկավոր է ssh մուտքագրել Pi- ում `շարժման հայտնաբերման արձանագրությունը գործարկելու, շարժման նախապատվությունները փոխելու կամ սարքի ցանկացած այլ բան մուտք գործելու համար: Այս խնդիրը լուծելու համար մենք կգրենք պիթոնի սցենար, որը գործարկելիս մեզ էլ. Փոստով ուղարկում է Pi- ի IP ընթացիկ IP հասցեն: Պիթոնի սցենարը հետևյալն է և պահվում էր «ֆոն» նշվող գրացուցակում:

#սկսել տնային գրացուցակում

cd

#ստեղծել ֆոնային թղթապանակ

mkdir ֆոն

#ստեղծել պիթոնի սցենար

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

էլ. փոստից. MIMEMultipart ներմուծել MIMEMultipart

փոստից: MIMEText ներմուծում MIMEText

fromaddr = "ՔՈ ՀԱՍRԵ"

toaddr = "ՀԱՍDԵՆ ՍՏԱՈՄ"

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, "YOUR PASSWORD")

տեքստ = msg.as_string ()

server.sendmail (fromaddr, toaddr, տեքստ)

server.quit ()

#ապա դա անում է վերագործարկման ժամանակ

sudo nano /etc/rc.local

#մուտքագրեք /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: Շարժման տեղադրում և կարգավորում

Շարժման տեղադրում և կարգաբերում
Շարժման տեղադրում և կարգաբերում

#թարմացնել պի

sudo apt-get թարմացում

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

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

#ասեկտիկա

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

#ընտրություն նկարագրված է ֆայլում

ելքային_պատկերներ տեղադրեք_շարժման_ ոճը

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

#ապա փոխիր

sudo nano/etc/default/motion

#ասել

start_motion_daemon = այո

#վերջին, սկսեք B **** վերև

sudo ծառայության շարժման սկիզբ

#կարող եք փոխել հրամանը «դադարեցնել» կամ «վերագործարկել»

Քայլ 5. Հայտնաբերման շարժումից տեսանյութեր ուղարկելը

Հայտնաբերման շարժումից տեսանյութեր ուղարկելը
Հայտնաբերման շարժումից տեսանյութեր ուղարկելը

Էլեկտրոնային փոստ, երբ շարժումը հայտնաբերվում է

#սկսել տանը

dircd

#ստեղծեք շարժման ազդանշանի պիթոնի սցենար

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

#գրել

ներմուծել smtplib

datetime- ից ներմուծել datetime

էլ. փոստից. MIMEMultipart ներմուծել MIMEMultipart

փոստից: MIMEText ներմուծում MIMEText

fromaddr = "ՔՈ ՀԱՅԱՍՏԱՆԸ"

toaddr = "RECIEVINGADDRESS"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

msg ['Subject'] = "Շարժումը հայտնաբերված է"

մարմին = 'Շարժում է հայտնաբերվել: / 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- ում

#ստեղծեք շարժման տեսանյութ պիթոնի սցենարներ սուդո նանո/տուն/պի/հետին պլան/շարժում. վիդեո. py

ներմուծել smtplib

էլ. փոստից. MIMEMultipart ներմուծել MIMEMultipart

փոստից: MIMEText ներմուծում MIMEText

փոստից. MIMEBase ներմուծում MIMEBase

էլփոստի ներմուծման կոդավորիչներից

fromaddr = "ՔՈ Էլ. փոստ"

toaddr = "E -mail ՀԱՍRԵ, ՈՐՈՎ Ո SՈENDՄ ԵՍ"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

msg ['Subject'] = "Motion Cam- ն ակտիվացված է"

body = "Հայտնաբերվել է շարժման տեսանյութ"

msg.attach (MIMEText (մարմին, «պարզ»))

ներմուծել os

rootpath = '/var/lib/motion'

ֆայլացանկ = [os.path.join (rootpath, f) for f in os.listdir (rootpath)]

filelist = [f for filelist- ում, եթե os.path.isfile (f)]

նորագույն = առավելագույնը (ֆայլերի ցուցակ, բանալին = lambda x: os.stat (x).st_mtime)

ֆայլի անունը = նորագույնը

ներմուծել os

rootpath = '/var/lib/motion'

ֆայլացանկ = [os.path.join (rootpath, f) for f in os.listdir (rootpath)]

filelist = [f for filelist- ում, եթե os.path.isfile (f)]

նորագույն = առավելագույնը (ֆայլերի ցուցակ, բանալին = lambda x: os.stat (x).st_mtime)

հավելված = բաց (նորագույն, «rb»)

մաս = MIMEBase ('դիմում', 'octet-stream')

part.set_payload ((առդիր). կարդալ ())

encoders.encode_base64 (մաս)

part.add_header ('Content-Disposition', "attachment; filename = % s" % filename)

msg. կցել (մաս)

սերվեր = smtplib. SMTP ('smtp.gmail.com', 587)

server.starttls ()

server.login (fromaddr, "YOUR PASSWORD")

տեքստ = msg.as_string ()

server.sendmail (fromaddr, toaddr, տեքստ)

server.quit ()

Քայլ 6: Խնդիրների վերացում և աղբյուրներ

Խնդիրների վերացում և աղբյուրներ
Խնդիրների վերացում և աղբյուրներ

Անսարքությունների վերացում

Քանի որ այս նախագիծը մի քանի փուլ ունի, կան մի քանի կետեր, որոնցում ամեն ինչ կարող է սխալ լինել: Ստորև բերված են հնարավոր սխալներից մի քանիսը և ինչպես դրանք շտկել:

  • Երբ ձեր pi- ն ձեզ էլփոստի համար ուղարկի իր ընթացիկ IP հասցեն, շատ կարևոր է խմբագրել rc.local ֆայլը, ինչպես ցույց է տրված ավելի վաղ, քանի որ դա թույլ է տալիս մի փոքր ուշացնել, նախքան ծրագիրը վերագործարկվելուց հետո ակտիվանալը: Հակառակ դեպքում pi- ն դեռ միացված չէ wifi- ին, և էլ. Փոստը չի ուղարկվի:
  • Motion.conf ֆայլը խմբագրելիս համոզվեք, որ ջնջեք ստորակետները որոշակի պարամետրերի դիմաց: Կետ ստորակետը ճնշում է տվյալ գործողությունը, այնպես որ հակառակ դեպքում փոփոխությունը ուժի մեջ չի մտնի:
  • Motion.conf ֆայլը շատ լավ կազմակերպված և մանրամասն է: Ազատորեն փոխեք կարգավորումները ըստ ձեր ցանկության, բայց հասկացեք, որ դրանք կարող են ազդել շարժման գրավման համակարգի հաջողության վրա:
  • Էլփոստի ահազանգի և էլ. Փոստի տեսանյութերի ընտրանքները սահմանելուց հետո կարևոր է նշել, որ շարժման ընթացքում հայտնաբերված տեսանյութի էլ. Պատճառն այն է, որ տեսանյութն ավարտվում է մի քանի վայրկյան հետո, երբ շարժումն այլևս չի հայտնաբերվում, և քանի որ էլ. Որոշ դեպքերում, եթե շարժումը շարունակվում է շատ երկար ժամանակ, այն կարող է չափազանց մեծ լինել ընդհանրապես ուղարկելու համար: Այդ իսկ պատճառով միշտ էլ լավ գաղափար է նախնական ահազանգի նամակ ստանալուց հետո ստուգել ուղիղ հոսքը:

Ինչու՞ շարժում:

Այս նախագիծը սկսելիս մենք հաշվի առանք մի քանի տարբեր ռեսուրսներ: Սկզբում մենք դիտարկեցինք PiCam- ի օգտագործումը, որը տեսախցիկ է, որը կառուցվել է հատուկ ազնվամորու pi- ի համար: 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 Snail ՝

Փոստի պատկերանշան ՝

Logitech վեբ-տեսախցիկ ՝

SSH պատուհան ՝

Խորհուրդ ենք տալիս: