Sisukord:
- Tarvikud
- Samm: riistvara kokkupanek
- Samm: veenduge, et teie Pi oleks Internetiga ühendatud
- Samm: seadistage kaamera
- Samm: paigaldage kolb
- Samm: looge vormiklass
- 6. samm: looge kolvimall
- Samm 7: Malli renderdamine
- 8. samm: looge kaamera operaatoriklass
- 9. samm: looge salvestusmoodul
- Samm: käivitage server
- 11. samm: proovige seda teha
Video: Raspberry Pi turvakaamera: 11 sammu (koos piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
See on samm -sammult juhendatav, kuidas Raspberry Pi abil luua IoT, liikumisega aktiveeritud turvakaamera. Õpid, kuidas luua kolbi veebiserver ja vorm, mis võimaldab kasutajal reguleerida kaamera tundlikkust ja salvestusaega, käsitsi salvestust alustada/peatada ja/või teha pilti, mis salvestatakse kohapeal.
Tarvikud
- Vaarika Pi 3
- Pi kaamera
- PIR liikumisandur
- SD -kaart
- Energiaallikas
Samm: riistvara kokkupanek
Kui Pi on välja lülitatud, sisestage mikro-SD-kaart Pi-sse. Sisestage kaameramooduli lintkaabel Pi kaameramooduli porti. Seejärel ühendage PRI liikumisanduri 3 tihvti (märgistusega VCC, OUT ja GND) Pi GPIO tihvtidega. Ühendage VCC 5,5 V toiteallikaga, GND maandusega ja OUT pistikuga 11.
Samm: veenduge, et teie Pi oleks Internetiga ühendatud
Nüüd lülitage Pi sisse, ühendades selle toiteallikaga ja veenduge, et olete ping -käsuga Interneti -ühenduse loonud. Kui te ei tea, kuidas oma Pi Internetti ühendada, klõpsake siin.
sudo ping www.google.com
Kui teil õnnestub, peaksite nägema, et Google võtab andmeid vastu.
Lisaks saate oma IP -aadressi nägemiseks kasutada ifconfig.
sudo ifconfig
Samm: seadistage kaamera
Kasutage konfiguratsiooniliidese avamiseks järgmist käsku ja lubage kaamera "liidese suvandites".
sudo raspi-config
Pärast taaskäivitamist saate oma kaamera olekut kuvada, et veenduda, et see on korralikult ühendatud.
vcgencmd get_camera
Lõpuks installige picamera moodul.
pip installige picamera
Samm: paigaldage kolb
Paigaldage Pythoni jaoks kolb ja kolvi rahustav moodul:
sudo apt-get install python-dev python-pip
python -m pip paigaldage kolb -kolb -rahustav
Järgmisena paigaldame vormide loomiseks kasutatava python -kolbi mooduli.
pip paigaldage kolb-wtf
Samm: looge vormiklass
Looge kõigi failide salvestamiseks kataloog nimega iotProject.
sudo mkdir iotProject
Looge pythoni fail nimega "camControl.py".
sudo nano camControl.py
Selles failis loome oma vormiklassi, mis võimaldab meil luua veebivormi tekstikastide ja rippmenüüga, et kasutajal oleks võimalik kaamera seadeid muuta, salvestust käsitsi käivitada/peatada ja videot jäädvustada.
from flask_wtf import FlaskFormfrom wtforms.validaatorid impordivad andmeid Nõutavad saidilt wtforms import SubmitField wtformsi impordi valideerijatelt, IntegerField, BooleanField, SelectField
klassi camFrame (FlaskForm):
videoDuration = IntegerField ('Salvestusaeg (sekundites)')
tundlikkus = IntegerField ('Liikumistundlikkus (vahemik 2500-10000) nKui mida suurem on number, seda vähem tundlik on kaamera ", valideerijad = [validators. NumberRange (min = 2500, max = 10000, message = 'väärtus väljaspool vahemikku'])
options = SelectField ('Options', options = [('none', 'No action'), ('rec', 'Start Recording'), ('stop', 'Stop Recording'), ('pilt', 'Pildista')])
esitama = SubmitField ('Esita')
6. samm: looge kolvimall
Kasutajaliidese loomiseks peate kujundama kolvimalli, mis kasutab äsja loodud vormi. See fail kirjutatakse html -vormingus ja salvestatakse kausta nimega mallid, mis peaks olema teie vormiga samas kataloogis.
Looge oma mallide kausta sees fail nimega index.html. Kopeerige selles failis ülaltoodud koodi.
Samm 7: Malli renderdamine
Nüüd on aeg luua mall, mis renderdab malli. Looge fail nimega appCam.py (veenduge, et te pole enam mallide kaustas). Mallis kasutatud dünaamilist sisu tuleb render_template () kutses kasutada nimega argumendina.
import camControlkolbist import kolb, render_template, request, Response from flask_restful import Resource, Api, reqparse
app = kolb (_ nimi_)
app.config ['SECRET_KEY'] = '13542' api = Api (rakendus)
parser = reqparse. RequestParser ()
parser.add_argument ('dur', type = int, help = 'Video kestus liikumise tuvastamisel') parser.add_argument ('sens', type = int, help = 'Salvestamise käivitamiseks vajalik liikumise tase') parser.add_argument ('opt', type = str, help = 'Video käsitsi salvestamine või pildi jäädvustamine')
klassi värskendus (ressurss):
#Stuff for wtforms def post (self): args = parser.parse_args () #rc.input (args ['dur'], args ['sens'], args ['opt']) #kirjutage tekstifaili, mis räägib kaameraga, mis töötab paralleelselt + '\ n') #write sens cameraSettingsFile.write (args ['opt'] + '\ n') #write opt cameraSettingsFile.close () return {'dur': args ['dur'], 'sens': args ['tunne'], 'opt': args ['opt']}
@app.route ('/', Method = ['GET', 'POST'])
def index (): "" "Kontrolleri koduleht" "" form = camControl.camFrame () #see on vorm, kui request.method == 'POST': print (request.form) args = [i for i in request.form.items ()] #rc.input (int (args [0] [1]), int (args [1] [1]), args [2] [1]) cameraSettingsFile = avatud ("cameraSettings.txt ", w args [2] [1] + '\ n') #write opt cameraSettingsFile.close () imageDictionary = {"faili nimi": "image.jpg"} return render_template ('index.html', vorm = vorm, pilt = pilt)
api.add_resource (Värskenda, '/update/')
kui _name_ == '_main_':
app.run (host = '0.0.0.0', port = 80, silumine = tõsi, keermestatud = tõene)
8. samm: looge kaamera operaatoriklass
Nüüd tahame luua faili nimega camOperator.py. Selles teeme kaameraklassi koos kaameraga töötamise meetoditega, kasutades juba olemasolevaid PiCamera funktsioone. Järgmises etapis kasutame selle objekti eksemplari, kus ühendame kaamera ja liikumisanduri funktsionaalsuse.
Selles klassis määratletud meetodid muudavad turvakaamera "salvestamise" seadeid, kasutades kasutaja sisestatud tundlikkuse ja kestuse sisendeid, kehtestades nende muutujate vaikeväärtused, kui kasutaja sisend puudub.
RPi. GPIO importimine GPIO -ks Importige aja importimine fotoaparaat kuupäeva ja aja importimise kuupäevast
GPIO.setmode (GPIO. BOARD)
GPIO.seadistus (11, GPIO. IN)
avastama = 0
klassi kaamera Operaator:
def _init _ (ise):
#constructor self.cam = picamera. PiCamera () self.data = self.dur = 10 self.sens = 2500 self.opt = "pole"
def rekord (ise, dur):
#Records määratud aja jooksul, mille määras kontroller 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 operatsioon (ise, dur, sens):
#Kaamera põhitegevus, mis kontrollib pidevalt, kas inimene on läheduses, kui inimene jääb piisavalt kauaks, alustame salvestamist! globaalne tuvastamine i = GPIO.input (11), kui i == 0: #Kui liikumisanduri väljund on LOW tuvastus = 0 aega. uni (0,1) elif i == 1: #Kui liikumisanduri väljund on HIGH print (" tuvastatud liikumine " +str (tuvastamine)) kui tuvastamine> = sens*10: self.record (dur) print (" RECORDED ") tuvastab = 0 time.sleep (0,1) tuvastab += 1
9. samm: looge salvestusmoodul
Viimane selle projekti jaoks vajalik programm kirjutatakse faili nimega rec.py. See fail ütleb kaamerale, millal salvestada, kui kaua salvestada ja kas/millal pilti teha. Seda tehakse, kontrollides ja lugedes pidevalt tekstifaili 5. etapist kirjutatud kasutajaandmeid. Kui faili on värskendatud, reguleerib see vastavalt tundlikkuse ja kestuse väärtusi ning salvestab või pildistab salvestise sisu pi, kas.h264 või-j.webp
'' 'Töötab paralleelselt kolviserveriga, lugedes serverivormide määratud juhtmuutujaid. Pärast vormide esitamist määratakse serveri juhtelemendid eraldi faili. Rec moodul loeb neid muutujaid ja värskendab nende põhjal kaamerat. '' 'import camOperator alates kuupäevast ja ajast impordi kuupäeva ja aja importimise aeg
rc = camOperator.cameraOperator ()
cameraSettingsFile = avatud ("cameraSettings.txt", 'w') cameraSettingsFile.close () #šee, avame ja sulgeme kirjutusrežiimis, et kustutada failis olev sisu enne põhiahela käivitamist
#Pidev silmus, mis jälgib, kas läheduses on inimesi. Kui nad on, siis
#kaamera alustab salvestamist. See funktsioon töötab paralleelselt seda kaamerat juhtiva kolviga #server. recordInProcess = Väär, kuigi tõene: #kontrolli/salvesta, kui (recordInProcess == Väär): rc.operation (rc.dur, rc.sens) #muuda kaamera seadeid serveri kaamera põhjalSettingsFile = open ("cameraSettings.txt"), 'r') settingNum = 0 kaameraSettingsFile.readlines () seadistamisel) elif settingNum == 2: #Action change rc.opt = setting settingNum += 1 cameraSettingsFile.close ()
#täitke toiming
# if rc.opt == "none": # jätka, kui rc.opt == "rec / n" ja recordInProcess == Vale: print ("Käivitab salvestuskäsk kontrollerilt") #Generate video nimi vastavalt praegusele ajale videoName = "snappedVid _"+str (datetime.now ()) videoName = videoName.replace (':', ') videoName = videoName.replace ('. ',') rc.cam.start_recording ('/home/pi/iotProject /videos/' + videoName +'.h264 ') recordInProcess = Tõeline elif rc.opt == "stop / n" ja recordInProcess == Tõsi: print ("Salvesta käsk kontrollerilt") rc.cam.stop_recording () recordInProcess = False cameraSettingsFile = open ("cameraSettings.txt", 'w') cameraSettingsFile.write (str (rc.dur)+'\ n') cameraSettingsFile.write (str (rc.sens)+'\ n') cameraSettingsFile. write ("none / n") rc.opt = "none / n" elif rc.opt == "pic / n" and recordInProcess == False: print ("Snap a pic command from the controller") pictureName = "snappedPic_ "+str (datetime.now ()) pictureName = pictureName.replace (':', ') pictureName = pictureName.replace ('. ',') rc.cam.st art_preview () time.sleep (5) rc.cam.capture ('images/' + pictureName + '.jpg') rc.cam.stop_preview () cameraSettingsFile = open ("cameraSettings.txt", 'w') cameraSettingsFile. write (str (rc.dur)+'\ n') cameraSettingsFile.write (str (rc.sens)+'\ n') cameraSettingsFile.write ("pole / n") rc.opt = "pole / n"
Samm: käivitage server
Sisestage SSH pi -sse ja käivitage server ülaltoodud käsurea abil.
11. samm: proovige seda teha
Juurdepääs veebilehele IP -aadressi abil ja teil peaks olema võimalus kaamerat kaugjuhtida!
Soovitan:
Raven Pi turvakaamera: 7 sammu (piltidega)
Raven Pi turvakaamera: see plastist ronk naudib uut järeltulijat praktilise, kuid jube turvakaamerana Raven Pi. Selle kõhus on Raspberry Pi ja kaelas on Pi -kaamera, mis jäädvustab HD -videot alati, kui liikumist tuvastatakse. Samal hetkel on see
ESP32 CAM -i kasutamise alustamine - Video voogesitus, kasutades ESP CAM -i Wifi kaudu - ESP32 turvakaamera projekt: 8 sammu
ESP32 CAM -i kasutamise alustamine | Video voogesitus, kasutades ESP CAM -i Wifi kaudu | ESP32 turvakaamera projekt: täna õpime, kuidas seda uut ESP32 CAM -plaati kasutada ja kuidas seda kodeerida ning kasutada turvakaamerana ja saada voogesitusvideot wifi kaudu
DIY professionaalne avatud lähtekoodiga öise nägemise turvakaamera: 10 sammu (piltidega)
DIY professionaalne avatud lähtekoodiga öise nägemise turvakaamera: selles uues õpetuses valmistame koos oma Raspberry Pi avatud lähtekoodiga videovalvekaamera. Jah, me räägime siin tõelisest avatud lähtekoodiga väliseirekaamerast, mis on võimeline nägema öösel ja liikuma, kõik on ühendatud meie Jeediga
WoodThing IOT turvakaamera: 8 sammu (piltidega)
WoodThing IOT turvakaamera: see on võimas IP -kaamera, mis põhineb vaarika PI -l. See töötab motionEyeOS -iga, nii et seda saab kasutada mitme IP -kaugkaamera haldamiseks, samuti võimaldab see kinnitada kuni neli odavat USB -veebikaamerat. Omadused: USB toitega, liikumisandur koos s
VHS Library Pi turvakaamera: 3 sammu (piltidega)
VHS Library Pi turvakaamera: see on vana VHS Video Library ümbris, mis pakub nüüd täiuslikku kodu Raspberry Pi turvakaamerale. Korpus sisaldab Pi Zero -d ja kaamera piilub välja võltsraamatu selgroost. See on tõesti lihtne ehitus, millel on vana maailma välimus