Სარჩევი:

Raspberry Pi 3 მოძრაობის გამოვლენის კამერა ცოცხალი არხით: 6 ნაბიჯი
Raspberry Pi 3 მოძრაობის გამოვლენის კამერა ცოცხალი არხით: 6 ნაბიჯი

ვიდეო: Raspberry Pi 3 მოძრაობის გამოვლენის კამერა ცოცხალი არხით: 6 ნაბიჯი

ვიდეო: Raspberry Pi 3 მოძრაობის გამოვლენის კამერა ცოცხალი არხით: 6 ნაბიჯი
ვიდეო: MINI POE ip კამერა Armoured CASE SUPER NIGHT PICTURE!!! 2024, ნოემბერი
Anonim
Raspberry Pi 3 მოძრაობის გამოვლენის კამერა ცოცხალი არხით
Raspberry Pi 3 მოძრაობის გამოვლენის კამერა ცოცხალი არხით

შესავალი

ამ პროექტში თქვენ შეისწავლით თუ როგორ უნდა ავაშენოთ მოძრაობის ამოცნობის კამერა, რომელსაც თქვენ შეძლებთ გამოიყენოთ როგორც კამერის ხაფანგი, შინაური ცხოველის/ბავშვის მონიტორი, უსაფრთხოების კამერა და მრავალი სხვა.

ეს პროექტი რამდენიმე ეტაპად არის ორგანიზებული:

  • შესავალი
  • თქვენი Pi- ის დაყენება
  • SSHing თქვენს Pi
  • თქვენი IP მისამართის გაგზავნა ჩატვირთვისას
  • მოძრაობის დაყენება და დაყენება
  • ვიდეოების გაგზავნა მოძრაობიდან გამოვლენისას
  • პრობლემების აღმოფხვრა და წყაროები

რაც დაგჭირდებათ:

  • Raspberry Pi 3 მოდელი 35 დოლარი
  • 8 გბ მიკრო SD ბარათი ~~ 10 დოლარი
  • USB ვებკამერა ~~ 20 $ (ამ პროექტმა გამოიყენა Logitech HD ვებკამერა c270)
  • მიკრო USB კაბელი $ 5
  • ან:
  • მრავალჯერადი დატენვის 5 ვოლტიანი ბატარეა (ტელეფონის სარეზერვო ბატარეა), რაც თქვენს პროექტს უკაბელო გახდის ~~ 20 აშშ დოლარი
  • ან
  • USB კედლის ადაპტერი ~~ 5 დოლარი
  • WiFi კავშირი

რაზე დაგჭირდებათ წვდომა კონფიგურაციისთვის:

  • მონიტორი
  • მაუსი და კლავიატურა
  • კომპიუტერი SD ბარათის სლოტით
  • მიკრო SD SD ბარათის გადამყვანი (უნდა მოყვეს თქვენი მიკრო SD ბარათი)

ნაბიჯი 1: თქვენი Pi- ის დაყენება

თქვენი პიის დაყენება
თქვენი პიის დაყენება

ახლა მოდით შევქმნათ თქვენი Pi

დასაწყისისთვის, დარწმუნდით, რომ თქვენ გაქვთ ყველა საჭირო ელემენტი ბოლო საფეხურიდან. შემდეგ, მიჰყევით Raspberry Pi ვებსაიტზე არსებულ ნაბიჯებს, რომ დააინსტალიროთ Raspbian Jessie თქვენს Microsd ბარათზე, რომელიც აქ არის ნაპოვნი.

მას შემდეგ რაც Raspbian დაინსტალირდება თქვენს Pi– ზე, დროა მიიღოთ ძირითადი ფუნქციები.

Ვაი - ფაი

პირველი ნაბიჯი თქვენი Pi- სგან მაქსიმალური სარგებლობის მისაღწევად არის თქვენი ინტერნეტთან დაკავშირება. თქვენ შეიძლება უკვე დაასრულოთ ეს ნაბიჯი ან თქვენი Pi- ს მთავარი ეკრანის ზედა მარჯვენა კუთხეში WiFi სიმბოლოს განთავსებით და იქ შესვლით, ან იგივე გააკეთეთ Raspbian– ის ბოლო საფეხურზე დაყენებამდე. თუ თქვენ ვერ შეხვალთ თქვენს WiFi ქსელში თქვენი Pi- ს დესკტოპის ინტერფეისიდან, შეგიძლიათ მიყევით აქ მითითებებს WiFi ბრძანების ხაზის მეშვეობით დასაყენებლად.

SSH

ერთი ძალიან მოსახერხებელი ინსტრუმენტი, რომელიც თქვენთვის ხელმისაწვდომია თქვენი Pi– ს გამოყენებისას არის ვარიანტი გასცეს ბრძანებები თქვენს Pi– ს, რაც ცნობილია როგორც უთავო დაყენება. Secure SHell- ის ან SSH- ის გამოყენებით შეგიძლიათ აკონტროლოთ თქვენი Pi დისტანციურად კომპიუტერიდან. ამ მეთოდით, ყველაფერი რაც თქვენ დაგჭირდებათ თქვენი Pi- ს შესაცვლელად არის ენერგიის წყარო მის შესანარჩუნებლად, აღარ არის მონიტორი და კლავიატურა!

ნაბიჯი 2: SSHing თქვენს PI– ში

SSHing თქვენს PI– ში
SSHing თქვენს PI– ში
SSHing თქვენს PI– ში
SSHing თქვენს PI– ში

SSH თქვენს Raspberry Pi– ში შეყვანა ადვილი და ძალიან სასარგებლოა, რადგან პროცესი საშუალებას გაძლევთ გასცეთ ბრძანებები თქვენს Pi– ს ნებისმიერი კომპიუტერიდან, მეტი არაფერი WiFi კავშირის გარდა.

SSH– ში Pi– ში შესასვლელად, თქვენ უნდა შეასრულოთ ეს 3 მარტივი ნაბიჯი.

პირველ რიგში, თქვენ უნდა ჩართოთ SSH თქვენს Pi- ზე. ამისათვის გახსენით ბრძანების ფანჯარა თქვენს Pi- ში და ჩაწერეთ:

sudo raspi-config

ეს ბრძანება საშუალებას გაძლევთ შეიყვანოთ კონფიგურაციის მენიუ. იქიდან თქვენ გსურთ გამოიყენოთ ისარი, ჩანართი და შეიყვანოთ გასაღებები, რომ შეხვიდეთ ჯერ ინტერფეისის პარამეტრებში, შემდეგ ჩართოთ SSH, ისევე როგორც კამერა, შემდეგ გამოდით და გადატვირთეთ pi.

შემდეგი, თქვენ უნდა იპოვოთ თქვენი Pi- ს IP მისამართი. ბრძანების ტერმინალში ჩაწერეთ:

sudo ifconfig

თქვენი IP მისამართი უნდა იყოს wlan0 განყოფილებაში, რომელიც იხსნება, პირდაპირ ბმული encap: ethernet- ის ქვეშ. ზემოთ დემო სურათზე, IP მისამართი არის 192.168.1.10.

დაბოლოს, თქვენ ან უნდა გახსნათ ჩაშენებული ტერმინალის აპლიკაცია mac- ზე, ან იპოვოთ და მიჰყევით ინსტრუქციებს მე -3 მხარის ssh პროგრამისთვის Windows- ისთვის. ტერმინალის აპლიკაციაში ჩაწერეთ:

ssh pi@თქვენი IP მისამართი

თუ თქვენ არ შეცვლილხართ პარალელურად Raspi- კონფიგურაციისას, მაშინ თქვენი პაროლი, რომელიც უნდა შეიყვანოთ მოთხოვნისთანავე იქნება ნაგულისხმევი პაროლი: ჟოლო.

იქიდან კარგად უნდა წახვიდე!

ნაბიჯი 3: გააგზავნეთ თქვენი IP მისამართი ჩატვირთვისას

გააგზავნეთ თქვენი IP მისამართი ჩატვირთვისას
გააგზავნეთ თქვენი IP მისამართი ჩატვირთვისას

ამ ეტაპზე ჩვენ ყურადღებას გავამახვილებთ იმაზე, თუ როგორ უნდა შეხვიდეთ თქვენს Raspberry Pi– ზე, მიუხედავად იმისა, თუ რომელ ქსელში ხართ. ქსელიდან გამომდინარე, Pi- ს IP მისამართი იცვლება. და თუ თქვენ არ გაქვთ მონიტორის დაყენება, თქვენ უნდა შეხვიდეთ Pi- ში მოძრაობის გამოვლენის პროტოკოლის გასააქტიურებლად, მოძრაობის პარამეტრების შესაცვლელად ან მოწყობილობაზე სხვა რამეზე წვდომისათვის. ამ პრობლემის გადასაჭრელად ჩვენ დავწერთ პითონის სკრიპტს, რომელიც ელ.წერილს გვაგზავნის Pi– ს IP– ის მიმდინარე IP– ის დაწყებისთანავე. პითონის სკრიპტი არის შემდეგი და ინახებოდა დირექტორიაში, რომელიც აღინიშნება "ფონი".

#დაწყება სახლის დირექტორიაში

cd

#შექმენით ფონის საქაღალდე

mkdir ფონი

#პითონის სკრიპტის შექმნა

sudo nano emailip.py

#დაწერე emailip.py

იმპორტის სოკეტი

s = socket.socket (სოკეტი. AF_INET, სოკეტი. SOCK_DGRAM)

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

ბეჭდვა (s.getsockname () [0]) x = s.getsockname () [0] s. დახურვა ()

იმპორტი smtplib

ელ.ფოსტისგან. MIMEMultipart იმპორტი MIMEMultipart

ელ.ფოსტისგან. 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, "YOUR PASSWORD")

text = msg.as_string ()

server.sendmail (fromaddr, toaddr, ტექსტი)

server.quit ()

#შემდეგ ეს ხდება გადატვირთვისას

sudo nano /etc/rc.local

#შესვლა /და სხვა /rc.local

ხოლო! /sbin/ifconfig wlan0 | grep -q 'inet addr: [0-9]';

დაიძინე 3

შესრულებულია

_IP = $ (მასპინძლის სახელი -I) || ჭეშმარიტი

თუ ["$ _IP"]; მაშინ

printf "ჩემი IP მისამართი არის %s / n" "$ _IP"

პითონი/home/pi/Background/emailip.py &

ფი

გასვლა 0

#და დაასრულე

ნაბიჯი 4: მოძრაობის დაყენება და დაყენება

მოძრაობის დაყენება და დაყენება
მოძრაობის დაყენება და დაყენება

#განახლება პი

sudo apt-get განახლება

sudo apt-get განახლება

#გადმოტვირთვა

sudo apt-get ინსტალაციის მოძრაობა

#ახლა შეცვალე ეს ფაილი შემდეგი ცვლილებებით

sudo nano/და ა.შ. მოძრაობა/მოძრაობა.კონფ

#ამ სახელმძღვანელოს სტანდარტის დასადგენად, შეცვალეთ

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

დემონი ჩართულია

stream_localhost გამორთულია

webcontrol_localhost გამორთულია

ffmpeg_output_movies ჩართულია

target_dir/var/lib/motion

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

#ადგილობრივი ბრაუზერის ნაკადიანი პარამეტრები

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

stream_maxrate 100 #ეს საშუალებას მისცემს რეალურ დროში სტრიმინგს, მაგრამ მოითხოვს მეტ გამტარობას და რესურსებს

framerate 60 #ეს საშუალებას მისცემს 60 კადრის გადაღებას წამში #რაც უფრო მაღალია ეს, მით უფრო ნელა ხდება ვიდეო დამუშავება

სიგანე 640 #ეს ცვლის ნაჩვენები სურათის სიგანეს

სიმაღლე 480 #ეს ცვლის ნაჩვენები სურათის სიმაღლეს

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

#ფოსტის ვიდეო პარამეტრები…/motion.conf

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

#წაშალე ";" სტრიქონის წინ, მძიმით კომენტარს აკეთებს ხაზიდან

on_event_start პითონი/home/pi/background/motionalert.py %f

on_movie_end პითონი/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'] = "მოძრაობა აღმოჩენილია"

body = 'მოძრაობა აღმოჩენილია. / n დრო: % s' % str (datetime.now ())

msg.attach (MIMEText (სხეული, 'ჩვეულებრივი'))

სერვერი = smtplib. SMTP ('smtp.gmail.com', 587)

server.starttls ()

server.login (fromaddr, "YOURPASSWORD")

text = msg.as_string ()

server.sendmail (fromaddr, toaddr, ტექსტი)

server.quit ()

ვიდეოს ელექტრონული ფოსტის მოძრაობა ვიდეოს შენახვისას:

#დაწყება homedircd- ზე

#შექმენი მოძრაობის ვიდეო პითონის სკრიპტები სუდო ნანო/სახლში/პპი/ფონი/მოძრაობა. py

იმპორტი smtplib

ელ.ფოსტისგან. MIMEMultipart იმპორტი MIMEMultipart

ელ.ფოსტისგან. MIMEText იმპორტი MIMEText

ელ.ფოსტისგან. MIMEBase იმპორტი MIMEBase

ელ.ფოსტის იმპორტის კოდირებისგან

fromaddr = "თქვენი ელექტრონული ფოსტა"

toaddr = "ელ.ფოსტის მისამართი, რომელსაც თქვენ აგზავნით"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

msg ['Subject'] = "მოძრავი კამერა გააქტიურებულია"

body = "მოძრაობის ვიდეო აღმოჩენილია"

msg.attach (MIMEText (სხეული, 'ჩვეულებრივი'))

იმპორტი os

rootpath = '/var/lib/motion'

ფაილების სია = [os.path.join (rootpath, f) for f in os.listdir (rootpath)]

filelist = [f for f ფაილების სიაში, თუ 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 f ფაილების სიაში, თუ 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.attach (ნაწილი)

სერვერი = smtplib. SMTP ('smtp.gmail.com', 587)

server.starttls ()

server.login (fromaddr, "YOUR PASSWORD")

text = msg.as_string ()

server.sendmail (fromaddr, toaddr, ტექსტი)

server.quit ()

ნაბიჯი 6: პრობლემების აღმოფხვრა და წყაროები

პრობლემების აღმოფხვრა და წყაროები
პრობლემების აღმოფხვრა და წყაროები

Დიაგნოსტიკა:

იმის გამო, რომ ამ პროექტს მრავალი ეტაპი აქვს, არის რამდენიმე წერტილი, როდესაც ყველაფერი შეიძლება არასწორად წავიდეს. ქვემოთ მოცემულია რამდენიმე შესაძლო შეცდომა, რომელიც შეიძლება მოხდეს და როგორ გამოვასწოროთ ისინი.

  • თქვენი პი -ის ელ.ფოსტის დაყენებისას, მისი ამჟამინდელი IP მისამართი, გადამწყვეტი მნიშვნელობა აქვს rc.local ფაილის რედაქტირებას, როგორც ეს ადრე იყო ნაჩვენები, რადგან ეს იძლევა მცირე შეფერხებას პროგრამის გადატვირთვის შემდეგ გააქტიურებამდე. წინააღმდეგ შემთხვევაში pi ჯერ არ იქნება დაკავშირებული wifi– სთან და ელ.ფოსტა არ გაიგზავნება.
  • 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 ფანჯარა:

გირჩევთ: