Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Dette systemet bruker en pizero, wifi dongle og et gammelt webkamera i en tilpasset fyrstikkeske. Den registrerer videoer for bevegelsesdeteksjon ved 27 fps av enhver betydelig bevegelse på oppkjørselen min. Den laster deretter opp klippene til en dropbox -konto. Kan også se loggene og endre konfigurasjonen via dropbox.
Trinn 1: Konfigurere forutsetningene
Oppdater først operativsystemet til den nyeste versjonen som beskrevet her.
Sett deretter opp wifi som beskrevet her.
Da må du konfigurere OpenCv. Det er gode instruksjoner om hvordan du gjør dette på pyimagesearch. Hvis du går for versjon 3.0, forvent at det vil ta lang tid. Ett av trinnene tar 9 timer å gjøre. Du trenger også pythonbindinger som er forklart på den siden.
Når du har alt dette i gang, er du klar til å laste ned programvare for bevegelsesdeteksjon.
Trinn 2: Sette opp bevegelsesdetekteringsprogramvaren
Koden finnes på bitbucket. Kopier disse filene ved å bruke
git -klon
eller hvis du foretrekker å laste dem ned individuelt.
Hoveddelen av dette systemet er multiMotionDetect.py. Den bruker mange av multiprosesseringskøene og hendelsene.
Først av alt må du bestemme hvor du vil at videobildene skal lagres MotionVideos og angi denne verdien i filen globalConfig.json. Kopier deretter config.json.txt og maskedAreas.json.txt til roten til denne mappen. Config.json.txt har følgende innstilling som kan redigeres eksternt.
}
FrameThreshold: er antall betydelige rammer før bevegelse oppdages.
staticThreshold: er antall statiske rammer før vi slår av filmingen.
minArea: er minimumsstørrelsen på området for å bli regnet som signifikant.
postSeconds: Dette er antall sekunder fra filmens slutt for bevegelsen å gå gjennom køen. readCamNice: Dette er hvor mye prioritet som skal gis til
readCam -prosess. Dette er mellom -20 og +20 (jo lavere tall jo høyere prioritet). Men ikke overdriv, da krasjer du operativsystemet.
checkMotionNice: Prioriteten for bevegelsesdetekteringsprosessen.
writeCamNice: Prioriteten til kameraets skriveprosess.
maxqsize: Dette er antall sekunder som deretter multipliseres med bildene per sekund.
Jeg endrer stort sett bare min_området for å ta hensyn til vindforholdene.
Hvis du heller vil bruke en enkel logger i stedet for socket -loggeren (nedenfor), endrer du import miaLogging til
import logging
logging.basicConfig (filnavn = 'eksempel.log', nivå = logging. DEBUG)
og fjern loggmottakeren fra motionDetect -filen, og alt annet skal fungere fint.
Hvis du vil kjøre bevegelsesdetektoren automatisk ved oppstart.
Rediger først skriptet og kontroller at homedir peker dit du har multiMotionDetect.py, og kopier deretter motionDetect -filen til /etc/init.d ie
cp motionDetect /etc/init.d/motionDetect
Bør være kjørbar allerede, men
chmod +x /etc/init.d/motionDetect
Registrer til slutt manuset med
sudo update-rc.d motionDetect standard
Du kan også starte, stoppe og starte systemet på nytt med
sudo /etc/init.d/motionDetect start | stop | restart
Som standard starter miaLogReceiver -sokkelloggingen samtidig. De tre andre programmene er uavhengige, men bruker samme socket -logger (men kan lett konverteres). Jeg kaller alle disse ved å bruke et cron -skript med forskjellige intervaller. For instruksjoner, se her.
CheckRunning.py sjekker at multiMotionDetect.py kjører og starter på nytt hvis ikke.
fileMaint.py gjør rengjøring på videomappene og fjerner disse etter et gitt antall dager. Den fjerner underkataloger i bevegelsesvideomappen som er angitt i første avsnitt. Den sjekker at de starter med "MV", så sørg for at du ikke har en annen katalog av betydning som starter med de samme tegnene i den mappen.
Trinn 3: Få tilgang til videoene og konfigurasjonen via Dropbox
Til slutt, hvis du vil se videoene, loggene og konfigurasjonsfilene eksternt, må du konfigurere dropbox.
Få først en dropbox -konto som er gratis. Sett deretter opp API for python -https://www.dropbox.com/developers/documentation/… Dette inkluderer nedlasting av sdk og registrering av appen for å få tilgang til API.
Når du har en nøkkel, skriver du inn den i filen globalConfig.json. Mer informasjon om systemet finner du på bloggen min dani cymru - cyber renegade Hvis du finner noe av interesse eller spørsmål, vennligst legg en kommentar på bloggen.