Sisällysluettelo:

Raspberry Pi 3 -liikkeentunnistuskamera, jossa on suora syöttö: 6 vaihetta
Raspberry Pi 3 -liikkeentunnistuskamera, jossa on suora syöttö: 6 vaihetta

Video: Raspberry Pi 3 -liikkeentunnistuskamera, jossa on suora syöttö: 6 vaihetta

Video: Raspberry Pi 3 -liikkeentunnistuskamera, jossa on suora syöttö: 6 vaihetta
Video: 12v 90 ampeerin autolaturi itseherättyväksi generaattoriksi diodia käyttäen 2024, Marraskuu
Anonim
Raspberry Pi 3 -liikkeentunnistuskamera, jossa on live -syöte
Raspberry Pi 3 -liikkeentunnistuskamera, jossa on live -syöte

Johdanto

Tässä projektissa opit rakentamaan liiketunnistuskameran, jota voit käyttää kameraloukuna, lemmikkieläinten/vauvojen valvontalaitteena, turvakamerana ja paljon muuta.

Tämä projekti on jaettu useisiin vaiheisiin:

  • Johdanto
  • Pi: n asentaminen
  • SSHing Pi -laitteeseesi
  • Sähköpostitse IP -osoitteesi käynnistyksen yhteydessä
  • Motionin asentaminen ja määrittäminen
  • Videoiden lähettäminen liikkeestä havaitsemisesta
  • Vianetsintä ja lähteet

Mitä tarvitset:

  • A Raspberry Pi 3 -malli b ~ ~ 35 dollaria
  • 8 Gt: n Micro SD -kortti ~ ~ 10 dollaria
  • USB -verkkokamera ~ ~ 20 dollaria (tässä projektissa käytettiin Logitech HD Webcam c270)
  • mikro -usb -kaapeli ~ ~ 5 dollaria
  • jompikumpi:
  • ladattava 5 voltin akku (puhelimen vara -akku), tämä tekee projektistasi langattoman ~ ~ 20 dollaria
  • tai
  • usb -seinäsovitin ~ ~ 5 dollaria
  • WiFi -yhteys

Mihin tarvitset pääsyn määritykseen:

  • Näyttö
  • Hiiri ja näppäimistö
  • Tietokone, jossa on SD -korttipaikka
  • Micro SD - SD -kortin muunnin (micro SD -kortin mukana)

Vaihe 1: Pi: n käyttöönotto

Pi -laitteen asentaminen
Pi -laitteen asentaminen

Asetetaan nyt Pi

Varmista aluksi, että sinulla on kaikki vaaditut kohteet viimeisestä vaiheesta. Noudata sitten Raspberry Pi -sivuston ohjeita Raspbian Jessien asentamisesta Microsd -kortillesi, joka löytyy täältä.

Kun olet asentanut Raspbianin Pi -laitteeseesi, on aika ottaa käyttöön joitakin perusominaisuuksia.

WiFi

Ensimmäinen askel saadaksesi kaiken irti Pi: stä on yhdistää se Internetiin. Olet saattanut suorittaa tämän vaiheen jo joko etsimällä WiFi -symbolin Pi: n päänäytön oikeasta yläkulmasta ja kirjautumalla sisään siihen tai tekemällä saman ennen Raspbianin asentamista viimeisessä vaiheessa. Jos et pysty kirjautumaan WiFi -verkkoon Pi -työpöydän käyttöliittymästä, voit seurata WiFi -asetuksia komentorivin kautta noudattamalla näitä ohjeita.

SSH

Yksi erittäin kätevä työkalu, joka on käytettävissäsi Pi: tä käytettäessä, on mahdollisuus antaa komentoja Pi: lle päättömässä asennuksessa. Käyttämällä Secure SHellia tai SSH: ta voit ohjata Pi: täsi etäyhteydellä tietokoneesta. Tällä menetelmällä Pi: n muokkaamiseen tarvitset vain virtalähteen pitääksesi sen päällä, ei enää näyttöä ja näppäimistöä!

Vaihe 2: SSHing PI: hen

SSHing PI: hen
SSHing PI: hen
SSHing PI: hen
SSHing PI: hen

SSH -yhteyden ottaminen Raspberry Pi -laitteeseen on helppoa ja erittäin hyödyllistä, koska prosessin avulla voit antaa komentoja Pi -laitteellesi mistä tahansa tietokoneesta, jolla on vain WiFi -yhteys.

SSH: n liittämiseksi Pi: hen sinun on noudatettava näitä 3 yksinkertaista vaihetta.

Ensinnäkin sinun on otettava SSH käyttöön Pi -laitteessasi. Voit tehdä tämän avaamalla Pi -komentoikkunan ja kirjoittamalla:

sudo raspi-config

Tämän komennon avulla voit siirtyä asetusvalikkoon. sieltä haluat käyttää nuolia, välilehteä ja syöttönäppäimiä siirtyäksesi ensin liitäntävaihtoehtoihin, ottaaksesi sitten SSH: n ja kameran käyttöön ja lopeta sitten pi ja käynnistä se uudelleen.

Seuraavaksi sinun on löydettävä Pi: n IP -osoite. Kirjoita komentopäätteeseen:

sudo ifconfig

Ja IP -osoitteesi pitäisi olla wlan0 -osiossa, joka tulee esiin, suoraan Link encap: ethernet -kohdan alla. Yllä olevassa esittelykuvassa IP -osoite on 192.168.1.10.

Lopuksi sinun on joko avattava sisäänrakennettu päätesovellus Macissa tai löydettävä ja noudatettava kolmannen osapuolen ssh -sovelluksen ohjeita Windowsille. Kirjoita Terminal -sovellukseen:

ssh pi@IP -OSOITE

Jos et ole vaihtanut salasanaa Raspi-config-tilassa, salasana, jonka annat pyydettäessä, on oletussalasana: vadelma.

Sieltä sinun pitäisi olla hyvä mennä!

Vaihe 3: Lähetä IP -osoitteesi sähköpostitse käynnistyksen yhteydessä

Lähetä IP -osoitteesi sähköpostitse käynnistyksen yhteydessä
Lähetä IP -osoitteesi sähköpostitse käynnistyksen yhteydessä

Tässä vaiheessa keskitymme siihen, miten voit käyttää Raspberry Pi -laitettasi riippumatta siitä, missä verkossa olet. Pi: n IP -osoite muuttuu verkon mukaan. Ja jos sinulla ei ole näytön asetuksia, sinun on ssh: n sisällytettävä Pi: hen, jotta voit käynnistää liiketunnistusprotokollan, muuttaa liikeasetuksia tai käyttää mitä tahansa muuta laitetta. Tämän ongelman ratkaisemiseksi kirjoitamme python -komentosarjan, joka lähettää meille sähköpostitse Pi: n nykyisen IP -osoitteen käynnistyksen yhteydessä. Python -skripti on seuraava ja se on tallennettu hakemistoon, joka on merkitty "tausta".

#start kotihakemistosta

cd ~

#luoda taustakansio

mkdir tausta

#create python script

sudo nano emailip.py

#kirjoita sähköpostiosoitteeseen emailip.py

tuontiliitäntä

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

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

tulosta (s.getsockname () [0]) x = s.getsockname () [0] s.close ()

tuo smtplib

MIMEMultipart tuonti MIMEMultipart

MIMEText tuo MIMEText

fromaddr = "OMA OSOITE"

toaddr = "VASTAANOTTAVA OSOITE"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['Vastaanottaja] = toaddr

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

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

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

server.starttls ()

server.login (fromaddr, "SALASANASI")

text = msg.as_string ()

server.sendmail (fromaddr, toaddr, text)

server.quit ()

#sitten tämä tekee sen uudelleenkäynnistyksen yhteydessä

sudo nano /etc/rc.local

#syötä /etc/rc.local

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

nuku 3

tehty

_IP = $ (isäntänimi -I) || totta

jos ["$ _IP"]; sitten

printf "IP -osoitteeni on %s / n" "$ _IP"

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

fi

poistua 0

#ja olet valmis

Vaihe 4: Liikkeen asentaminen ja asettaminen

Liikkeiden asentaminen ja asettaminen
Liikkeiden asentaminen ja asettaminen

#päivitys pi

sudo apt-get päivitys

sudo apt-get päivitys

#ladata

sudo apt-get install motion

#now muokkaa tätä tiedostoa seuraavilla muutoksilla

sudo nano /etc/motion/motion.conf

#asettaaksesi standardin tälle opetusohjelmalle, muuta

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

daemon päällä

stream_localhost pois päältä

webcontrol_localhost pois päältä

ffmpeg_output_movies päällä

target_dir/var/lib/motion

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

#paikallisen verkkoselaimen suoratoistovaihtoehdot

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

stream_maxrate 100 #Tämä mahdollistaa reaaliaikaisen suoratoiston, mutta vaatii enemmän kaistanleveyttä ja resursseja

framerate 60 #Tämä mahdollistaa 60 kuvan sieppaamisen sekunnissa #mitä korkeampi tämä on, sitä hitaampi videon käsittely

leveys 640 #Tämä muuttaa näytettävän kuvan leveyttä

korkeus 480 #Tämä muuttaa näytettävän kuvan korkeutta

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

#sähköpostiviestiasetukset…/motion.conf

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

#poista ";" rivin edestä, puolipiste kommentoi viivaa

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

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

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

#astetiikka

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

#vaihtoehdot kuvattu tiedostossa

output_pictures locate_motion_style

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

#sitten muutos

sudo nano/etc/default/motion

#sanoa

start_motion_daemon = kyllä

#viimeinen, käynnistä B **** ylös

sudo -palvelun liikkeen käynnistys

#voit muuttaa komennon "stop" tai "restart"

Vaihe 5: Videoiden lähettäminen sähköpostista liikkeestä havaitsemiseen

Videoiden lähettäminen sähköpostista liikkeestä havaitsemiseen
Videoiden lähettäminen sähköpostista liikkeestä havaitsemiseen

Sähköposti, kun havaitaan liike:

#aloita kotona

dircd ~

#create motion alert python -skripti

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

#kirjoittaa

tuo smtplib

datetime tuonti datetime

MIMEMultipart tuonti MIMEMultipart

MIMEText tuo MIMEText

fromaddr = "OMA OSOITE"

toaddr = "RECIEVINGADDRESS"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['Vastaanottaja] = toaddr

msg ['Subject'] = "Liike havaittu"

body = 'Liike on havaittu. / nAika: % s' % str (datetime.now ())

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

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

server.starttls ()

server.login (fromaddr, "YOURPASSWORD")

text = msg.as_string ()

server.sendmail (fromaddr, toaddr, text)

server.quit ()

Sähköposti Liikkeen video, kun video tallennetaan:

#aloita osoitteesta homedircd ~

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

tuo smtplib

MIMEMultipart tuonti MIMEMultipart

MIMEText tuo MIMEText

MIMEBase -tuonti MIMEBase

sähköpostin tuontikoodereista

fromaddr = "OMA SÄHKÖPOSTI"

toaddr = "Sähköpostiosoite, johon lähetät"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['Vastaanottaja] = toaddr

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

body = "Video liikkeestä havaittu"

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

tuonti

rootpath = '/var/lib/motion'

filelist = [os.path.join (juuripolku, f) f: lle os.listdir (juuripolku)]

tiedostolista = [f f: lle tiedostoluettelossa, jos os.path.isfile (f)]

uusin = maksimi (tiedostoluettelo, avain = lambda x: os.stat (x).st_mtime)

tiedostonimi = uusin

tuonti

rootpath = '/var/lib/motion'

filelist = [os.path.join (juuripolku, f) f: lle os.listdir (juuripolku)]

tiedostolista = [f f: lle tiedostoluettelossa, jos os.path.isfile (f)]

uusin = maksimi (tiedostoluettelo, avain = lambda x: os.stat (x).st_mtime)

liite = auki (uusin, "rb")

part = MIMEBase ('sovellus', 'oktettivirta')

part.set_payload ((liite).read ())

encoders.encode_base64 (osa)

part.add_header ('Content-Disposition', "liite; tiedostonimi = % s" % tiedostonimi)

msg.attach (osa)

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

server.starttls ()

server.login (fromaddr, "SALASANASI")

text = msg.as_string ()

server.sendmail (fromaddr, toaddr, text)

server.quit ()

Vaihe 6: Vianetsintä ja lähteet

Vianetsintä ja lähteet
Vianetsintä ja lähteet

Ongelmien karttoittaminen:

Koska tässä projektissa on useita vaiheita, on useita kohtia, joissa asiat voivat mennä pieleen. Alla on joitain mahdollisia virheitä ja niiden korjaaminen.

  • Kun määrität pi: n lähettämään sinulle sähköpostitse sen nykyisen IP -osoitteen, on tärkeää muokata rc.local -tiedostoa kuten aiemmin on esitetty, koska tämä sallii pienen viiveen ennen kuin ohjelma aktivoituu uudelleenkäynnistyksen jälkeen. Muuten pi ei ole vielä yhteydessä wifi -verkkoon, eikä sähköpostia lähetetä.
  • Kun muokkaat motion.conf -tiedostoa, muista poistaa puolipisteet tiettyjen parametrien edestä. Puolipiste estää tietyn toiminnon, joten muutos ei tule voimaan.
  • Motion.conf -tiedosto on hyvin organisoitu ja yksityiskohtainen. Voit muuttaa asetuksia mieleiseksesi, mutta ymmärrä, että ne voivat vaikuttaa liikkeen sieppausjärjestelmän menestykseen.
  • Sähköpostihälytyksen ja sähköpostivideovaihtoehtojen määrittämisen jälkeen on tärkeää huomata, että liiketunnistetun videon sähköposti kestää hieman kauemmin kuin lähettäminen kuin alkuperäinen hälytysviesti. Tämä johtuu siitä, että video päättyy pari sekuntia sen jälkeen, kun liikettä ei enää havaita, ja koska sähköpostin liite voi olla tarpeeksi suuri, jotta sen vastaanottaminen voi kestää muutaman minuutin. Joissakin tapauksissa, jos liike jatkuu hyvin pitkään, se voi olla liian suuri lähetettäväksi ollenkaan. Tästä syystä on aina hyvä tarkistaa livestriimi ensimmäisen hälytysviestin vastaanottamisen jälkeen.

Miksi Motion ?:

Kun aloitimme tämän hankkeen, otimme huomioon useita erilaisia resursseja. Ensin harkitsimme PiCamin käyttöä, joka on kamerayksikkö, joka on rakennettu erityisesti vadelmapi: lle. PiCam on varmasti kykenevä laite ja sillä on monia sovelluksia, mutta se rajoittuu vain sille suunniteltujen ohjelmien käyttöön ja on suhteellisen kallis verrattuna halpiin monikäyttöisiin web -kameroihin. Joten jotta tämä projekti saataisiin saataville suuremmalle yleisölle, päätimme käyttää yhteistä USB -verkkokameraa. Seuraava kysymys oli, mitä ohjelmistoja sisällyttää. Harkitsimme aluksi OpenCV: tä, joka on ilmainen ohjelmisto, joka mahdollistaa monenlaisia Computer Vision- ja kuvantamisprojekteja. Ongelmista tässä on se, että OpenCV on massiivinen tiedosto, joka vie paljon muistia ja kestää pitkään. Asennuksessa on myös useita vaiheita, mikä jättää vielä enemmän tilaa virheille. Havaitsimme, että erityisprojektimme osalta Motion oli yksinkertaisempi asentaa ja saada käyttöön, mutta paljon tehokkaampi sen toteuttamisessa.

Lähteet

Koodin lähteet:

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

Valokuvat:

SSH Etana:

Postin logo:

Logitechin verkkokamera:

SSH-ikkuna:

Suositeltava: