ዝርዝር ሁኔታ:
- አቅርቦቶች
- ደረጃ 1: ሃርድዌሩን ያሰባስቡ
- ደረጃ 2: የእርስዎ ፒ ከበይነመረቡ ጋር መገናኘቱን ያረጋግጡ
- ደረጃ 3 ካሜራውን ያዘጋጁ
- ደረጃ 4 Flask ን ይጫኑ
- ደረጃ 5 የቅጽ ክፍል ይፍጠሩ
- ደረጃ 6 የፍላሽ አብነት ይፍጠሩ
- ደረጃ 7 ፦ አብነቱን ይስጡ
- ደረጃ 8 የካሜራ ኦፕሬተር ክፍል ይፍጠሩ
- ደረጃ 9 የመዝገብ ሞጁሉን ይፍጠሩ
- ደረጃ 10 አገልጋዩን ያስጀምሩ
- ደረጃ 11: ይሞክሩት
ቪዲዮ: Raspberry Pi Security Camera: 11 ደረጃዎች (ከስዕሎች ጋር)
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:30
Raspberry Pi ን በመጠቀም IoT ን ፣ በእንቅስቃሴ ላይ የሚንቀሳቀስ የደህንነት ካሜራ እንዴት መፍጠር እንደሚቻል ይህ ደረጃ በደረጃ የሚያስተምር ነው። ተጠቃሚው የካሜራውን ትብነት እና የመቅጃ ጊዜ እንዲያስተካክል ፣ ቀረጻን እራስዎ እንዲጀምር/እንዲያቆም እና/ወይም በአከባቢው የሚቀመጥ ስዕል እንዲወስድ የሚያስችል የፍላሽ ድር አገልጋይ እና ቅጽ እንዴት እንደሚፈጥሩ ይማራሉ።
አቅርቦቶች
- Raspberry Pi 3
- ፒ ካሜራ
- PIR እንቅስቃሴ ዳሳሽ
- ኤስዲ ካርድ
- የኃይል ምንጭ
ደረጃ 1: ሃርድዌሩን ያሰባስቡ
ፒው ሲጠፋ ማይክሮ-ኤስዲ ካርዱን ወደ ፒ ውስጥ ያስገቡ። በ Pi ላይ የካሜራ ሞዱሉን ሪባን ገመድ ወደ ካሜራ ሞዱል ወደብ ያስገቡ። ከዚያ ፣ የ PRI እንቅስቃሴ መፈለጊያውን 3 ፒን (የተሰየመ VCC ፣ OUT እና GND) ከ Pi ጂፒኦ ፒኖች ጋር ያገናኙ። ቪሲሲውን ከ 5.5 ቪ ኃይል ፣ GND ን ከመሬት ፣ እና OUT ን በ Pi ላይ ለመሰካት 11 ን ያገናኙ።
ደረጃ 2: የእርስዎ ፒ ከበይነመረቡ ጋር መገናኘቱን ያረጋግጡ
አሁን Pi ን ከኃይል ምንጭ ጋር በማገናኘት ያብሩ እና የፒንግ ትዕዛዙን በመጠቀም ከበይነመረቡ ጋር መገናኘቱን ያረጋግጡ። የእርስዎን Pi እንዴት ከበይነመረቡ ጋር ማገናኘት እንደሚችሉ ካላወቁ እዚህ ጠቅ ያድርጉ።
sudo ping www.google.com
ስኬታማ ከሆንክ ፣ ውሂብ በ google እየተቀበለ መሆኑን ማየት አለብህ።
በተጨማሪም ፣ የአይፒ አድራሻዎን ለማየት ifconfig ን መጠቀም ይችላሉ።
sudo ifconfig
ደረጃ 3 ካሜራውን ያዘጋጁ
የውቅረት በይነገጽን ለመክፈት እና ካሜራውን በ “በይነገፅ አማራጮች” ውስጥ ለማንቃት የሚከተለውን ትእዛዝ ይጠቀሙ።
sudo raspi-config
ዳግም ከተነሳ በኋላ በትክክል መገናኘቱን ለማረጋገጥ የካሜራዎን ሁኔታ ማሳየት ይችላሉ።
vcgencmd get_camera
በመጨረሻም ፣ የፒካሜራ ሞዱሉን ይጫኑ።
ፒፓ ጫን picamera
ደረጃ 4 Flask ን ይጫኑ
ለፓይዘን ብልቃጡን እና ብልቃጡን የሚያርፍ ሞዱሉን ይጫኑ-
sudo apt-get install Python-dev Python-pip ን ይጫኑ
python -m pip install flask flask -restful
በመቀጠልም ፣ ቅጾችን ለመፍጠር የሚያገለግል የፓይዘን flask ሞዱልን እንጭናለን።
pip install flask-wtf
ደረጃ 5 የቅጽ ክፍል ይፍጠሩ
ሁሉንም ፋይሎችዎን ለማከማቸት iotProject የተባለ ማውጫ ያዘጋጁ።
sudo mkdir iotProject
“CamControl.py” የተባለ የፓይዘን ፋይል ይፍጠሩ።
sudo nano camControl.py
በዚህ ፋይል ውስጥ የጽሑፍ ሳጥኖች እና ለተጠቃሚው የካሜራ ቅንብሮችን ለመለወጥ ፣ ቀረጻን እራስዎ ለማስጀመር/ለማቆም እና ቪዲዮን ለመያዝ እንዲቻል የድር ቅጽን ለመፍጠር የሚያስችለንን የቅፅ ክፍላችን እንፈጥራለን።
ከ flask_wtf ማስመጣት FlaskFormfrom wtforms.validators ውሂብ ያስመጣሉ ከ wtforms ማስመጣት SubmitField ከ wtforms አስመጪ አረጋጋጮች ፣ IntegerField ፣ BooleanField ፣ SelectField
ክፍል camFrame (FlaskForm):
videoDuration = IntegerField ('የመቅጃ ጊዜ (በሰከንዶች)')
ትብነት = IntegerField ('የእንቅስቃሴ ትብነት (ክልል 2500-10000) n ቁጥሩ ከፍ ባለ መጠን ካሜራው ያነሰ ስሜታዊ ነው' ፣
validators = [validators. NumberRange (ደቂቃ = 2500 ፣ ቢበዛ = 10000 ፣ መልእክት = 'ከክልል ውጭ ዋጋ')])
አማራጮች = SelectField ('አማራጮች' ፣ ምርጫዎች = [('ምንም' ፣ 'ምንም እርምጃ')) ፣ ('ሪከርድ' ፣ 'ቀረጻ ጀምር') ፣ ('አቁም' ፣ 'ቀረጻን አቁም') ፣
('ስዕል' ፣ 'ፎቶ አንሳ')])
submit = SubmitField ('አስገባ')
ደረጃ 6 የፍላሽ አብነት ይፍጠሩ
የተጠቃሚ በይነገጽ ለመፍጠር ፣ እርስዎ የፈጠሩትን ቅጽ የሚጠቀም የፍላሽ አብነት መንደፍ አለብዎት። ይህ ፋይል በኤችቲኤምኤል ውስጥ ይፃፋል ፣ እና ከእርስዎ ቅጽ ጋር በተመሳሳይ ማውጫ ውስጥ መሆን ያለበት አብነቶች ተብሎ በሚጠራ አቃፊ ውስጥ ይቀመጣል።
በአብነቶችዎ አቃፊ ውስጥ ፣ index.html የሚባል ፋይል ይፍጠሩ። በዚህ ፋይል ውስጥ ፣ ከላይ የሚታየውን ኮድ መድገም።
ደረጃ 7 ፦ አብነቱን ይስጡ
አብነቱን የሚያቀርብ ፋይል ለመፍጠር ጊዜው አሁን ነው። AppCam.py የሚባል ፋይል ይፍጠሩ (ከአብነቶች አቃፊ ውስጥ ከአሁን በኋላ አለመሆንዎን ያረጋግጡ)። በአብነት ውስጥ ጥቅም ላይ የዋለ ማንኛውም ተለዋዋጭ ይዘት በ ‹render_template ()› ጥሪ ውስጥ እንደ ስሙ ክርክር ሆኖ ጥቅም ላይ መዋል አለበት።
ከካሜራ ማስመጣት ከ flask ማስመጣት Flask ፣ render_template ፣ ጥያቄ ፣ ምላሽ ከ flask_restful ማስመጣት ሀብት ፣ ኤፒአይ ፣ እንደገና መመርመር
መተግበሪያ = ብልጭታ (_ ስም_)
app.config ['SECRET_KEY'] = '13542' api = Api (መተግበሪያ)
parser = reqparse. RequestParser ()
parser. ።
የክፍል ዝመና (ግብዓት)
#ስቱፍ ለ wtforms def post (ራስን): args = parser.parse_args () #rc.input (args ['dur'] ፣ args ['sens'] ፣ args ['opt']) #ወደዚያ የጽሑፍ ፋይል ይጻፉ በትይዩ ካሜራ ውስጥ እያሄደ ካለው ካሜራ ጋር ይነጋገራል SetetFile = open ("cameraSettings.txt", 'w') cameraSettingsFile.write (args ['dur'] + '\ n') #dur dur cameraSettingsFile.write (args ['sens'] + '\ n') #የስሜት ካሜራ ይፃፉ SettingsFile.write (args ['opt'] + '\ n') #opt camera cameraSettingsFile.close () ተመለስ {'dur': args ['dur'] ፣ 'sens': args ['sense'], 'opt': args ['opt']}
@app.route ('/' ፣ ዘዴዎች = ['GET' ፣ 'POST'])
def index (): "" "" ተቆጣጣሪ መነሻ ገጽ "" "ቅጽ = camControl.camFrame () #ይህ ቅጽ request.method == 'POST' ከሆነ ማተም (request.form) args = [i for in i in request.form.items ()] #rc.input (int (args [0] [1]) ፣ int (args [1] [1]) ፣ args [2] [1]) cameraSettingsFile = open ("cameraSettings.txt "፣ 'w') cameraSettingsFile.write (args [0] [1] + '\ n') #ካሜራ ይፃፉ SettingsFile.write (args [1] [1] + '\ n') #sens sens cameraSettingsFile.write (args [2] [1] + '\ n') #opt camera cameraSettingsFile.close () imageDictionary = {"filename": "image.jpg"} render_template ('index.html' ፣ form = form, image = imageDictionary) ይፃፉ)
api.add_resource (አዘምን ፣ '/አዘምን/')
_name_ == '_main_' ከሆነ ፦
app.run (አስተናጋጅ = '0.0.0.0' ፣ ወደብ = 80 ፣ አርም = እውነት ፣ ክር = እውነት)
ደረጃ 8 የካሜራ ኦፕሬተር ክፍል ይፍጠሩ
አሁን እኛ camOperator.py የተባለ ፋይል መፍጠር እንፈልጋለን። በእሱ ውስጥ ቀድሞውኑ የፒካሜራ ተግባራትን በመጠቀም ካሜራውን በሚሠሩበት ዘዴዎች የካሜራ ክፍል እናደርጋለን። የካሜራውን እና የእንቅስቃሴ ዳሳሹን ተግባር የምናጣምርበት በሚቀጥለው ደረጃ የዚህን ነገር ምሳሌ እንጠቀማለን።
በዚህ ክፍል ውስጥ የተገለጹት ዘዴዎች የተጠቃሚው ግቤት ከሌለ ለእነዚህ ተለዋዋጮች ነባሪ እሴቶችን በመመስረት ተጠቃሚው የሚያቀርባቸውን ትብነት እና የቆይታ ግብዓቶች በመጠቀም በደህንነት ካሜራ ላይ የ “መዝገብ” ቅንብሮችን ይለውጣሉ።
RPi. GPIO ን እንደ GPIO ያስመጡ
GPIO.setmode (GPIO. BOARD)
GPIO.setup (11 ፣ GPIO. IN)
መለየት = 0
የክፍል ካሜራ ኦፕሬተር
def _init _ (ራስን) ፦
#አስተማሪ self.cam = picamera. PiCamera () self.data = self.dur = 10 self.sens = 2500 self.opt = "none"
def መዝገብ (ራስን ፣ ዱ)
በተቆጣጣሪው ቪድዮ ስም = str (datetime.now ()) ቪድዮ ስም = ቪዲዮName.replace (':', ') ቪድዮ ስም = ቪድዮ ስም / n ቦታ (' '' '')) የራስ። ካሜራ። '/home/pi/iotProject/videos/' + videoName + '.h264') time.sleep (dur) self.cam.stop_recording ()
የመከላከያ አሠራር (ራስን ፣ ዱ ፣ ስሜት)
አንድ ሰው በአቅራቢያ ያለ መሆኑን ለማየት ሁል ጊዜ የሚፈትሽ #ዋና የካሜራ ሥራ ፣ አንድ ሰው ለረጅም ጊዜ ከቆየ ፣ መቅዳት እንጀምራለን! ግሎባል ለይቶ i = GPIO.input (11) i == 0: #ከእንቅስቃሴ ዳሳሽ ሲወጣ LOW መለየት = 0 ጊዜ. እንቅልፍ (0.1) elif i == 1: #ከእንቅስቃሴ ዳሳሽ የሚወጣው ከፍተኛ ህትመት ነው (" እንቅስቃሴ ተገኝቷል " +str (አግኝ)) ከተገኘ> = sens*10: self.record (dur) print (" RECORDED ") detect = 0 time. እንቅልፍ (0.1) detect += 1
ደረጃ 9 የመዝገብ ሞጁሉን ይፍጠሩ
ለዚህ ፕሮጀክት የሚያስፈልገው የመጨረሻው ፕሮግራም rec.py በሚባል ፋይል ውስጥ ይፃፋል። ይህ ፋይል ለካሜራው መቼ እንደሚመዘገብ ፣ ለምን ያህል ጊዜ እንደሚመዘገብ እና መቼ/ፎቶግራፍ ለማንሳት/ለ/ለካሜራው ይነግረዋል። ለጽሑፍ ፋይሉ ከደረጃ 5 የተጻፈውን የተጠቃሚ ውሂብ በቋሚነት በመፈተሽ እና በማንበብ ይህንን ያደርጋል። ፋይሉ ከተዘመነ የስሜታዊነት እና የቆይታ እሴቶችን በዚህ መሠረት ያስተካክላል ከዚያም ቀረፃ ወይም ስዕል ከተነሳ ይዘቱን ያስቀምጣል ፒ. ፣ በ.h264 ወይም-j.webp
'' በአገልጋዩ ቅጾች የተቀመጡ የቁጥጥር ተለዋዋጮችን ከንባብ አገልጋዩ ጋር በትይዩ ይሠራል። ቅጾቹ ከገቡ በኋላ የአገልጋዩ መቆጣጠሪያ ተለዋዋጮች በተለየ ፋይል ውስጥ ይቀመጣሉ። የሬክ ሞጁል እነዚህን ተለዋዋጮች ያነባል እና ካሜራውን በእነሱ ላይ ያዘምናል። '' 'camOperator ን ከውጪ ጊዜ ማስመጣት datetime የማስመጣት ጊዜ
rc = camOperator.cameraOperator ()
cameraSettingsFile = open ("cameraSettings.txt", 'w') cameraSettingsFile.close () #እዚህ ፣ ዋናው ሉፕ ከመሮጡ በፊት በፋይሉ ውስጥ ያሉትን ይዘቶች ለመሰረዝ በፅሁፍ ሁነታ እንከፍተዋለን እና እንዘጋለን።
#ሰዎች በአቅራቢያ መሆናቸውን ለማየት የሚከታተል ቀጣይ ዙር። እነሱ ከሆኑ ፣ ከዚያ
#ካሜራ መቅዳት ይጀምራል። ይህ ተግባር ይህንን ካሜራ ከሚቆጣጠረው ብልቃጥ #አገልጋይ ጋር በፓራሌል ይሠራል። recordingInProcess = ሐሰት እያለ እውነት ነው #ከሆነ/ይፈትሹ/ይመዝገቡ (recordInProcess == ሐሰት): rc.operation (rc.dur, rc.sens) #በአገልጋዩ ካሜራ ላይ በመመርኮዝ የካሜራውን ቅንብሮች ይለውጡ SettingsFile = open ("cameraSettings.txt", 'r') settingNum = 0 በካሜራ ውስጥ ለማቀናበር SetetFile.readlines (): ቅንብር ከሆነ == 0: #ለውጥ ለውጥ rc.dur = int (ቅንብር) elif settingNum == 1: #የስሜት ለውጥ rc.sens = int (ቅንብር)) elif settingNum == 2: #የድርጊት ለውጥ rc.opt = setting settingNum += 1 cameraSettingsFile.close ()
#አንድ ድርጊት ይፈጽሙ
# if rc.opt == "none": # rc.opt == "rec / n" እና recordInProcess == ሐሰት: ህትመት ("የመዝገቡ ትዕዛዙን ከመቆጣጠሪያ") # የአሁኑን ቪድዮ ስም መሰረት በማድረግ ለቪዲዮ ስም ይፍጠሩ = "snappedVid _"+str (datetime.now ()) videoName = videoName.replace (':', ') videoName = videoName.replace ('. ',') rc.cam.start_recording ('/home/pi/iotProject) /videos/' + videoName +'.h264 ') recordingInProcess = True elif rc.opt == "stop / n" and recordingInProcess == True: print ("record command from ተቆጣጣሪ") rc.cam.stop_recording () recordingInProcess = የውሸት ካሜራ ቅንጅቶች ፋይል = ክፍት ("cameraSettings.txt" ፣ 'w') cameraSettingsFile.write (str (rc.dur)+'\ n') cameraSettingsFile.write (str (rc.sens)+'\ n') cameraSettingsFile። ጻፍ ("የለም / n") rc.opt = "none / n" elif rc.opt == "pic / n" እና recordInProcess == ሐሰት: ማተም ("ከመቆጣጠሪያው የስዕል ትዕዛዙን ያንሱ") pictureName = "snappedPic_ "+str (datetime.now ()) pictureName = pictureName.replace (':', ') pictureName = pictureName.replace ('. ',') rc.cam.st art_preview () time.sleep (5) rc.cam.capture ('pictures/' + pictureName + '.jpg') rc.cam.stop_preview () cameraSettingsFile = open ("cameraSettings.txt", 'w') cameraSettingsFile. ጻፍ (str (rc.dur)+'\ n') cameraSettingsFile.write (str (rc.sens)+'\ n') cameraSettingsFile.write ("none / n") rc.opt = "none / n"
ደረጃ 10 አገልጋዩን ያስጀምሩ
SSH ን ወደ ፒ እና ከላይ የሚታየውን የትእዛዝ መስመር በመጠቀም አገልጋዩን ያስጀምሩ።
ደረጃ 11: ይሞክሩት
የአይፒ አድራሻውን በመጠቀም ድረ -ገጹን ይድረሱ እና ካሜራውን በርቀት መቆጣጠር መቻል አለብዎት!
የሚመከር:
DIY WiFi Smart Security Light በ Sheሊ 1: 6 ደረጃዎች (ከስዕሎች ጋር)
DIY WiFi Smart Security Light ከ Shelly 1 ጋር: ይህ አስተማሪ ከllyሊ Sheሊ 1 ዘመናዊ ቅብብልን በመጠቀም የ DIY ዘመናዊ የደህንነት ብርሃን መፍጠርን ይመለከታል። የደህንነት ብርሃን ብልጥ ማድረጉ በሚነቃበት ጊዜ እና ለምን ያህል ጊዜ እንደሚቆይ የበለጠ ብዙ ቁጥጥር እንዲኖርዎት ያስችልዎታል። ተዋናይ ሊሆን ይችላል
የበይነመረቡ በጣም ርካሽ የሞተር እንቅስቃሴ ፣ በቤል ድራይቭ ፣ 48”DIY CAMERA SLIDER: 12 ደረጃዎች (ከስዕሎች ጋር)
የበይነመረቡ በጣም ርካሽ የሞተር ፣ የባሌ ድራይቭ ፣ 48 "DIY CAMERA SLIDER: Parallax Printing ለሞተር ፓራላክስ ፎቶግራፍ ርካሽ መፍትሄን ያቀርባል። ማስታወሻ ይህ መመሪያ ከተፃፈ ጀምሮ በርካታ ዓመታት ያስቆጠረ ሲሆን የስላይድ ማምረቻ ኦፔቴካ ንድፉን ቀይሮታል። ኮርሱን በማስወገድ መድረክ
ያ እጅ ነው? (Raspberry Pi Camera + Neural Network) ክፍል 1/2: 16 ደረጃዎች (ከስዕሎች ጋር)
ያ እጅ ነው? (Raspberry Pi Camera + Neural Network) ክፍል 1/2: ከጥቂት ቀናት በፊት በጂም ውስጥ የቀኝ እጄን አንጓ አቆስዬ ነበር። ከዚያ በኋላ የኮምፒተርን አይጤን በተጠቀምኩ ቁጥር ከፍ ባለ የእጅ አንጓ አንግል ምክንያት ብዙ ሥቃይ ያስከትላል። ያኔ እኔን ሲመታኝ ማንኛውንም ገጽታ ወደ ትራክ መለወጥ ብንችል ጥሩ አይሆንም
Raspberry Pi Laser Security System: 13 ደረጃዎች (ከስዕሎች ጋር)
Raspberry Pi Laser Security System: የእኔን አስተማሪ በመፈተሽ አመሰግናለሁ። በዚህ ሊታዘዝ በሚችልበት ጊዜ ፈቃድዎ በቪዲዮው ውስጥ ከሚታየው የኢሜል ማስጠንቀቂያ ተግባር ጋር የ raspberry pi laser tripwire ስርዓትን ይገነባል። ይህንን አስተማሪ ለማጠናቀቅ ፍላጎትዎ ቤተሰብ መሆን ያስፈልግዎታል
UNICORN CAMERA - Raspberry Pi Zero W NoIR 8MP ካሜራ ግንባታ 7 ደረጃዎች (ከስዕሎች ጋር)
UNICORN CAMERA - Raspberry Pi Zero W NoIR 8MP ካሜራ ግንባታ Pi Zero W NoIR 8MP ካሜራ ግንባታ ይህ ኢንፍራሬድ ካሜራ ወይም በእውነት አሪፍ ተንቀሳቃሽ ተንቀሳቃሽ ካሜራ ወይም ተንቀሳቃሽ Raspberry Pi ካሜራ የሚፈልግ ወይም ለማዝናናት የሚፈልግ ለማገዝ የተፈጠረ ነው . ይህ በጣም ተመጣጣኝ እና የተዋቀረ ነው