Innehållsförteckning:

Raspberry Pi 3 rörelsedetekteringskamera med live -feed: 6 steg
Raspberry Pi 3 rörelsedetekteringskamera med live -feed: 6 steg

Video: Raspberry Pi 3 rörelsedetekteringskamera med live -feed: 6 steg

Video: Raspberry Pi 3 rörelsedetekteringskamera med live -feed: 6 steg
Video: Best Wireless CCTV Camera: Watch Live video on Mobile 2024, November
Anonim
Raspberry Pi 3 rörelsedetekteringskamera med live -feed
Raspberry Pi 3 rörelsedetekteringskamera med live -feed

Introduktion

I det här projektet kommer du att lära dig hur du bygger en rörelsedetekteringskamera som du kommer att kunna använda som en kamerafälla, ett husdjur/babyvakt, en säkerhetskamera och mycket mer.

Detta projekt är organiserat i flera steg:

  • Introduktion
  • Konfigurera din Pi
  • SSHing in i din Pi
  • E -posta din IP -adress vid start
  • Installera och konfigurera Motion
  • Skicka e -post med videor från Motion vid upptäckt
  • Felsökning och källor

Vad du behöver:

  • En Raspberry Pi 3 -modell b ~ ~ $ 35
  • 8 GB Micro SD -kort ~~ $ 10
  • USB -webbkamera ~ ~ $ 20 (detta projekt använde en Logitech HD -webbkamera c270)
  • mikro usb -kabel ~~ $ 5
  • antingen:
  • uppladdningsbart 5 volts batteripaket (telefonbatteri), detta gör ditt projekt trådlöst ~ ~ $ 20
  • eller
  • usb -väggadapter ~~ $ 5
  • En WiFi -anslutning

Vad du behöver åtkomst till för installation:

  • En bildskärm
  • En mus och ett tangentbord
  • En dator med en SD -kortplats
  • En Micro SD till SD -kortomvandlare (bör levereras med ditt micro SD -kort)

Steg 1: Konfigurera din Pi

Konfigurera din Pi
Konfigurera din Pi

Låt oss nu konfigurera din Pi

Till att börja med, se till att du har alla nödvändiga objekt från det sista steget. Följ sedan stegen på Raspberry Pi -webbplatsen för att installera Raspbian Jessie på ditt Microsd -kort, som finns här.

När du väl har installerat Raspbian på din Pi är det dags att ställa in några grundläggande funktioner.

WiFi

Det första steget för att få ut det mesta av din Pi är att ansluta den till internet. Du kanske har slutfört detta steg antingen genom att hitta WiFi -symbolen i det övre högra hörnet på din Pi: s huvudskärm och logga in där, eller göra samma sak innan du installerar Raspbian i det sista steget. Om du inte kan logga in på ditt WiFi -nätverk från din Pi: s skrivbordsgränssnitt kan du följa instruktionerna här för att konfigurera WiFi via kommandoraden.

SSH

Ett mycket praktiskt verktyg som är tillgängligt för dig när du använder din Pi är möjligheten att utfärda kommandon till din Pi i det som kallas en huvudlös installation. Genom att använda en Secure SHell eller SSH kan du fjärrstyra din Pi från en dator. Med denna metod är allt du behöver för att redigera din Pi en strömkälla för att behålla den, ingen mer bildskärm och tangentbord!

Steg 2: SSHing in your PI

SSHing in your PI
SSHing in your PI
SSHing in your PI
SSHing in your PI

SSHing i din Raspberry Pi är enkelt och mycket användbart, eftersom processen låter dig utfärda kommandon till din Pi från vilken dator som helst utan en WiFi -anslutning.

För att SSH in i din Pi måste du följa dessa tre enkla steg.

Först måste du aktivera SSH på din Pi. För att göra detta, öppna ett kommandofönster i din Pi och skriv in:

sudo raspi-config

Detta kommando låter dig gå in i en konfigurationsmeny. därifrån vill du använda pilen, fliken och enter -tangenterna för att först gå in i gränssnittsalternativ, sedan för att aktivera SSH, liksom kameran, sedan avsluta och starta om pi.

Därefter måste du hitta din Pi: s IP -adress. Skriv i en kommandoterminal:

sudo ifconfig

Och din IP -adress bör finnas i wlan0 -avsnittet som dyker upp, precis under Link encap: ethernet. På demobilden ovan är IP -adressen 192.168.1.10.

Sist måste du antingen öppna den inbyggda terminalappen på en Mac eller hitta och följa instruktionerna för en tredjeparts ssh -app för Windows. Skriv i Terminal -appen:

ssh pi@DIN IP -ADRESS

Om du inte har ändrat lösenordet medan du är i Raspi-config, kommer ditt lösenord att ange när du uppmanas att vara standardlösenordet: hallon.

Därifrån borde du vara bra att gå!

Steg 3: E -posta din IP -adress vid start

E -posta din IP -adress vid start
E -posta din IP -adress vid start

I det här steget kommer vi att fokusera på hur du kommer åt din Raspberry Pi, oavsett vilket nätverk du är på. Beroende på nätverket ändras Pi: s IP -adress. Och om du inte har en bildskärmsinställning, skulle du behöva ssh in i Pi för att utlösa rörelsedetekteringsprotokollet, ändra rörelseinställningar eller komma åt något annat på enheten. För att lösa detta problem kommer vi att skriva ett python -skript som e -postar oss Pi: s nuvarande IP -adress vid start. Python -skriptet är enligt följande och lagrades i en katalog märkt "bakgrund".

#start i hemkatalogen

cd ~

#create bakgrundsmapp

mkdir bakgrund

#create python script

sudo nano emailip.py

#skriv i emailip.py

importuttag

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

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

skriv ut (s.getsockname () [0]) x = s.getsockname () [0] s.close ()

importera smtplib

från email. MIMEMultipart import MIMEMultipart

från email. MIMEText import MIMEText

fromaddr = "DIN ADRESS"

toaddr = "MOTTA ADRESS"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

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

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

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

server.starttls ()

server.login (fromaddr, "DITT LÖSENORD")

text = msg.as_string ()

server.sendmail (fromaddr, toaddr, text)

server.quit ()

#då gör det det vid omstart

sudo nano /etc/rc.local

#in i /etc/rc.local

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

sova 3

Gjort

_IP = $ (värdnamn -I) || Sann

om ["$ _IP"]; sedan

printf "Min IP -adress är %s / n" "$ _IP"

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

fi

avsluta 0

#och du är klar

Steg 4: Installera och konfigurera rörelse

Installera och ställa in rörelse
Installera och ställa in rörelse

#uppdatera pi

sudo apt-get uppdatering

sudo apt-get uppgradering

#ladda ner

sudo apt-get installera rörelse

#nu redigera den här filen med följande ändringar

sudo nano /etc/motion/motion.conf

#för att sätta en standard för den här självstudien, ändra

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

demon på

stream_localhost avstängd

webcontrol_localhost avstängd

ffmpeg_output_movies på

target_dir/var/lib/motion

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

#lokal streaming -alternativ för webbläsare

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

stream_maxrate 100 #Detta tillåter strömning i realtid men kräver mer bandbredd och resurser

framerate 60 #Detta gör att 60 bilder kan fångas per sekund #ju högre detta blir, desto långsammare blir videobearbetningen

bredd 640 #Detta ändrar bredden på bilden som visas

höjd 480 #Detta ändrar höjden på bilden som visas

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

#e -post videoinställningar i …/motion.conf

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

#delete the ";" framför raden, semikolon kommenterar raden ut

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

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

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

#astektik

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

#val som beskrivs i filen

output_pictures locate_motion_style

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

#sedan förändring

sudo nano/etc/default/motion

#att säga

start_motion_daemon = ja

#sist, starta B **** upp

sudo service motion start

#du kan ändra kommandot till "stopp" eller "starta om"

Steg 5: Skicka videoklipp från rörelse vid upptäckt

Skicka e -post med videor från rörelse vid upptäckt
Skicka e -post med videor från rörelse vid upptäckt

E -post när rörelse detekteras:

#start hemma

dircd ~

#create rörelsevarning python -skript

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

#skriva

importera smtplib

från datetime import datetime

från email. MIMEMultipart import MIMEMultipart

från email. MIMEText importera MIMEText

fromaddr = "DIN ADRESS"

toaddr = "RECIEVINGADDRESS"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

msg ['Subject'] = "Rörelse upptäckt"

body = 'En rörelse har detekterats. / nTid: % s' % str (datetime.now ())

msg.attach (MIMEText (body, 'plain'))

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

server.starttls ()

server.login (fromaddr, "DITT LÖSENORD")

text = msg.as_string ()

server.sendmail (fromaddr, toaddr, text)

server.quit ()

E -post Video av rörelse när videon sparas:

#start på homedircd ~

#create rörelsevideopythonskriptsudo nano /home/pi/background/motionvid.py

importera smtplib

från email. MIMEMultipart import MIMEMultipart

från email. MIMEText importera MIMEText

från email. MIMEBase importera MIMEBase

från e -postimportkodare

fromaddr = "DIN E -POST"

toaddr = "E -POSTADRESS DU SKICKAR TILL"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

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

body = "Video of Motion Detected"

msg.attach (MIMEText (body, 'plain'))

importera os

rootpath = '/var/lib/motion'

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

filelist = [f för f i filelist om os.path.isfile (f)]

nyaste = max (fillista, nyckel = lambda x: os.stat (x).st_mtime)

filnamn = nyaste

importera os

rootpath = '/var/lib/motion'

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

filelist = [f för f i filelist om os.path.isfile (f)]

nyaste = max (fillista, nyckel = lambda x: os.stat (x).st_mtime)

bilaga = öppen (nyaste, "rb")

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

part.set_payload ((bilaga).läs ())

encoders.encode_base64 (del)

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

msg. bifoga (del)

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

server.starttls ()

server.login (fromaddr, "DITT LÖSENORD")

text = msg.as_string ()

server.sendmail (fromaddr, toaddr, text)

server.quit ()

Steg 6: Felsökning och källor

Felsökning och källor
Felsökning och källor

Felsökning:

Eftersom det här projektet har flera etapper finns det flera punkter där saker kan gå fel. Nedan följer några möjliga fel som kan uppstå och hur du åtgärdar dem.

  • När du ställer in din pi för att skicka dig den aktuella IP -adressen till dig är det avgörande att redigera rc.local -filen som visats tidigare eftersom detta möjliggör en liten fördröjning innan programmet aktiveras efter omstart. Annars kommer inte pi ännu att vara ansluten till wifi, och e -postmeddelandet kommer inte att skicka.
  • När du redigerar filen motion.conf, se till att radera semikolon framför vissa parametrar. Semikolon undertrycker en given åtgärd, så annars kommer ändringen inte att träda i kraft.
  • Filen motion.conf är mycket välorganiserad och detaljerad. Ändra gärna inställningarna efter dina önskemål, men förstå att de kan påverka framgången för rörelseupptagningssystemet.
  • Efter att du har ställt in e -postvarning och e -postvideoalternativ är det viktigt att notera att e -postmeddelandet för rörelseupptäckt video kommer att ta lite längre tid än att skicka än det första varningsmeddelandet. Detta beror på att videon avslutas ett par sekunder efter att rörelse inte längre upptäcks, och eftersom e -postbilagan kan vara tillräckligt stor för att ta några minuter att ta emot. I vissa fall kan det vara för stort att överföra om rörelse upprätthålls under mycket lång tid. På grund av detta är det alltid en bra idé att kontrollera liveströmmen efter att ha fått det första varningsmeddelandet.

Varför rörelse ?:

När vi började med detta projekt övervägde vi flera olika resurser. Först övervägde vi att använda PiCam som är en kameraenhet byggd speciellt för hallon pi. PiCam är verkligen en kapabel enhet och har många applikationer, men den är begränsad till att använda program som är speciellt utformade för den och är relativt dyra jämfört med billiga multifunktionella webbkameror. Så för att göra detta projekt tillgängligt för en större publik bestämde vi oss för att använda en gemensam USB -webbkamera. Nästa nummer var vilken programvara som skulle införlivas. Vi övervägde inledningsvis OpenCV som är gratis programvara som möjliggör många olika typer av datorsyn och bildprojekt. Ett av frågorna här är att OpenCV är en massiv fil som tar upp mycket minne och lång tid installerad. Installationen har också flera steg, vilket ger ännu mer utrymme för fel. Vi fann att för vårt specifika projekt var Motion enklare att installera och fungera, men mycket mer robust i dess utförande.

Källor

Kodkällor:

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

Fotokrediter:

SSH Snail:

Maillogotyp:

Logitech webbkamera:

SSH-fönster:

Rekommenderad: