Kazalo:

Kamera za zaznavanje gibanja Raspberry Pi 3 s krmo v živo: 6 korakov
Kamera za zaznavanje gibanja Raspberry Pi 3 s krmo v živo: 6 korakov

Video: Kamera za zaznavanje gibanja Raspberry Pi 3 s krmo v živo: 6 korakov

Video: Kamera za zaznavanje gibanja Raspberry Pi 3 s krmo v živo: 6 korakov
Video: Высокая плотность 2022 2024, November
Anonim
Kamera za zaznavanje gibanja Raspberry Pi 3 s krmo v živo
Kamera za zaznavanje gibanja Raspberry Pi 3 s krmo v živo

Uvod

V tem projektu se boste naučili, kako sestaviti kamero za zaznavanje gibanja, ki jo boste lahko uporabljali kot pasti za kamero, hišnega ljubljenčka/dojenčka, varnostno kamero in še veliko več.

Ta projekt je sestavljen iz več korakov:

  • Uvod
  • Nastavitev vašega Pi
  • SSHing v svoj Pi
  • E -poštni naslov IP pri zagonu
  • Namestitev in nastavitev Motion
  • Videoposnetki iz gibanja po zaznavanju po e -pošti
  • Odpravljanje težav in viri

Kaj potrebujete:

  • Model Raspberry Pi 3 stane ~ 35 USD
  • 8 GB Micro SD kartica ~~ 10 USD
  • Spletna kamera USB ~~ $ 20 (ta projekt je uporabljal Logitech HD spletno kamero c270)
  • mikro usb kabel ~~ $ 5
  • bodisi:
  • polnilna baterija 5 V (rezervna baterija telefona), zaradi česar je vaš projekt brezžičen ~ ~ 20 USD
  • ali
  • USB stenski adapter ~~ $ 5
  • Povezava WiFi

Do nastavitev potrebujete dostop:

  • Monitor
  • Miška in tipkovnica
  • Računalnik z režo za kartico SD
  • Pretvornik kartic Micro SD v SD (priložen mora biti vaši kartici micro SD)

1. korak: Nastavitev vašega Pi

Nastavitev vašega Pi
Nastavitev vašega Pi

Zdaj pa nastavimo vaš Pi

Za začetek se prepričajte, da imate vse potrebne elemente iz zadnjega koraka. Nato sledite korakom na spletnem mestu Raspberry Pi za namestitev Raspbian Jessie na kartico Microsd, ki jo najdete tukaj.

Ko namestite Raspbian na svoj Pi, je čas, da nastavite nekaj osnovnih funkcij.

Wifi

Prvi korak, da kar najbolje izkoristite svoj Pi, je, da ga povežete z internetom. Ta korak ste morda že zaključili tako, da v zgornjem desnem kotu glavnega zaslona vašega Pi poiščete simbol WiFi in se tam prijavite, ali pa storite isto, preden namestite Raspbian v zadnjem koraku. Če se ne morete prijaviti v omrežje WiFi z namiznega vmesnika vašega Pi, sledite spodnjim navodilom za nastavitev WiFi prek ukazne vrstice.

SSH

Eno zelo priročno orodje, ki vam je na voljo pri uporabi vašega Pi, je možnost izdajanja ukazov za vaš Pi v tako imenovani brezglavi nastavitvi. Z uporabo Secure SHell ali SSH lahko Pi upravljate na daljavo iz računalnika. Pri tej metodi boste za urejanje svojega Pi potrebovali le vir energije, da ga ohranite, nič več monitorja in tipkovnice!

2. korak: SSHing v vaš PI

SSHing v vaš PI
SSHing v vaš PI
SSHing v vaš PI
SSHing v vaš PI

SSHing v vaš Raspberry Pi je enostaven in zelo uporaben, saj vam postopek omogoča, da svojemu Pi pišete ukaze iz katerega koli računalnika brez povezave WiFi.

Če želite SSH v svoj Pi, morate slediti tem 3 preprostim korakom.

Najprej morate omogočiti SSH na svojem Pi. Če želite to narediti, odprite ukazno okno v svojem Pi in vnesite:

sudo raspi-config

Ta ukaz vam omogoča vstop v konfiguracijski meni. od tam boste želeli s puščicami, zavihki in tipkami za vnos najprej odpreti možnosti vmesnika, nato omogočiti SSH, pa tudi kamero, nato zapustiti in znova zagnati pi.

Nato morate poiskati naslov IP svojega Pi. V ukazni terminal vnesite:

sudo ifconfig

Vaš IP naslov mora biti v razdelku wlan0, ki se prikaže, tik pod Link encap: ethernet. Na zgornji predstavitveni sliki je naslov IP 192.168.1.10.

Nazadnje boste morali v računalniku Mac odpreti vgrajeno terminalno aplikacijo ali poiskati in upoštevati navodila za aplikacijo ssh tretje osebe za okna. V aplikacijo Terminal vnesite:

ssh pi@VAŠ IP -NASLOV

Če gesla niste spremenili v Raspi-config, bo geslo, ki ga boste morali vnesti ob pozivu, privzeto geslo: malina.

Od tam bi morali biti dobri!

3. korak: Po zagonu po e -pošti pošljite svoj IP naslov

Po zagonu po e -pošti pošljite svoj IP naslov
Po zagonu po e -pošti pošljite svoj IP naslov

V tem koraku se bomo osredotočili na to, kako dostopati do vašega Raspberry Pi, ne glede na omrežje, v katerem ste. Odvisno od omrežja se IP -naslov Pi spremeni. Če nimate nastavljenega monitorja, bi morali vnesti ssh v Pi, da sprožite protokol zaznavanja gibanja, spremenite nastavitve gibanja ali dostopate do česa drugega v napravi. Za rešitev tega problema bomo napisali python skript, ki nam po zagonu po e -pošti pošlje trenutni IP naslov Pi. Skript python je naslednji in je bil shranjen v imeniku z oznako "ozadje".

#start v domačem imeniku

cd ~

#create mapo v ozadju

ozadje mkdir

#create python skript

sudo nano emailip.py

#write v emailip.py

uvozna vtičnica

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. MIMEM večdelni uvoz MIMEMultipart

iz e -pošte. MIMEText uvoz MIMEText

fromaddr = "VAŠ NASLOV"

toaddr = "PREJEMANJE NASLOVA"

msg = MIMEM večdelni ()

msg ['From'] = fromaddr

msg ['Za'] = toaddr

msg ['Subject'] = "Naslov IP"

body = xmsg.attach (MIMEText (telo, 'navaden'))

strežnik = smtplib. SMTP ('smtp.gmail.com', 587)

server.starttls ()

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

besedilo = msg. as_string ()

server.sendmail (fromaddr, toaddr, besedilo)

server.quit ()

#potem to stori ob ponovnem zagonu

sudo nano /etc/rc.local

#enter v /etc/rc.local

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

zaspi 3

Končano

_IP = $ (ime gostitelja -I) || prav

če ["$ _IP"]; potem

printf "Moj naslov IP je %s / n" "$ _IP"

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

fi

izhod 0

#in končali ste

4. korak: Namestitev in nastavitev gibanja

Namestitev in nastavitev Motion
Namestitev in nastavitev Motion

#posodobi pi

sudo apt-get posodobitev

sudo apt-get nadgradnja

#Prenesi

sudo apt-get install motion

#Zdaj uredite to datoteko z naslednjimi spremembami

sudo nano /etc/motion/motion.conf

#spremenite, če želite nastaviti standard za to vadnico

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

demon vklopljen

stream_localhost izklopljen

webcontrol_localhost izklopljen

ffmpeg_output_movies on

target_dir/var/lib/motion

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

#local možnosti pretakanja v spletnem brskalniku

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

stream_maxrate 100 #To bo omogočilo pretakanje v realnem času, vendar zahteva več pasovne širine in virov

framerate 60 #To bo omogočilo zajem 60 sličic na sekundo #višja kot je, počasnejša je obdelava videa

width 640 #To spremeni širino prikazane slike

height 480 #To spremeni višino prikazane slike

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

#emailing video nastavitve v…/motion.conf

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

#delete ";" pred vrstico, podpičje komentira vrstico

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

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

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

#astektika

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

#choices, opisanih v datoteki

izhodne slike locate_motion_style

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

#potem spremenite

sudo nano/etc/default/motion

#reči

start_motion_daemon = da

#nazadnje, zaženite B **** navzgor

zagon storitve sudo

#ukaz lahko spremenite v "stop" ali "restart"

5. korak: pošiljanje videoposnetkov iz gibanja po zaznavanju po e -pošti

Videoposnetki iz gibanja po zaznavanju po e -pošti
Videoposnetki iz gibanja po zaznavanju po e -pošti

E -pošta, ko zazna gibanje:

#začnite doma

dircd ~

#create python skript za opozarjanje na gibanje

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

#piši

uvoz smtplib

od datuma uvoza datetime

iz e -pošte. MIMEM večdelni uvoz MIMEMultipart

iz e -pošte. MIMEText uvoz MIMEText

fromaddr = "VAŠ NASLOV"

toaddr = "PRIJEMNIK"

msg = MIMEM večdelni ()

msg ['From'] = fromaddr

msg ['Za'] = toaddr

msg ['Subject'] = "Zaznano gibanje"

body = 'Zaznano je gibanje. / nTime: % s' % str (datetime.now ())

msg.attach (MIMEText (telo, 'navaden'))

strežnik = smtplib. SMTP ('smtp.gmail.com', 587)

server.starttls ()

server.login (fromaddr, "YOURPASSWORD")

besedilo = sporočilo as_string ()

server.sendmail (fromaddr, toaddr, besedilo)

server.quit ()

Po e -pošti Videoposnetek gibanja, ko je video shranjen:

#začnite pri homedircd ~

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

uvoz smtplib

iz e -pošte. MIMEM večdelni uvoz MIMEMultipart

iz e -pošte. MIMEText uvoz MIMEText

iz e -pošte. MIMEBase uvoz MIMEBase

iz kodirnikov za uvoz e -pošte

fromaddr = "VAŠ E -POŠTA"

toaddr = "E -POŠTNI NASLOV, KI JIH POŠLJATE"

msg = MIMEM večdelni ()

msg ['From'] = fromaddr

msg ['Za'] = toaddr

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

body = "Videoposnetek zaznanega gibanja"

msg.attach (MIMEText (telo, 'navaden'))

uvoz os

rootpath = '/var/lib/motion'

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

filelist = [f za f na seznamu datotek, če os.path.isfile (f)]

najnovejši = max (seznam datotek, ključ = lambda x: os.stat (x).st_mtime)

ime datoteke = najnovejša

uvoz os

rootpath = '/var/lib/motion'

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

filelist = [f za f na seznamu datotek, če os.path.isfile (f)]

najnovejši = max (seznam datotek, ključ = lambda x: os.stat (x).st_mtime)

priloga = odprta (najnovejša, "rb")

del = MIMEBase ('aplikacija', 'oktetni tok')

part.set_payload ((priloga). read ())

kodirniki.encode_base64 (del)

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

msg.attach (del)

strežnik = smtplib. SMTP ('smtp.gmail.com', 587)

server.starttls ()

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

besedilo = msg. as_string ()

server.sendmail (fromaddr, toaddr, besedilo)

server.quit ()

6. korak: Odpravljanje težav in viri

Odpravljanje težav in viri
Odpravljanje težav in viri

Odpravljanje težav:

Ker ima ta projekt več stopenj, je na več točkah, kjer lahko gre narobe. Spodaj je navedenih nekaj možnih napak in kako jih odpraviti.

  • Ko nastavite pi, da vam po e -pošti pošlje svoj trenutni naslov IP, je ključnega pomena, da uredite datoteko rc.local, kot je prikazano prej, ker to omogoča rahlo zakasnitev, preden se program po ponovnem zagonu aktivira. V nasprotnem primeru pi še ne bo povezan z wifi in e -pošta ne bo poslana.
  • Pri urejanju datoteke motion.conf izbrišite podpičje pred določenimi parametri. Podpičje zareže določeno dejanje, zato v nasprotnem primeru sprememba ne bo delovala.
  • Datoteka motion.conf je zelo dobro organizirana in podrobna. Nastavitve lahko spremenite po svojih željah, vendar razumejte, da lahko vplivajo na uspeh sistema za zajemanje gibanja.
  • Po nastavitvi e -poštnega opozorila in možnosti video posnetkov po e -pošti je pomembno upoštevati, da bo e -pošta videoposnetka, zaznanega pri gibanju, trajala malo dlje kot pošiljanje kot prvotno e -poštno opozorilo. To je zato, ker se videoposnetek zaključi nekaj sekund po tem, ko gibanja ni več zaznano, in ker je lahko priloga e -pošte dovolj velika, da za sprejem potrebuje nekaj minut. V nekaterih primerih, če je gibanje dolgotrajno, je morda sploh preveliko za pošiljanje. Zaradi tega je po prejemu začetnega e -poštnega opozorila vedno dobro preveriti prenos v živo.

Zakaj Motion ?:

Ko smo se prvič lotili tega projekta, smo upoštevali več različnih virov. Najprej smo razmišljali o uporabi PiCam, ki je enota kamere, izdelana posebej za malinovo pi. PiCam je vsekakor sposobna naprava in ima veliko aplikacij, vendar je omejena na uporabo programov, ki so zanj posebej zasnovani, in je relativno drag v primerjavi s poceni večnamenskimi spletnimi kamerami. Zato, da bi bil ta projekt dostopen širšemu občinstvu, smo se odločili za uporabo skupne spletne kamere USB. Naslednje vprašanje je bilo, katero programsko opremo vključiti. Sprva smo razmišljali o OpenCV, ki je brezplačna programska oprema, ki omogoča številne različne vrste projektov računalniškega vida in slikanja. Eno od vprašanj tukaj je, da je OpenCV velika datoteka, ki zavzame veliko pomnilnika in je dolgo nastavljena. Nastavitev ima tudi več stopenj, kar pušča še več prostora za napake. Ugotovili smo, da je bil za naš poseben projekt Motion enostavnejši za nastavitev in delo, vendar je pri izvedbi veliko bolj robusten.

Viri

Viri kode:

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:

Polž SSH:

Logotip pošte:

Spletna kamera Logitech:

Okno SSH:

Priporočena: