Kamera za otkrivanje pokreta Raspberry Pi 3 s feedom uživo: 6 koraka
Kamera za otkrivanje pokreta Raspberry Pi 3 s feedom uživo: 6 koraka
Anonim
Kamera za otkrivanje pokreta Raspberry Pi 3 s feedom uživo
Kamera za otkrivanje pokreta Raspberry Pi 3 s feedom uživo

Uvod

U ovom ćete projektu naučiti kako izgraditi kameru za detekciju pokreta koju ćete moći koristiti kao zamku za kameru, nadzor kućnih ljubimaca/beba, sigurnosnu kameru i još mnogo toga.

Ovaj je projekt organiziran u nekoliko koraka:

  • Uvod
  • Postavljanje vašeg Pi
  • SSHing u svoj Pi
  • Slanje vaše IP adrese pri pokretanju
  • Instaliranje i postavljanje Motion -a
  • Videozapisi iz Motion -a koji se šalju e -poštom pri otkrivanju
  • Rješavanje problema i izvori

Što će vam trebati:

  • Model Raspberry Pi 3 košta ~ 35 USD
  • 8 GB Micro SD kartica ~~ 10 USD
  • USB web kamera ~~ $ 20 (ovaj projekt je koristio Logitech HD web kameru c270)
  • mikro usb kabel ~~ 5 USD
  • ili:
  • punjiva baterija od 5 volti (pomoćna baterija telefona), čini vaš projekt bežičnim ~ ~ 20 USD
  • ili
  • USB zidni adapter ~~ 5 USD
  • WiFi veza

Onome što vam treba pristup za postavljanje:

  • Monitor
  • Miš i tipkovnica
  • Računalo s utorom za SD karticu
  • Pretvarač Micro SD u SD karticu (trebao bi se isporučiti s mikro SD karticom)

Korak 1: Postavljanje vašeg Pi -a

Postavljanje vašeg Pi -a
Postavljanje vašeg Pi -a

Sada postavimo vaš Pi

Za početak provjerite imate li sve potrebne stavke iz zadnjeg koraka. Zatim slijedite korake na web stranici Raspberry Pi o instaliranju Raspbian Jessie na vašu Microsd karticu, koji se nalazi ovdje.

Nakon što instalirate Raspbian na svoj Pi, vrijeme je da postavite neke osnovne značajke.

WiFi

Prvi korak kako biste najbolje iskoristili svoj Pi je njegovo povezivanje s internetom. Možda ste već dovršili ovaj korak tako što ste locirali simbol WiFi u gornjem desnom kutu vašeg glavnog Pi zaslona i tamo se prijavili ili učinili istu stvar prije instaliranja Raspbiana u posljednjem koraku. Ako se ne možete prijaviti na svoju WiFi mrežu sa stolnog sučelja vašeg Pi -a, slijedite upute ovdje za postavljanje WiFi -a putem naredbenog retka.

SSH

Jedan vrlo zgodan alat koji vam je na raspolaganju pri upotrebi vašeg Pi -a je mogućnost izdavanja naredbi vašem Pi -u u takozvanom postavljanju bez glave. Korištenjem Secure SHell -a ili SSH -a možete daljinski upravljati svojim Pi -om s računala. Ovom metodom sve što trebate urediti svoj Pi je izvor napajanja koji će ga držati uključenim, nema više monitora i tipkovnice!

Korak 2: SSHing u svoj PI

SSHing u vaš PI
SSHing u vaš PI
SSHing u vaš PI
SSHing u vaš PI

SSHing u vaš Raspberry Pi je jednostavan i vrlo koristan jer vam postupak omogućuje izdavanje naredbi vašem Pi s bilo kojeg računala bez WiFi veze.

Da biste SSH unijeli u svoj Pi, morate slijediti ova 3 jednostavna koraka.

Prvo morate omogućiti SSH na svom Pi. Da biste to učinili, otvorite naredbeni prozor u svom Pi i upišite:

sudo raspi-config

Ova naredba omogućuje vam ulazak u konfiguracijski izbornik. od tamo ćete htjeti upotrijebiti tipke sa strelicama, karticama i unesite kako biste prvo otišli u opcije sučelja, zatim omogućili SSH, kao i kameru, a zatim izašli i ponovno pokrenuli pi.

Zatim ćete morati pronaći IP adresu svog Pi -a. U naredbeni terminal upišite:

sudo ifconfig

Vaša IP adresa trebala bi biti u odjeljku wlan0 koji će se pojaviti, točno ispod Link encap: ethernet. Na gornjoj demo slici, IP adresa je 192.168.1.10.

Na kraju, morate otvoriti ugrađenu terminal aplikaciju na Mac -u ili pronaći i slijediti upute za ssh aplikaciju treće strane za Windows. U aplikaciju Terminal upišite:

ssh pi@VAŠA IP ADRESA

Ako niste promijenili lozinku tijekom Raspi-config-a, tada će vaša lozinka koju ćete unijeti kada bude zatraženo biti zadana lozinka: malina.

Odatle biste trebali krenuti!

Korak 3: Pošaljite svoju IP adresu e -poštom pri pokretanju

Pošaljite svoju IP adresu e -poštom pri pokretanju
Pošaljite svoju IP adresu e -poštom pri pokretanju

U ovom koraku fokusirat ćemo se na to kako pristupiti vašem Raspberry Pi, bez obzira na mrežu na kojoj se nalazite. Ovisno o mreži, IP -adresa Pi se mijenja. A ako nemate postavke monitora, morat ćete ssh u Pi da biste pokrenuli protokol otkrivanja pokreta, promijenili postavke pokreta ili pristupili bilo čemu drugom na uređaju. Da bismo riješili ovaj problem, napisat ćemo python skriptu koja će nam poslati e -poruku Pi -jevu trenutnu IP adresu nakon pokretanja. Python skripta je sljedeća i pohranjena je u direktoriju s oznakom "background".

#počni u kućnom direktoriju

cd ~

#create pozadinsku mapu

mkdir pozadina

#create python skriptu

sudo nano emailip.py

#pisati u emailip.py

utičnica za uvoz

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 ()

uvoz smtplib

iz e -pošte. MIMEMultipart import MIMEMultipart

iz e -pošte. MIMEText uvoz MIMEText

fromaddr = "VAŠA ADRESA"

toaddr = "PRIMANJE ADRESE"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

msg ['Subject'] = "IP adresa"

body = xmsg.attach (MIMEText (tijelo, "običan"))

poslužitelj = smtplib. SMTP ('smtp.gmail.com', 587)

server.starttls ()

server.login (fromaddr, "VAŠA LOZINKA")

tekst = poruka.as_string ()

server.sendmail (fromaddr, toaddr, tekst)

server.quit ()

#onda to radi pri ponovnom pokretanju

sudo nano /etc/rc.local

#unesite u /etc/rc.local

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

spavaj 3

učinjeno

_IP = $ (naziv hosta -I) || pravi

if ["$ _IP"]; zatim

printf "Moja IP adresa je %s / n" "$ _IP"

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

fi

izlaz 0

#i gotovi ste

Korak 4: Instaliranje i postavljanje pokreta

Instaliranje i postavljanje Motion -a
Instaliranje i postavljanje Motion -a

#ažuriraj pi

sudo apt-get ažuriranje

sudo apt-get nadogradnja

#preuzimanje datoteka

sudo apt-get install motion

#sad uredite ovu datoteku sa sljedećim izmjenama

sudo nano /etc/motion/motion.conf

#da biste postavili standard za ovaj vodič, promijenite

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

demon uključen

stream_localhost isključen

webcontrol_localhost isključen

ffmpeg_output_movies on

target_dir/var/lib/motion

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

#local mogućnosti strujanja web preglednika

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

stream_maxrate 100 #Ovo će omogućiti strujanje u stvarnom vremenu, ali zahtijeva veću propusnost i resurse

framerate 60 #Ovo će omogućiti snimanje 60 sličica u sekundi #što je ovo veće, sporija je obrada videa

width 640 #Ovo mijenja širinu prikazane slike

height 480 #Ovo mijenja visinu prikazane slike

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

#emailing video postavke u…/motion.conf

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

#delete ";" ispred retka, točka -zareza komentira redak

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

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

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

#astektika

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

#choices opisanih u datoteci

izlazne_slike lociraj_smjer_slova

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

#potom promjenu

sudo nano/etc/default/motion

#reći

start_motion_daemon = da

#nazad, pokrenite B **** prema gore

sudo service motion start

#naredbu možete promijeniti u "stop" ili "restart"

Korak 5: Slanje videozapisa iz pokreta putem detekcije putem e -pošte

Videozapisi iz pokreta putem detekcije putem e -pošte
Videozapisi iz pokreta putem detekcije putem e -pošte

E -pošta kada se detektira pokret:

#počni od kuće

dircd ~

#create python skripta upozorenja o kretanju

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

#pisati

uvoz smtplib

from datetime import datetime

iz e -pošte. MIMEMultipart uvoz MIMEMultipart

iz e -pošte. MIMEText uvoz MIMEText

fromaddr = "VAŠA ADRESA"

toaddr = "ADRESA ZA PRIMANJE"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

msg ['Subject'] = "Pokret je otkriven"

body = 'Otkriveno je kretanje. / nVrijeme: % s' % str (datetime.now ())

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

poslužitelj = smtplib. SMTP ('smtp.gmail.com', 587)

server.starttls ()

server.login (fromaddr, "YOURPASSWORD")

tekst = poruka.as_string ()

server.sendmail (fromaddr, toaddr, tekst)

server.quit ()

Videozapis kretanja e -poštom kada se videozapis spremi:

#počni na homedircd ~

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

uvoz smtplib

iz e -pošte. MIMEMultipart import MIMEMultipart

iz e -pošte. MIMEText uvoz MIMEText

iz e -pošte. MIMEBase uvoz MIMEBase

iz kodera za uvoz e -pošte

fromaddr = "VAŠA E -POŠTA"

toaddr = "ADRESA E -POŠTE NA KOJU STE SLALI"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

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

body = "Videozapis otkrivenog pokreta"

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

uvoz os

rootpath = '/var/lib/motion'

filelist = [os.path.join (rootpath, f) za f u os.listdir (rootpath)]

filelist = [f za f na popisu datoteka ako je os.path.isfile (f)]

najnovije = max (popis datoteka, ključ = lambda x: os.stat (x).st_mtime)

naziv datoteke = najnoviji

uvoz os

rootpath = '/var/lib/motion'

filelist = [os.path.join (rootpath, f) za f u os.listdir (rootpath)]

filelist = [f za f na popisu datoteka ako je os.path.isfile (f)]

najnovije = max (popis datoteka, ključ = lambda x: os.stat (x).st_mtime)

privitak = otvoren (najnoviji, "rb")

dio = MIMEBase ('aplikacija', 'oktet-stream')

part.set_payload ((privitak).read ())

enkoderi.encode_base64 (dio)

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

msg.attach (dio)

poslužitelj = smtplib. SMTP ('smtp.gmail.com', 587)

server.starttls ()

server.login (fromaddr, "VAŠA LOZINKA")

tekst = poruka.as_string ()

server.sendmail (fromaddr, toaddr, tekst)

server.quit ()

Korak 6: Rješavanje problema i izvori

Rješavanje problema i izvori
Rješavanje problema i izvori

Rješavanje problema:

Budući da ovaj projekt ima više faza, postoji nekoliko točaka u kojima stvari mogu poći po zlu. U nastavku su navedene neke od mogućih grešaka koje se mogu pojaviti i kako ih ispraviti.

  • Prilikom postavljanja vašeg pi -a putem e -pošte sa svojom trenutnom IP adresom, ključno je urediti datoteku rc.local kao što je prikazano ranije jer to omogućuje malo kašnjenje prije nego što se program aktivira nakon ponovnog pokretanja. Inače pi još neće biti spojen na WiFi, a e -poruka se neće slati.
  • Prilikom uređivanja datoteke motion.conf obavezno izbrišite točku -zarez ispred određenih parametara. Točka -zarez potiskuje zadanu radnju, pa u protivnom promjena neće stupiti na snagu.
  • Datoteka motion.conf vrlo je dobro organizirana i detaljna. Slobodno promijenite postavke po svom ukusu, ali shvatite da one mogu utjecati na uspjeh sustava za snimanje pokreta.
  • Nakon postavljanja opcija upozorenja e -poštom i video zapisa putem e -pošte, važno je napomenuti da će e -poruka videozapisa s otkrivenim pokretom potrajati malo duže nego slanje od početne e -poruke s upozorenjem. To je zato što se videozapis završava nekoliko sekundi nakon što se pokret više ne detektira i zato što bi privitak e -pošte mogao biti dovoljno velik da primi nekoliko minuta. U nekim slučajevima, ako se kretanje održava jako dugo, može biti uopće preveliko za slanje. Zbog toga je uvijek dobro provjeriti prijenos uživo nakon primitka e -pošte s početnim upozorenjem.

Zašto Motion ?:

Prilikom prvog pokretanja ovog projekta razmotrili smo nekoliko različitih resursa. Prvo smo razmišljali o korištenju PiCam -a koji je kamera napravljena posebno za pivo od maline. PiCam je zasigurno sposoban uređaj i ima mnogo aplikacija, ali je ograničen na korištenje programa koji su posebno dizajnirani za njega i relativno je skup u usporedbi s jeftinim višenamjenskim web kamerama. Stoga smo, kako bismo ovaj projekt učinili dostupnim široj publici, odlučili koristiti zajedničku USB web kameru. Sljedeće je pitanje bilo koji softver uključiti. U početku smo razmatrali OpenCV koji je besplatni softver koji omogućuje mnoge različite vrste projekata Computer Vision i slika. Jedan od problema ovdje je da je OpenCV velika datoteka koja zauzima puno memorije i dugo se postavlja. Postavljanje također ima više faza, ostavljajući još više prostora za pogreške. Utvrdili smo da je za naš specifični projekt Motion jednostavniji za postavljanje i rad, ali mnogo robusniji u izvođenju.

Izvori

Izvori koda:

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

Zasluge za fotografije:

SSH Puž:

Logotip pošte:

Logitech web kamera:

SSH prozor: