Innehållsförteckning:
- Steg 1: Konfigurera din Pi
- Steg 2: SSHing in your PI
- Steg 3: E -posta din IP -adress vid start
- Steg 4: Installera och konfigurera rörelse
- Steg 5: Skicka videoklipp från rörelse vid upptäckt
- Steg 6: Felsökning och källor
Video: Raspberry Pi 3 rörelsedetekteringskamera med live -feed: 6 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
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
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 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
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
#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
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:
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:
IOT DMX -controller med Arduino och Stage Monster Live: 6 steg
IOT DMX-kontroller med Arduino och Stage Monster Live: Styr scenbelysning och andra DMX-enheter från din telefon eller någon annan webbaktiverad enhet. Jag visar dig hur du snabbt och enkelt bygger din egen DMX -controller som körs på Stage Monster Live -plattformen med en Arduino Mega
Loactor Med Live Report Med Chat Bot: 4 steg
Loactor Med Live Report Med Chat Bot: Via WhatsApp, få variabler (plats, höjd, tryck …) från NodeMCU på begäran eller skicka kommandon till NodeMCU via Twilios API. I några veckor har jag arbetat med Twilios API, speciellt för WhatsApp -meddelanden och till och med skapat
Covid Live -rapport med Raspberry Pi: 6 steg
Covid Live-rapport med Raspberry Pi: Som vi vet påverkas hela världen av COVID-19-pandemin och nästan alla arbetar hemifrån. Vi borde alla i bästa fall utnyttja denna längd, för att förbättra våra tekniska färdigheter eller skriva några bra Pythonic -skript. Låt oss se en enkel Python
Live 4G/5G HD -videoströmning från DJI Drone vid låg latens [3 steg]: 3 steg
Live 4G/5G HD-videoströmning från DJI Drone vid låg latens [3 steg]: Följande guide hjälper dig att få live-videoströmmar i HD-kvalitet från nästan alla DJI-drönare. Med hjälp av FlytOS Mobile App och FlytNow Web Application kan du börja strömma video från drönaren
Trafikmönsteranalysator med Live Object Detection: 11 steg (med bilder)
Trafikmönsteranalysator som använder liveobjektdetektering: I dagens värld är trafikljus avgörande för en säker väg. Men många gånger kan trafikljus vara irriterande i situationer där någon närmar sig ljuset precis som det blir rött. Detta slösar bort tid, särskilt om ljuset är för