Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
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
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š 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
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
#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
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:
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: