Innholdsfortegnelse:

Raspberry Pi 3 kamera for bevegelsesdeteksjon med live feed: 6 trinn
Raspberry Pi 3 kamera for bevegelsesdeteksjon med live feed: 6 trinn

Video: Raspberry Pi 3 kamera for bevegelsesdeteksjon med live feed: 6 trinn

Video: Raspberry Pi 3 kamera for bevegelsesdeteksjon med live feed: 6 trinn
Video: Testing out the NEW Raspberry Pi Camera Module 3 2024, November
Anonim
Raspberry Pi 3 kamera for bevegelsesdeteksjon med live feed
Raspberry Pi 3 kamera for bevegelsesdeteksjon med live feed

Introduksjon

I dette prosjektet lærer du hvordan du bygger et kamera for bevegelsesdeteksjon som du kan bruke som kamerafelle, et kjæledyr/babymonitor, et sikkerhetskamera og mye mer.

Dette prosjektet er organisert i flere trinn:

  • Introduksjon
  • Setter opp Pi
  • SSHing inn i din Pi
  • Send e -post til din IP -adresse ved oppstart
  • Installere og sette opp Motion
  • Send videoer fra Motion på e -post ved registrering
  • Feilsøking og kilder

Dette trenger du:

  • En Raspberry Pi 3 -modell b ~ ~ $ 35
  • 8 GB Micro SD -kort ~~ $ 10
  • USB -webkamera ~ ~ $ 20 (dette prosjektet brukte et Logitech HD -webkamera c270)
  • mikro usb -kabel ~~ $ 5
  • enten:
  • oppladbart 5 volts batteripakke (telefonbatteri), gjør dette prosjektet trådløst ~ ~ $ 20
  • eller
  • usb -veggadapter ~~ $ 5
  • En WiFi -tilkobling

Hva du trenger tilgang til for oppsett:

  • En skjerm
  • En mus og et tastatur
  • En datamaskin med et SD -kortspor
  • En Micro SD til SD -kortomformer (skal komme med micro SD -kortet)

Trinn 1: Konfigurere din Pi

Sette opp din Pi
Sette opp din Pi

La oss nå sette opp din Pi

For å begynne, må du kontrollere at du har alle de nødvendige elementene fra det siste trinnet. Følg deretter trinnene på Raspberry Pi -nettstedet for å installere Raspbian Jessie på Microsd -kortet ditt, som du finner her.

Når du har installert Raspbian på din Pi, er det på tide å sette opp noen grunnleggende funksjoner.

WiFi

Det første trinnet for å få mest mulig ut av din Pi er å koble den til internett. Du har kanskje fullført dette trinnet enten ved å finne WiFi -symbolet i øvre høyre hjørne av Pi -hovedskjermen og logge deg på der, eller gjøre det samme før du installerer Raspbian i det siste trinnet. Hvis du ikke klarer å logge på WiFi -nettverket ditt fra Pi -skrivebordet, kan du følge instruksjonene her for å konfigurere WiFi via kommandolinjen.

SSH

Et veldig praktisk verktøy tilgjengelig for deg når du bruker din Pi, er muligheten til å utstede kommandoer til Pi i det som er kjent som et hodeløst oppsett. Ved å bruke et Secure SHell, eller SSH, kan du styre Pi eksternt fra en datamaskin. Med denne metoden er alt du trenger for å redigere din Pi en strømkilde for å beholde den, ikke mer skjerm og tastatur!

Trinn 2: SSHing inn i din PI

SSHing into your PI
SSHing into your PI
SSHing into PI
SSHing into PI

SSHing inn i Raspberry Pi er enkelt og veldig nyttig, siden prosessen lar deg utstede kommandoer til Pi fra hvilken som helst datamaskin uten noe mer enn en WiFi -tilkobling.

For å SSH inn i Pi -en din, må du følge disse 3 enkle trinnene.

Først må du aktivere SSH på Pi. For å gjøre dette, åpne et kommandovindu i Pi, og skriv inn:

sudo raspi-config

Denne kommandoen lar deg gå inn i en konfigurasjonsmeny. Derfra vil du bruke pilen, fanen og tastene for å gå først til grensesnittalternativer, deretter for å aktivere SSH, så vel som kameraet, og deretter avslutte og starte pi på nytt.

Deretter må du finne Pi -IP -adressen din. I en kommandoterminal skriver du inn:

sudo ifconfig

Og IP -adressen din bør være i wlan0 -delen som dukker opp, rett under Link encap: ethernet. I demobildet ovenfor er IP -adressen 192.168.1.10.

Sist må du enten åpne den innebygde terminalappen på en mac, eller finne og følge instruksjonene for en tredjeparts ssh -app for Windows. I Terminal -appen skriver du:

ssh pi@DIN IP -ADRESSE

Hvis du ikke har endret passordet mens du er i Raspi-config, vil passordet du vil angi når du blir bedt om det, er standardpassordet: bringebær.

Derfra bør du være god å gå!

Trinn 3: Send din IP -adresse på e -post ved oppstart

Send din IP -adresse på e -post ved oppstart
Send din IP -adresse på e -post ved oppstart

I dette trinnet vil vi fokusere på hvordan du får tilgang til din Raspberry Pi, uavhengig av nettverket du er på. Avhengig av nettverket endres Pi -IP -adressen. Og hvis du ikke har et skjermoppsett, må du ssh inn i Pi for å utløse bevegelsesdeteksjonsprotokollen, endre bevegelsespreferanser eller få tilgang til noe annet på enheten. For å løse dette problemet vil vi skrive et python -skript som sender oss Pi's nåværende IP -adresse via e -post ved oppstart. Python -skriptet er som følger og ble lagret i en katalog merket "bakgrunn".

#start i hjemmekatalogen

cd ~

#create bakgrunnsmappe

mkdir bakgrunn

#create python script

sudo nano emailip.py

#skrive i emailip.py

import stikkontakt

s = socket.socket (socket. AF_INET, socket. SOCK_DGRAM)

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

print (s. gutsockname () [0]) x = s.getsockname () [0] s.close ()

importer smtplib

fra e -post. MIMEMultipart import MIMEMultipart

fra e -post. MIMETekst importer MIMETekst

fromaddr = "DIN ADRESSE"

toaddr = "MOTTAR ADRESSE"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

msg ['Subject'] = "IP -adresse"

body = xmsg.attach (MIMEText (body, 'vanlig'))

server = smtplib. SMTP ('smtp.gmail.com', 587)

server.starttls ()

server.login (fromaddr, "DITT PASSORD")

tekst = msg.as_string ()

server.sendmail (fromaddr, toaddr, tekst)

server.quit ()

#så gjør dette det ved omstart

sudo nano /etc/rc.local

#enter i /etc/rc.local

samtidig som ! /sbin/ifconfig wlan0 | grep -q 'inet addr: [0-9]';

sov 3

gjort

_IP = $ (vertsnavn -I) || ekte

hvis ["$ _IP"]; deretter

printf "Min IP -adresse er %s / n" "$ _IP"

python /home/pi/Background/emailip.py &

fi

avslutte 0

#og du er ferdig

Trinn 4: Installere og sette opp bevegelse

Installere og sette opp bevegelse
Installere og sette opp bevegelse

#oppdater pi

sudo apt-get oppdatering

sudo apt-get oppgradering

#nedlasting

sudo apt-get install motion

#rediger denne filen med følgende endringer

sudo nano /etc/motion/motion.conf

#For å sette en standard for denne opplæringen, endre

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

demon på

stream_localhost av

webcontrol_localhost av

ffmpeg_output_movies på

target_dir/var/lib/motion

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

#lokale streamingalternativer for nettlesere

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

stream_maxrate 100 #Dette gir rom for sanntidsstrømming, men krever mer båndbredde og ressurser

framerate 60 #Dette vil tillate 60 bilder å bli tatt i sekundet #jo høyere dette blir, jo tregere blir videobehandlingen

bredde 640 #Dette endrer bredden på bildet som vises

høyde 480 #Dette endrer høyden på bildet som vises

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

#email videoinnstillinger i …/motion.conf

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

#slett ";" foran linjen, semikolonet kommenterer linjen ut

on_event_start python /home/pi/background/motionalert.py %f

on_movie_end python /home/pi/background/motionvid.py %f

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

#astektikk

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

#valg beskrevet i filen

output_pictures locate_motion_style

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

#så endres

sudo nano/etc/default/motion

#å si

start_motion_daemon = ja

#siste, start B **** opp

sudo service motion start

#du kan endre kommandoen til "stopp" eller "start på nytt"

Trinn 5: Send videoer fra bevegelse ved registrering

Sender videoer fra bevegelse ved registrering
Sender videoer fra bevegelse ved registrering

E -post når det oppdages bevegelse:

#start hjemme

dircd ~

#create motion alert python script

sudo nano /home/pi/background/motionalert.py

#skrive

importer smtplib

fra datetime import datetime

fra e -post. MIMEMultipart import MIMEMultipart

fra e -post. MIMETekst importer MIMETekst

fromaddr = "YOURADDRESS"

toaddr = "RECIEVINGADDRESS"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

msg ['Subject'] = "Bevegelse oppdaget"

body = 'En bevegelse er oppdaget. / nTid: % s' % str (datetime.now ())

msg. vedlegg (MIMEText (brødtekst, 'vanlig'))

server = smtplib. SMTP ('smtp.gmail.com', 587)

server.starttls ()

server.login (fromaddr, "DITT PASSORD")

tekst = msg.as_string ()

server.sendmail (fromaddr, toaddr, tekst)

server.quit ()

Send video om bevegelse når video er lagret:

#start på homedircd ~

#create motion video python scriptsudo nano /home/pi/background/motionvid.py

importer smtplib

fra e -post. MIMEMultipart import MIMEMultipart

fra e -post. MIMETekst importer MIMETekst

fra e -post. MIMEBase import MIMEBase

fra e -postimportkodere

fromaddr = "DIN E -POST"

toaddr = "E -POSTADRESSE DU SENDER TIL"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

msg ['Subject'] = "Bevegelseskamera aktivert"

body = "Video of Motion Detected"

msg. vedlegg (MIMEText (brødtekst, 'vanlig'))

import os

rootpath = '/var/lib/motion'

filelist = [os.path.join (rootpath, f) for f i os.listdir (rootpath)]

filelist = [f for f i filelist hvis os.path.isfile (f)]

nyeste = maks (fileliste, nøkkel = lambda x: os.stat (x).st_mtime)

filnavn = nyeste

import os

rootpath = '/var/lib/motion'

filelist = [os.path.join (rootpath, f) for f i os.listdir (rootpath)]

filelist = [f for f i filelist hvis os.path.isfile (f)]

nyeste = maks (fileliste, nøkkel = lambda x: os.stat (x).st_mtime)

vedlegg = åpent (nyeste, "rb")

part = MIMEBase ('application', 'octet-stream')

part.set_payload ((vedlegg). lese ())

encoders.encode_base64 (del)

part.add_header ('Content-Disposition', "attachment; filnavn = % s" % filnavn)

msg. vedlegg (del)

server = smtplib. SMTP ('smtp.gmail.com', 587)

server.starttls ()

server.login (fromaddr, "DITT PASSORD")

tekst = msg.as_string ()

server.sendmail (fromaddr, toaddr, tekst)

server.quit ()

Trinn 6: Feilsøking og kilder

Feilsøking og kilder
Feilsøking og kilder

Feilsøking:

Fordi dette prosjektet har flere stadier, er det flere punkter der ting kan gå galt. Nedenfor er noen av de mulige feilene som kan oppstå og hvordan du kan fikse dem.

  • Når du konfigurerer pien din for å sende deg den nåværende IP -adressen din på e -post, er det avgjørende å redigere rc.local -filen som vist tidligere, fordi dette gir en liten forsinkelse før programmet aktiveres etter omstart. Ellers vil pi ennå ikke være koblet til wifi, og e -posten vil ikke sende.
  • Når du redigerer filen motion.conf, må du slette semikolonene foran visse parametere. Semikolon undertrykker en gitt handling, så ellers vil ikke endringen tre i kraft.
  • Filen motion.conf er veldig godt organisert og detaljert. Du er velkommen til å endre innstillingene etter eget ønske, men forstå at de kan påvirke suksessen til bevegelsesopptakssystemet.
  • Etter at du har konfigurert alternativene for e -postvarsel og e -postvideo, er det viktig å merke seg at e -posten til den oppdagede videoen vil ta litt lengre tid enn å sende enn den første varsel -e -posten. Dette er fordi videoen avsluttes et par sekunder etter at bevegelse ikke lenger blir oppdaget, og fordi e -postvedlegget kan være stort nok til å ta et par minutter å motta. I noen tilfeller kan den være for stor til å sende i det hele tatt hvis bevegelse opprettholdes i svært lang tid. På grunn av dette er det alltid en god idé å sjekke livestrømmen etter å ha mottatt den første varsel -e -posten.

Hvorfor bevegelse ?:

Da vi startet dette prosjektet, vurderte vi flere forskjellige ressurser. Først vurderte vi å bruke PiCam, som er en kameraenhet bygget spesielt for bringebær pi. PiCam er absolutt en dyktig enhet og har mange applikasjoner, men den er begrenset til å bruke programmer som er spesielt designet for den og er relativt dyre i forhold til billige flerbrukswebkameraer. Så for å gjøre dette prosjektet tilgjengelig for et større publikum, bestemte vi oss for å bruke et vanlig USB -webkamera. Det neste problemet var hvilken programvare som skulle inkluderes. Vi vurderte først OpenCV, som er gratis programvare som gir mulighet for mange forskjellige typer Computer Vision og bildeprosjekter. Et av problemene her er at OpenCV er en massiv fil som tar opp mye minne og lang tid satt opp. Oppsettet har også flere stadier, noe som gir enda mer rom for feil. Vi fant ut at for vårt spesifikke prosjekt var Motion enklere å sette opp og få arbeid, men mye mer robust i utførelsen.

Kilder

Kodekilder:

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

Fotokreditt:

SSH Snail:

Maillogo:

Logitech webkamera:

SSH-vindu:

Anbefalt: