Indholdsfortegnelse:

Raspberry Pi 3 Motion Detection Camera With Live Feed: 6 trin
Raspberry Pi 3 Motion Detection Camera With Live Feed: 6 trin

Video: Raspberry Pi 3 Motion Detection Camera With Live Feed: 6 trin

Video: Raspberry Pi 3 Motion Detection Camera With Live Feed: 6 trin
Video: Turn a RaspberryPi into a Security Camera with Motion Detection! // 4K TUTORIAL 2024, November
Anonim
Raspberry Pi 3 Bevægelsesdetekteringskamera med Live Feed
Raspberry Pi 3 Bevægelsesdetekteringskamera med Live Feed

Introduktion

I dette projekt lærer du, hvordan du bygger et bevægelsesdetekteringskamera, som du vil kunne bruge som kamerafælde, et kæledyr/babymonitor, et sikkerhedskamera og meget mere.

Dette projekt er opdelt i flere trin:

  • Introduktion
  • Opsætning af din Pi
  • SSHing ind i din Pi
  • Email din IP -adresse ved opstart
  • Installation og opsætning af Motion
  • E -mail af videoer fra Motion om registrering
  • Fejlfinding og kilder

Det skal du bruge:

  • En Raspberry Pi 3 model b ~ ~ $ 35
  • 8 GB Micro SD -kort ~ ~ $ 10
  • USB Webcam ~ ~ $ 20 (dette projekt brugte et Logitech HD Webcam c270)
  • mikro usb -kabel ~ ~ $ 5
  • enten:
  • genopladeligt 5 volt batteri (telefonbatteri), gør dette dit projekt trådløst ~ ~ $ 20
  • eller
  • usb vægadapter ~ ~ $ 5
  • En WiFi -forbindelse

Det skal du have adgang til for opsætning:

  • En skærm
  • En mus og et tastatur
  • En computer med et SD -kort slot
  • En Micro SD til SD -kortkonverter (skal leveres med dit micro SD -kort)

Trin 1: Opsætning af din Pi

Opsætning af din Pi
Opsætning af din Pi

Lad os nu konfigurere din Pi

For at begynde skal du sørge for at have alle de nødvendige elementer fra det sidste trin. Følg derefter trinene på Raspberry Pi -webstedet om installation af Raspbian Jessie på dit Microsd -kort, der findes her.

Når du har installeret Raspbian på din Pi, er det tid til at få opsat nogle grundlæggende funktioner.

Trådløst internet

Det første trin for at få mest muligt ud af din Pi er at forbinde din it til internettet. Du har muligvis allerede gennemført dette trin enten ved at lokalisere WiFi -symbolet i øverste højre hjørne af din Pi's hovedskærm og logge ind der, eller gøre det samme, før du installerer Raspbian i det sidste trin. Hvis du ikke kan logge ind på dit WiFi -netværk fra din Pi's desktop -grænseflade, kan du følge instruktionerne her for at konfigurere WiFi via kommandolinjen.

SSH

Et meget praktisk værktøj til rådighed for dig, når du bruger din Pi, er muligheden for at udstede kommandoer til din Pi i det, der er kendt som en hovedløs opsætning. Ved at bruge en Secure SHell eller SSH kan du fjernstyre din Pi fra en computer. Med denne metode er alt hvad du behøver for at redigere din Pi en strømkilde for at beholde den, ikke mere skærm og tastatur!

Trin 2: SSHing i dit PI

SSHing i dit PI
SSHing i dit PI
SSHing i dit PI
SSHing i dit PI

SSHing i din Raspberry Pi er let og meget nyttig, da processen giver dig mulighed for at udstede kommandoer til din Pi fra enhver computer uden andet end en WiFi -forbindelse.

For at SSH ind i din Pi skal du følge disse 3 enkle trin.

Først skal du aktivere SSH på din Pi. For at gøre dette skal du åbne et kommandovindue i din Pi og indtaste:

sudo raspi-config

Denne kommando giver dig mulighed for at gå ind i en konfigurationsmenu. derfra vil du bruge pilen, fanen og indtastningstasterne til først at gå ind i grænseflademuligheder, derefter for at aktivere SSH, såvel som kameraet, derefter afslutte og genstarte pi'et.

Dernæst skal du finde din Pi's IP -adresse. Skriv i en kommandoterminal:

sudo ifconfig

Og din IP -adresse skal være i wlan0 -sektionen, der dukker op, lige under Link encap: ethernet. I demo -billedet ovenfor er IP -adressen 192.168.1.10.

Sidst skal du enten åbne den indbyggede terminal -app på en mac eller finde og følge instruktionerne for en tredjeparts ssh -app til Windows. Skriv i Terminal -appen:

ssh pi@DIN IP -ADRESSE

Hvis du ikke har ændret adgangskoden, mens du er i Raspi-config, vil din adgangskode, der skal indtastes, når du bliver bedt om det, være standardadgangskoden: hindbær.

Derfra skulle du være god til at gå!

Trin 3: E -mail din IP -adresse ved opstart

E -mail din IP -adresse ved opstart
E -mail din IP -adresse ved opstart

I dette trin fokuserer vi på, hvordan du får adgang til din Raspberry Pi, uanset hvilket netværk du er på. Afhængigt af netværket ændres Pi's IP -adresse. Og hvis du ikke har en skærmopsætning, skal du ssh ind i Pi for at udløse bevægelsesdetekteringsprotokollen, ændre bevægelsespræferencer eller få adgang til noget andet på enheden. For at løse dette problem vil vi skrive et python -script, der e -mailer os Pi's aktuelle IP -adresse ved opstart. Python -scriptet er som følger og blev gemt i et bibliotek mærket "baggrund".

#start i hjemmemappen

cd ~

#create baggrundsmappe

mkdir baggrund

#create python script

sudo nano emailip.py

#skriv i emailip.py

import stikkontakt

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

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

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

import smtplib

fra email. MIMEMultipart import MIMEMultipart

fra e -mail. MIMETekst import MIMETekst

fromaddr = "DIN ADRESSE"

toaddr = "MODTAGER ADRESSE"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

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

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

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

server.starttls ()

server.login (fromaddr, "DIT KODEORD")

tekst = msg.as_string ()

server.sendmail (fromaddr, toaddr, tekst)

server.quit ()

#derefter gør dette det ved genstart

sudo nano /etc/rc.local

#enter i /etc/rc.local

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

sov 3

Færdig

_IP = $ (værtsnavn -I) || sand

hvis ["$ _IP"]; derefter

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

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

fi

afslut 0

#og du er færdig

Trin 4: Installation og opsætning af bevægelse

Installation og opsætning af bevægelse
Installation og opsætning af bevægelse

#opdater pi

sudo apt-get opdatering

sudo apt-get opgradering

#Hent

sudo apt-get installere bevægelse

#rediger nu denne fil med følgende ændringer

sudo nano /etc/motion/motion.conf

#tænd for at sætte en standard for denne vejledning

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

dæmon på

stream_localhost slukket

webcontrol_localhost slukket

ffmpeg_output_movies på

target_dir/var/lib/motion

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

#lokale muligheder for streaming af webbrowser

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

stream_maxrate 100 #Dette giver mulighed for streaming i realtid, men kræver mere båndbredde og ressourcer

framerate 60 #Dette gør det muligt at fange 60 billeder i sekundet #jo højere dette bliver, jo langsommere bliver videobehandlingen

bredde 640 #Dette ændrer bredden på det viste billede

højde 480 #Dette ændrer højden på det viste billede

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

#email videoindstillinger i…/motion.conf

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

#slet ";" foran linjen, semikolon kommenterer linjen ud

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

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

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

#astektik

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

#valg beskrevet i filen

output_pictures locate_motion_style

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

#derefter ændre

sudo nano/etc/default/motion

#at sige

start_motion_daemon = ja

#sidste, start B **** op

sudo service motion start

#du kan ændre kommandoen til "stop" eller "genstart"

Trin 5: E -mail af videoer fra bevægelse ved registrering

E -mail af videoer fra bevægelse ved registrering
E -mail af videoer fra bevægelse ved registrering

E -mail, når der registreres bevægelse:

#start derhjemme

dircd ~

#create motion alert python script

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

#skrive

import smtplib

fra datetime import datetime

fra email. MIMEMultipart import MIMEMultipart

fra e -mail. MIMETekst import MIMETekst

fromaddr = "DIN ADRESSE"

toaddr = "RECIEVINGADDRESS"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

msg ['Subject'] = "Bevægelse registreret"

body = 'Der er registreret en bevægelse. / nTid: % s' % str (datetime.now ())

msg.attach (MIMEText (brødtekst, 'almindelig'))

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

server.starttls ()

server.login (fromaddr, "YOURPASSWORD")

tekst = msg.as_string ()

server.sendmail (fromaddr, toaddr, tekst)

server.quit ()

E -mail Video af bevægelse, når videoen er gemt:

#start på homedircd ~

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

import smtplib

fra email. MIMEMultipart import MIMEMultipart

fra e -mail. MIMETekst import MIMETekst

fra email. MIMEBase import MIMEBase

fra e -mail -importkodere

fromaddr = "DIN E -MAIL"

toaddr = "E -mail -adresse, du sender til"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

msg ['Subject'] = "Motion Cam aktiveret"

body = "Video of Motion Detected"

msg.attach (MIMEText (brødtekst, 'almindelig'))

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 = max (fileliste, nøgle = 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 = max (fileliste, nøgle = lambda x: os.stat (x).st_mtime)

vedhæftet fil = åben (nyeste, "rb")

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

part.set_payload ((vedhæftet fil). læs ())

encoders.encode_base64 (del)

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

msg. vedhæfte (del)

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

server.starttls ()

server.login (fromaddr, "DIT KODEORD")

tekst = msg.as_string ()

server.sendmail (fromaddr, toaddr, tekst)

server.quit ()

Trin 6: Fejlfinding og kilder

Fejlfinding og kilder
Fejlfinding og kilder

Fejlfinding:

Fordi dette projekt har flere faser, er der flere punkter, hvor tingene kan gå galt. Nedenfor er nogle af de mulige fejl, der kan opstå, og hvordan du retter dem.

  • Når du konfigurerer din pi til at e -maile dig den aktuelle IP -adresse, er det afgørende at redigere rc.local -filen som vist tidligere, fordi dette giver mulighed for en lille forsinkelse, før programmet aktiveres efter genstart. Ellers vil pi'en endnu ikke være forbundet til wifi, og e -mailen vil ikke sende.
  • Når du redigerer filen motion.conf, skal du sørge for at slette semikolon foran visse parametre. Semikolon undertrykker en given handling, så ændringen træder ellers ikke i kraft.
  • Filen motion.conf er meget velorganiseret og detaljeret. Du er velkommen til at ændre indstillingerne efter din smag, men forstå, at de kan påvirke motion capture -systemets succes.
  • Efter opsætning af e -mail -advarsel og e -mail -videoindstillinger er det vigtigt at bemærke, at e -mailen til den bevægelsesdetekterede video vil tage lidt længere tid end at sende end den oprindelige advarsels -e -mail. Dette skyldes, at videoen afsluttes et par sekunder efter, at bevægelse ikke længere er registreret, og fordi vedhæftningen af e -mail kan være stor nok til at kræve et par minutter at modtage. I nogle tilfælde kan det være for stort til overhovedet at sende hvis bevægelse opretholdes i meget lang tid. På grund af dette er det altid en god idé at tjekke livestreamen efter at have modtaget den første advarsels -e -mail.

Hvorfor bevægelse ?:

Da vi første gang gik i gang med dette projekt, overvejede vi flere forskellige ressourcer. Først overvejede vi at bruge PiCam, som er en kameraenhed bygget specielt til hindbærpi. PiCam er bestemt en dygtig enhed og har mange applikationer, men det er begrænset til at bruge programmer, der er specielt designet til det og er relativt dyre i forhold til billige multifunktionelle webkameraer. Så for at gøre dette projekt tilgængeligt for et større publikum, besluttede vi at bruge et fælles USB -webcam. Det næste nummer var, hvilken software der skulle inkorporeres. Vi overvejede oprindeligt OpenCV, som er gratis software, der giver mulighed for mange forskellige former for Computer Vision og billeddannelsesprojekter. Et af problemerne her er, at OpenCV er en massiv fil, der optager meget hukommelse og opsætter lang tid. Opsætningen har også flere trin, hvilket efterlader endnu mere plads til fejl. Vi fandt ud af, at for vores specifikke projekt var Motion enklere at konfigurere og få til at fungere, men meget mere robust i udfø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

Billedkreditter:

SSH Snail:

Maillogo:

Logitech webcam:

SSH-vindue:

Anbefalede: