![Kamera e sigurisë Raspberry Pi: 11 hapa (me fotografi) Kamera e sigurisë Raspberry Pi: 11 hapa (me fotografi)](https://i.howwhatproduce.com/images/005/image-14465-j.webp)
Përmbajtje:
- Furnizimet
- Hapi 1: Mblidhni pajisjen
- Hapi 2: Sigurohuni që Pi juaj të jetë i lidhur me internetin
- Hapi 3: Vendosni kamerën
- Hapi 4: Instaloni Flask
- Hapi 5: Krijoni një klasë formash
- Hapi 6: Krijoni një model në shishe
- Hapi 7: Bëni modelin
- Hapi 8: Krijoni një klasë të operatorit të kamerës
- Hapi 9: Krijoni modulin e regjistrimit
- Hapi 10: Filloni serverin
- Hapi 11: Provojeni
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-23 15:10
![Kamera e sigurisë Raspberry Pi Kamera e sigurisë Raspberry Pi](https://i.howwhatproduce.com/images/005/image-14465-1-j.webp)
Ky është një udhëzues hap pas hapi se si të krijoni një kamerë sigurie të IoT, të aktivizuar me lëvizje duke përdorur një Raspberry Pi. Do të mësoni se si të krijoni një web server dhe formë që lejon përdoruesin të rregullojë ndjeshmërinë e kamerës dhe kohën e regjistrimit, të fillojë/ndalojë manualisht një regjistrim dhe/ose të bëjë një fotografi që do të ruhet në nivel lokal.
Furnizimet
- Mjedër Pi 3
- Kamera Pi
- Sensori i lëvizjes PIR
- kartë SD
- Burimi i energjisë
Hapi 1: Mblidhni pajisjen
![Mblidhni harduerin Mblidhni harduerin](https://i.howwhatproduce.com/images/005/image-14465-2-j.webp)
![Mblidhni harduerin Mblidhni harduerin](https://i.howwhatproduce.com/images/005/image-14465-3-j.webp)
![Mblidhni harduerin Mblidhni harduerin](https://i.howwhatproduce.com/images/005/image-14465-4-j.webp)
![Mblidhni harduerin Mblidhni harduerin](https://i.howwhatproduce.com/images/005/image-14465-5-j.webp)
Ndërsa Pi është i fikur, futni kartën micro-SD në Pi. Futni kabllon e shiritit të modulit të kamerës në portën e modulit të kamerës në Pi. Pastaj, lidhni 3 kunjat (të etiketuar VCC, OUT dhe GND) të detektorit të lëvizjes PRI me kunjat GPIO të Pi. Lidhni VCC në fuqinë 5.5V, GND në tokë dhe OUT në pin 11 në Pi.
Hapi 2: Sigurohuni që Pi juaj të jetë i lidhur me internetin
![Sigurohuni që Pi juaj të jetë i lidhur me internetin Sigurohuni që Pi juaj të jetë i lidhur me internetin](https://i.howwhatproduce.com/images/005/image-14465-6-j.webp)
Tani, ndizni Pi duke e lidhur atë me një burim energjie dhe verifikoni që jeni lidhur me internetin duke përdorur komandën ping. Nëse nuk dini si ta lidhni Pi -në tuaj në internet, klikoni këtu.
sudo ping www.google.com
Nëse jeni të suksesshëm, duhet të shihni që të dhënat po merren nga google.
Për më tepër, mund të përdorni ifconfig për të parë adresën tuaj IP.
sudo ifconfig
Hapi 3: Vendosni kamerën
Përdorni komandën e mëposhtme për të hapur ndërfaqen e konfigurimit dhe aktivizoni kamerën në "opsionet e ndërlidhjes".
sudo raspi-config
Pas rindezjes, mund të shfaqni statusin e kamerës tuaj për të siguruar që ajo është e lidhur siç duhet.
vcgencmd get_camera
Së fundi, instaloni modulin e fotografisë.
pip instaloni picamera
Hapi 4: Instaloni Flask
Instaloni modulin qetësues dhe balonë për Python:
sudo apt-get instaloni python-dev python-pip
python -m pip install flask flask -restful
Tjetra, ne do të instalojmë një modul balte python të përdorur për krijimin e formave.
pip instaloni balonë-wtf
Hapi 5: Krijoni një klasë formash
Krijoni një drejtori të quajtur iotProject për të ruajtur të gjithë skedarët tuaj.
sudo mkdir iotProjekt
Krijoni një skedar python të quajtur "camControl.py".
sudo nano camControl.py
Në këtë skedar ne do të krijojmë klasën tonë të formave, e cila na lejon të krijojmë një formë në internet me kuti teksti dhe një menu zbritëse që përdoruesi të jetë në gjendje të ndryshojë cilësimet e kamerës, të fillojë/ndalojë manualisht një regjistrim dhe të kapë video.
nga flask_wtf import FlaskFormfrom wtforms.validators import Data Të kërkuara nga wtforms import SubmitField from wtforms import validators, IntegerField, BooleanField, SelectField
klasa camFrame (FlaskForm):
videoDuration = IntegerField ('Koha e Regjistrimit (në sekonda)')
ndjeshmëri = IntegerField ("Ndjeshmëria në lëvizje (diapazoni 2500-10000) nSi më i lartë numri, aq më pak i ndjeshëm është kamera ', validuesit = [validators. NumberRange (min = 2500, max = 10000, mesazh = 'Vlera jashtë rrezes')])
opsionet = SelectField ("Opsionet", zgjedhjet = [("asnjë", "Asnjë veprim"), ("rec", "Fillo regjistrimin"), ("ndalo", "Ndalo regjistrimin"), ('foto', 'Bëj fotografi')])
paraqit = SubmitField ('Paraqit')
Hapi 6: Krijoni një model në shishe
![Krijoni një model shablloni Krijoni një model shablloni](https://i.howwhatproduce.com/images/005/image-14465-7-j.webp)
Për të krijuar ndërfaqen e përdoruesit, duhet të krijoni një model Flask i cili përdor formën që sapo keni krijuar. Ky skedar do të shkruhet në html dhe do të ruhet në një dosje të quajtur shabllone, të cilat duhet të jenë në të njëjtën drejtori me formën tuaj.
Brenda dosjes tuaj të modeleve, krijoni një skedar të quajtur index.html. Brenda këtij skedari, kopjoni kodin e treguar më lart.
Hapi 7: Bëni modelin
Tani është koha për të krijuar një skedar që jep modelin. Krijoni një skedar të quajtur appCam.py (sigurohuni që nuk jeni më në dosjen e modeleve). Çdo përmbajtje dinamike e përdorur në shabllon duhet të përdoret si një argument i emërtuar në thirrjen për render_template ().
import camControlfrom balonë import Flask, render_template, kërkesë, Përgjigje nga flak_restful import Resource, Api, reqparse
aplikacion = Flask (_ emri_)
app.config ['SECRET_KEY'] = '13542' api = Api (aplikacion)
parser = reqparse. RequestParser ()
parser.add_argument ('dur', type = int, help = 'Kohëzgjatja e videos kur zbulohet lëvizja') parser.add_argument ('sens', type = int, help = 'Niveli i lëvizjes i kërkuar për të shkaktuar një regjistrim') analizues.add_argument ('opt', type = str, help = 'Regjistroni manualisht një video ose kapni një imazh')
Përditësimi i klasës (Burimi):
#Stuff for wtforms def post (self): args = parser.parse_args () #rc.input (args ['dur'], args ['sens'], args ['opt']) #shkruani skedarin tekst që bisedon me kamerën që funksionon paralelisht me cameraSettingsFile = hapur ("cameraSettings.txt", 'w') cameraSettingsFile.write (args ['dur'] + '\ n') #write dur cameraSettingsFile.write (args ['sens'] + '\ n') #write sens cameraSettingsFile.write (args ['opt'] + '\ n') #write opt cameraSettingsFile.close () return {'dur': args ['dur'], 'sens': args ['sens'], 'opt': args ['opt']}
@app.route ('/', metodat = ['MERR', 'POST'])
def index (): "" "Faqja kryesore e kontrolluesit" "" form = camControl.camFrame () #kjo është një formë nëse kërkohet.metoda == 'POST': print (request.form) args = [i për i në kërkesë.form.items ()] #rc.input (int (args [0] [1]), int (args [1] [1]), args [2] [1]) cameraSettingsFile = hapur ("cameraSettings.txt ", 'w') cameraSettingsFile.write (args [0] [1] + '\ n') #write dur cameraSettingsFile.write (args [1] [1] + '\ n') #write sens cameraSettingsFile.write (args [2] [1] + '\ n') #shkruaj opt cameraSettingsFile.close () imageDictionary = {"filename": "image.jpg"} ktheje render_template ('index.html', formë = formë, imazh = imageDictionary)
api.add_resource (Update, '/update/')
nëse _name_ == '_majt_':
app.run (host = '0.0.0.0', port = 80, debug = E vërtetë, e filetuar = E vërtetë)
Hapi 8: Krijoni një klasë të operatorit të kamerës
Tani duam të krijojmë një skedar të quajtur camOperator.py. Në të do të bëjmë një klasë kamerash me metoda për të operuar kamerën, duke përdorur funksionet tashmë të disponueshme PiCamera. Ne do të përdorim një shembull të këtij objekti në hapin tjetër ku do të kombinojmë funksionalitetin e kamerës dhe sensorin e lëvizjes.
Metodat e përcaktuara në këtë klasë ndryshojnë cilësimet e "regjistrimit" në kamerën e sigurisë duke përdorur inputet e ndjeshmërisë dhe kohëzgjatjes që ofron përdoruesi, duke vendosur vlerat e paracaktuara për këto ndryshore nëse hyrja e përdoruesit nuk është e pranishme.
importo RPi. GPIO si GPIOimporto kohë importo picamera nga dataetime importo dataetime
GPIO.setmode (GPIO. BOARD)
GPIO.setup (11, GPIO. IN)
zbulo = 0
kamera e klasësOperatori:
def _init _ (vetja):
#constructor self.cam = picamera. PiCamera () self.data = self.dur = 10 self.sens = 2500 self.opt = "asnjë"
def rekord (vet, dur):
#Regjistron për kohëzgjatjen e caktuar të vendosur nga kontrolluesi videoName = str (datetime.now ()) videoName = videoName.replace (':', ') videoName = videoName.replace ('. ',') Self.cam.start_recording ('/home/pi/iotProject/videos/' + VideoName + '.h264') time.sleep (dur) self.cam.stop_recording ()
def operacion (vet, dur, sens):
#Funksionimi kryesor i kamerës i cili kontrollon vazhdimisht për të parë nëse një njeri është afër, nëse një njeri qëndron përreth mjaft kohë, ne fillojmë të regjistrojmë! zbulimi global i = GPIO.input (11) nëse i == 0: #Kur dalja nga sensori i lëvizjes është LOW zbulo = 0 kohë. gjumë (0.1) elif i == 1: #Kur dalja nga sensori i lëvizjes është shtypje e lartë (" lëvizja e zbuluar " +str (zbulo)) nëse zbulohet> = sens*10: self.record (dur) print (" REGJISTRUAR ") zbulo = 0 kohë. gjumi (0.1) zbulon += 1
Hapi 9: Krijoni modulin e regjistrimit
Programi i fundit i nevojshëm për këtë projekt do të shkruhet në një skedar të quajtur rec.py. Ky skedar i tregon kamerës kur të regjistrojë, sa kohë të regjistrojë dhe nëse/kur të bëjë një fotografi. E bën këtë duke kontrolluar dhe lexuar vazhdimisht të dhënat e përdoruesit të shkruara në skedarin tekst nga hapi 5. Nëse skedari është azhurnuar, ai rregullon vlerat e ndjeshmërisë dhe kohëzgjatjes në përputhje me rrethanat dhe më pas, nëse merret një regjistrim ose fotografi, ruan përmbajtjen në pi, ose në një format skedari.h264 ose.jpg.
'' 'Shkon paralelisht me serverin e shisheve, duke lexuar variablat e kontrollit të vendosur nga format e serverit. Variablat e kontrollit të serverit vendosen në një skedar të veçantë pasi të dorëzohen format. Moduli rec i lexon këto ndryshore dhe përditëson kamerën bazuar në to. '' 'import camOperator nga dataetime import dataetime kohë importi
rc = camOperator.cameraOperator ()
cameraSettingsFile = hapur ("cameraSettings.txt", 'w') cameraSettingsFile.close () #këtu, ne hapim dhe mbyllim në modalitetin e shkrimit në mënyrë që të fshijmë përmbajtjen brenda skedarit para se të funksionojë laku kryesor
#Një lak i vazhdueshëm i cili shikon për të parë nëse njerëzit janë afër. Nëse janë, atëherë
#kamera fillon regjistrimin. Ky funksion funksionon paralelisht me servisin #balonë që kontrollon këtë aparat fotografik. recordingInProcess = E rreme ndërsa E vërtetë: #kontrolloni/regjistroni nëse (regjistrimiInProcess == False): rc.operation (rc.dur, rc.sens) #ndryshoni cilësimet e kamerës bazuar në serverin cameraSettingsFile = hapur ("cameraSettings.txt", 'r') settingNum = 0 për vendosjen në cameraSettingsFile.readlines (): nëse settingNum == 0: #Ndryshimi i kohëzgjatjes rc.dur = int (vendosja) elif settingNum == 1: #Ndryshimi i ndjeshmërisë rc.sens = int (vendosja) elif settingNum == 2: #Ndryshimi i veprimit rc.opt = vendosja e cilësimitNum += 1 kameraSettingsFile.close ()
#ekzekutoni një veprim
# nëse rc.opt == "asnjë": # vazhdoni nëse rc.opt == "rec / n" dhe regjistrimiInProcess == E rreme: print ("Ekzekutimi i komandës së regjistrimit nga kontrolluesi") #Gjeneroni emrin për videon bazuar në videon e emrit aktual = "snappedVid _"+str (datetime.now ()) videoName = videoName.replace (':', ') videoName = videoName.replace ('. ',') rc.cam.start_recording ('/home/pi/iotProject /videos/' + VideoName +'.h264 ') recordingInProcess = E vërtetë elif rc.opt == "stop / n" dhe recordingInProcess == E vërtetë: print ("Ndalimi i komandës së regjistrimit nga kontrolluesi") rc.cam.stop_recording () recordingInProcess = CameraSettingsFile e rreme = e hapur ("cameraSettings.txt", 'w') cameraSettingsFile.write (str (rc.dur)+'\ n') cameraSettingsFile.write (str (rc.sens)+'\ n') cameraSettingsFile shkruaj ("asnjë / n") rc.opt = "asnjë / n" elif rc.opt == "foto / n" dhe regjistrimInProcess == E rreme: print ("Shkrep një komandë fotografie nga kontrolluesi") fotoName = "snappedPic_ "+str (dataetime.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. shkruaj (str (rc.dur)+'\ n') cameraSettingsFile.write (str (rc.sens)+'\ n') cameraSettingsFile.write ("none / n") rc.opt = "none / n"
Hapi 10: Filloni serverin
![Filloni Serverin Filloni Serverin](https://i.howwhatproduce.com/images/005/image-14465-8-j.webp)
SSH në pi dhe filloni serverin duke përdorur vijën e komandës të treguar më sipër.
Hapi 11: Provojeni
![PROVOJE! PROVOJE!](https://i.howwhatproduce.com/images/005/image-14465-9-j.webp)
![PROVOJE! PROVOJE!](https://i.howwhatproduce.com/images/005/image-14465-10-j.webp)
Hyni në faqen në internet duke përdorur adresën IP dhe duhet të jeni në gjendje të kontrolloni kamerën nga distanca!
Recommended:
Kamera e Sigurisë Raven Pi: 7 hapa (me fotografi)
![Kamera e Sigurisë Raven Pi: 7 hapa (me fotografi) Kamera e Sigurisë Raven Pi: 7 hapa (me fotografi)](https://i.howwhatproduce.com/images/002/image-3994-j.webp)
Kamera e Sigurisë Raven Pi: Ky korb plastik po shijon një jetë të re të mëvonshme si një aparat fotografik praktik por i frikshëm, Raven Pi. Ajo ka një Raspberry Pi në barkun e saj dhe një Kamera Pi të ngulitur në qafën e saj, duke kapur video HD sa herë që zbulohet lëvizje. Në të njëjtën çast është
Sistemi i Sigurisë së Sigurisë së Grave me një Prekje: 3 Hapa
![Sistemi i Sigurisë së Sigurisë së Grave me një Prekje: 3 Hapa Sistemi i Sigurisë së Sigurisë së Grave me një Prekje: 3 Hapa](https://i.howwhatproduce.com/images/003/image-7133-2-j.webp)
Sistemi i Sigurisë së Sigurisë së Grave me një Prekje: Alarm me një prekje Sistemi i sigurisë së Grave duke përdorur mikrokontrollues 8051Në botën e sotme Siguria e Grave është Çështja më e Rëndësishme në Vetë Vend. Sot gratë ngacmohen dhe shqetësohen dhe ndonjëherë kur nevojitet ndihmë urgjente. Nuk ka lokacion të kërkuar
Kamera e Sigurisë së Vizionit të natës me burim të hapur DIY profesional: 10 hapa (me fotografi)
![Kamera e Sigurisë së Vizionit të natës me burim të hapur DIY profesional: 10 hapa (me fotografi) Kamera e Sigurisë së Vizionit të natës me burim të hapur DIY profesional: 10 hapa (me fotografi)](https://i.howwhatproduce.com/images/006/image-16606-12-j.webp)
Kamera e Sigurisë e Vizionit të Natës me Burim të Hapur DIY: Në këtë tutorial të ri, ne së bashku do të bëjmë aparatin tonë të mbikqyrjes me burim të hapur Raspberry Pi. Po, ne po flasim këtu për një aparat të vërtetë mbikëqyrje në natyrë me burim të hapur, të aftë për shikimin e natës dhe zbulimin e lëvizjes, të gjithë të lidhur me Jeed -in tonë
Kamera e sigurisë WoodThing IOT: 8 hapa (me fotografi)
![Kamera e sigurisë WoodThing IOT: 8 hapa (me fotografi) Kamera e sigurisë WoodThing IOT: 8 hapa (me fotografi)](https://i.howwhatproduce.com/images/001/image-2314-30-j.webp)
Kamera e Sigurisë WoodThing IOT: Kjo është një kamerë IP e fuqishme e bazuar në Raspberry PI. Ai funksionon motionEyeOS, kështu që mund të përdoret për të menaxhuar kamera të shumta IP të largëta, si dhe për t'ju lejuar të bashkëngjitni deri në katër kamerë shtesë me kosto të ulët USB. Karakteristikat: Mundësuar nga USB, ndijimi i lëvizjes me s
Kamera e Sigurisë e Bibliotekës Pi: 3 hapa (me fotografi)
![Kamera e Sigurisë e Bibliotekës Pi: 3 hapa (me fotografi) Kamera e Sigurisë e Bibliotekës Pi: 3 hapa (me fotografi)](https://i.howwhatproduce.com/images/002/image-5933-35-j.webp)
Kamera e Sigurisë e Bibliotekës Pi: Ky është një kuti e vjetër e Bibliotekës VHS që tani po siguron një shtëpi të përsosur për një kamerë sigurie Raspberry Pi. Rasti përmban një Pi Zero dhe kamera shikon përmes shtyllës kurrizore të librit të rremë. Buildshtë një ndërtim vërtet i thjeshtë me një pamje të botës së vjetër