Sadržaj:

Raspberry Pi 3 kamera za detekciju pokreta sa feedom uživo: 6 koraka
Raspberry Pi 3 kamera za detekciju pokreta sa feedom uživo: 6 koraka

Video: Raspberry Pi 3 kamera za detekciju pokreta sa feedom uživo: 6 koraka

Video: Raspberry Pi 3 kamera za detekciju pokreta sa feedom uživo: 6 koraka
Video: ВСЯ НОЧЬ С ПОЛТЕРГЕЙСТОМ В ЖИЛОМ ДОМЕ, я заснял жуткую активность. 2024, Novembar
Anonim
Raspberry Pi 3 kamera za detekciju pokreta sa feedom uživo
Raspberry Pi 3 kamera za detekciju pokreta sa feedom uživo

Uvod

U ovom projektu naučit ćete 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 projekat je organizovan u nekoliko koraka:

  • Uvod
  • Postavljanje vašeg Pi -a
  • SSHing u vaš 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

Šta će vam trebati:

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

Onome što vam treba pristup za postavljanje:

  • Monitor
  • Miš i tastatura
  • Računar sa otvorom 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 posljednjeg koraka. Zatim slijedite korake na web stranici Raspberry Pi o instaliranju Raspbian Jessie na vašu Microsd karticu, koji se nalaze ovdje.

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

WiFi

Prvi korak da najbolje iskoristite svoj Pi je njegovo povezivanje s internetom. Možda ste već dovršili ovaj korak bilo tako što ste locirali simbol WiFi u gornjem desnom uglu glavnog ekrana vašeg Pi -a i prijavili se tamo, 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, možete slijediti upute ovdje za postavljanje WiFi -a putem naredbenog retka.

SSH

Jedan vrlo zgodan alat koji vam je na raspolaganju pri korištenju 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 kontrolirati svoj Pi sa računara. Ovom metodom sve što vam je potrebno za uređivanje vašeg Pi -a je izvor napajanja koji će ga držati uključenim, nema više monitora i tastature!

Korak 2: SSHing u vaš 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 proces omogućava izdavanje naredbi vašem Pi sa bilo kojeg računara sa samo WiFi vezom.

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

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

sudo raspi-config

Ova naredba vam omogućava da uđete u konfiguracijski meni. odatle ćete htjeti koristiti tipke sa strelicama, tabulatorima i tipkama za ulazak kako biste prvo ušli u opcije povezivanja, zatim omogućili SSH, kao i kameru, a zatim izašli i ponovo pokrenuli pi.

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

sudo ifconfig

Vaša IP adresa bi trebala biti u odjeljku wlan0 koji se pojavljuje, točno ispod Link encap: ethernet. Na gornjoj demonstraciji, 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 dok ste u Raspi-config-u, 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, Pi -jeva IP adresa se mijenja. A ako nemate podešavanje monitora, morat ćete ssh u Pi kako 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 folder u pozadini

mkdir background

#create python skriptu

sudo nano emailip.py

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

import 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'))

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

server.starttls ()

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

text = msg.as_string ()

server.sendmail (fromaddr, toaddr, tekst)

server.quit ()

#onda ovo radi pri ponovnom pokretanju

sudo nano /etc/rc.local

#enter u /etc/rc.local

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

spavaj 3

gotovo

_IP = $ (ime hosta -I) || istinito

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

#update pi

sudo apt-get update

sudo apt-get nadogradnja

#skinuti

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

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

daemon on

stream_localhost isključen

webcontrol_localhost isključen

ffmpeg_output_movies uključen

target_dir/var/lib/motion

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

#local opcije streaminga web preglednika

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

stream_maxrate 100 #Ovo će omogućiti prijenos 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 -zarez komentira red

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

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

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

#astectics

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

#choices opisanih u datoteci

output_pictures locate_motion_style

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

#potom promjene

sudo nano/etc/default/motion

#reći

start_motion_daemon = da

#nazad, pokrenite B **** prema gore

pokretanje sudo servisa

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

Korak 5: Slanje video zapisa 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čnite od kuće

dircd ~

#create python skripta upozorenja o kretanju

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

#pisati

import 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 otkriven"

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

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

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

server.starttls ()

server.login (fromaddr, "YOURPASSWORD")

text = msg.as_string ()

server.sendmail (fromaddr, toaddr, tekst)

server.quit ()

E -pošta Videozapis kretanja kada je video zapis sačuvan:

#počni na homedircd ~

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

import 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 -MAIL"

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

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

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

body = "Video zapis pokreta otkriven"

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

import 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 (lista datoteka, ključ = lambda x: os.stat (x).st_mtime)

naziv datoteke = najnoviji

import 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 (lista datoteka, ključ = lambda x: os.stat (x).st_mtime)

prilog = otvoren (najnoviji, "rb")

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

part.set_payload ((prilog).read ())

enkoderi.encode_base64 (dio)

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

msg.attach (dio)

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

server.starttls ()

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

text = msg.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 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. U suprotnom pi još neće biti spojen na WiFi i e -pošta se neće slati.
  • Prilikom uređivanja datoteke motion.conf obavezno izbrišite točku -zarez ispred određenih parametara. Tačka i zarez potiskuju datu radnju, pa u protivnom promjena neće stupiti na snagu.
  • Datoteka motion.conf je vrlo dobro organizirana i detaljna. Slobodno promijenite postavke po svom ukusu, ali shvatite da one mogu utjecati na uspjeh sistema za snimanje pokreta.
  • Nakon postavljanja upozorenja e -poštom i opcija video zapisa putem e -pošte, važno je napomenuti da će e -pošta 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 preveliko za slanje. Zbog toga je uvijek dobra ideja 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, kamere koja je napravljena posebno za malinu pi. PiCam je svakako 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 odnosu na jeftine višenamjenske web kamere. 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ćava mnoge različite vrste projekata Computer Vision i slika. Jedan od problema ovdje je da je OpenCV masivna datoteka koja zauzima puno memorije i dugo se postavlja. Postavljanje također ima više faza, ostavljajući još više prostora za greš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

Foto zasluge:

SSH Puž:

Logotip pošte:

Logitech web kamera:

SSH prozor:

Preporučuje se: