Satura rādītājs:

Kustības noteikšanas kamera Raspberry Pi 3 ar tiešo plūsmu: 6 soļi
Kustības noteikšanas kamera Raspberry Pi 3 ar tiešo plūsmu: 6 soļi

Video: Kustības noteikšanas kamera Raspberry Pi 3 ar tiešo plūsmu: 6 soļi

Video: Kustības noteikšanas kamera Raspberry Pi 3 ar tiešo plūsmu: 6 soļi
Video: ESP32 Turorial 1 - Introduction to SunFounder's ESP32 IoT Learnig kit Software and Arduino IDE 2024, Novembris
Anonim
Kustības noteikšanas kamera Raspberry Pi 3 ar tiešraides plūsmu
Kustības noteikšanas kamera Raspberry Pi 3 ar tiešraides plūsmu

Ievads

Šajā projektā jūs uzzināsit, kā izveidot kustības noteikšanas kameru, kuru varēsit izmantot kā kameru slazdu, mājdzīvnieku/mazuļu monitoru, drošības kameru un daudz ko citu.

Šis projekts ir sadalīts vairākos posmos:

  • Ievads
  • Pi iestatīšana
  • SSHing jūsu Pi
  • E -pasta adrese jūsu IP adresei sāknēšanas laikā
  • Kustības instalēšana un iestatīšana
  • Video nosūtīšana pa e -pastu no kustības noteikšanas laikā
  • Problēmu novēršana un avoti

Kas jums būs nepieciešams:

  • A Raspberry Pi 3 modelis b ~ ~ 35 USD
  • 8 GB Micro SD karte ~ 10 USD
  • USB tīmekļa kamera ~ ~ 20 USD (šajā projektā tika izmantota Logitech HD Webcam c270)
  • mikro usb kabelis ~ 5 USD
  • arī:
  • uzlādējams 5 voltu akumulators (tālruņa rezerves akumulators), tas padara jūsu projektu bezvadu ~ 20 USD
  • vai
  • USB sienas adapteris ~ 5 USD
  • WiFi savienojums

Piekļuve iestatīšanai:

  • Monitors
  • Pele un tastatūra
  • Dators ar SD kartes slotu
  • Micro SD uz SD kartes pārveidotājs (jāiegādājas kopā ar jūsu micro SD karti)

1. darbība. Pi iestatīšana

PI iestatīšana
PI iestatīšana

Tagad iestatīsim jūsu Pi

Lai sāktu, pārliecinieties, ka jums ir visi nepieciešamie vienumi no pēdējā soļa. Pēc tam veiciet Raspberry Pi tīmekļa vietnes darbības, lai instalētu Raspbian Jessie savā Microsd kartē, kas atrodama šeit.

Kad esat instalējis Raspbian savā Pi, ir pienācis laiks iestatīt dažas pamata funkcijas.

Bezvadu internets

Pirmais solis, lai maksimāli izmantotu savu Pi, ir savienot to ar internetu. Iespējams, esat jau pabeidzis šo darbību, vai nu atrodot WiFi simbolu Pi galvenā ekrāna augšējā labajā stūrī un pierakstoties tur, vai arī darot to pašu pirms Raspbian instalēšanas pēdējā solī. Ja nevarat pierakstīties savā WiFi tīklā, izmantojot Pi darbvirsmas saskarni, varat izpildīt šeit sniegtos norādījumus, lai iestatītu WiFi, izmantojot komandrindu.

SSH

Viens ļoti ērts rīks, kas jums pieejams, lietojot savu Pi, ir iespēja izdot komandas jūsu Pi, kas pazīstams kā iestatījums bez galvas. Izmantojot Secure SHell vai SSH, jūs varat vadīt savu Pi attālināti no datora. Izmantojot šo metodi, viss, kas jums būs nepieciešams, lai rediģētu savu Pi, ir barošanas avots, lai to saglabātu, vairs nav monitora un tastatūras!

2. solis: SSHing jūsu PI

SSHing jūsu PI
SSHing jūsu PI
SSHing jūsu PI
SSHing jūsu PI

SSHing jūsu Raspberry Pi ir vienkārša un ļoti noderīga, jo process ļauj jums izdot komandas savam Pi no jebkura datora, kam nav nekas vairāk kā WiFi savienojums.

Lai SSH ievadītu savā Pi, jums jāveic šīs 3 vienkāršās darbības.

Pirmkārt, jums ir jāiespējo SSH savā Pi. Lai to izdarītu, savā Pi atveriet komandu logu un ierakstiet:

sudo raspi-config

Šī komanda ļauj ieiet konfigurācijas izvēlnē. no turienes jūs vēlaties izmantot bultiņu, cilni un ievadīšanas taustiņus, lai vispirms pārietu uz saskarnes opcijām, pēc tam, lai iespējotu SSH, kā arī kameru, pēc tam izejiet un pārstartējiet pi.

Tālāk jums jāatrod sava Pi IP adrese. Komandu terminālī ierakstiet:

sudo ifconfig

Un jūsu IP adresei vajadzētu būt parādītajā sadaļā wlan0, tieši zem saites encap: ethernet. Iepriekš redzamajā demonstrācijas attēlā IP adrese ir 192.168.1.10.

Visbeidzot, jums Mac datorā ir jāatver iebūvētā termināļa lietotne vai jāatrod un jāievēro trešās puses ssh lietotnes Windows instrukcijas. Lietotnē Terminal ierakstiet:

ssh pi@JŪSU IP ADRESE

Ja Raspi-config laikā neesat mainījis paroli, tad parole, kas jāievada, kad tiek prasīts, būs noklusējuma parole: aveņu.

No turienes jums vajadzētu labi iet!

3. darbība: nosūtiet savu IP adresi palaišanas laikā

Nosūtiet savu IP adresi palaišanas laikā
Nosūtiet savu IP adresi palaišanas laikā

Šajā solī mēs koncentrēsimies uz to, kā piekļūt jūsu Raspberry Pi neatkarīgi no jūsu tīkla. Atkarībā no tīkla, Pi IP adrese mainās. Un, ja jums nav monitora iestatījumu, jums ir jāieslēdz Pi, lai aktivizētu kustības noteikšanas protokolu, mainītu kustības preferences vai piekļūtu jebkuram citam ierīcē. Lai atrisinātu šo problēmu, mēs uzrakstīsim python skriptu, kas palaišanas laikā nosūtīs mums e -pastu uz Pi pašreizējo IP adresi. Python skripts ir šāds un tika saglabāts direktorijā ar atzīmi "fons".

#start mājas direktorijā

cd ~

#izveidojiet fona mapi

mkdir fons

#izveidot python skriptu

sudo nano emailip.py

#rakstīt emailip.py

importa ligzda

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

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

drukāt (s.getsockname () [0]) x = s.getsockname () [0] s.close ()

importēt smtplib

no e -pasta. MIMEMultipart imports MIMEMultipart

no e -pasta. MIMEText importē MIMEText

fromaddr = "TAVA ADRESE"

toaddr = "SAŅEMŠANAS ADRESE"

msg = MIMEMdaudzdaļa ()

msg ['From'] = fromaddr

msg ['Kam'] = adrese

msg ['Subject'] = "IP adrese"

ķermenis = xmsg.attach (MIMEText (pamatteksts, 'vienkāršs'))

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

server.starttls ()

server.login (fromaddr, "JŪSU PAROLE")

text = msg.as_string ()

server.sendmail (fromaddr, toaddr, text)

server.quit ()

#Tad tas tiek darīts pēc pārstartēšanas

sudo nano /etc/rc.local

#ievadiet /etc/rc.local

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

gulēt 3

darīts

_IP = $ (resursdatora nosaukums -I) || taisnība

ja ["$ _IP"]; tad

printf "Mana IP adrese ir %s / n" "$ _IP"

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

fi

izeja 0

#un esat pabeidzis

4. darbība: kustības instalēšana un iestatīšana

Kustības uzstādīšana un iestatīšana
Kustības uzstādīšana un iestatīšana

#atjaunināt pi

sudo apt-get update

sudo apt-get jauninājums

#lejupielāde

sudo apt-get install motion

#now rediģējiet šo failu, veicot šādas izmaiņas

sudo nano /etc/motion/motion.conf

#lai iestatītu šīs apmācības standartu, mainiet

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

ieslēgts dēmons

stream_localhost izslēgts

webcontrol_localhost izslēgts

ffmpeg_output_movies ieslēgts

target_dir/var/lib/motion

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

#local tīmekļa pārlūkprogrammas straumēšanas iespējas

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

stream_maxrate 100 #Tas ļaus straumēt reāllaikā, bet prasa lielāku joslas platumu un resursus

kadru nomaiņas ātrums 60 #Tas ļaus uzņemt 60 kadrus sekundē #jo lielāks tas kļūst, jo lēnāka video apstrāde

platums 640 #Tas maina parādītā attēla platumu

augstums 480 #Tas maina parādītā attēla augstumu

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

#e -pasta video iestatījumi…/motion.conf

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

#dzēst ";" rindas priekšā, semikols komentē līniju

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

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

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

#astika

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

#izlases, kas aprakstītas failā

output_pictures locate_motion_style

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

#tad pārmaiņas

sudo nano/etc/default/motion

#teikt

start_motion_daemon = jā

#pēdējais, sāciet B **** uz augšu

sudo pakalpojuma kustības sākšana

#jūs varat mainīt komandu uz "stop" vai "restart"

5. darbība. Nosūtiet videoklipus pa e -pastu no kustības uz noteikšanu

Video nosūtīšana pa e -pastu no kustības uz noteikšanu
Video nosūtīšana pa e -pastu no kustības uz noteikšanu

E -pasts, kad tiek konstatēta kustība:

#sāc mājās

dircd ~

#create motion alert python skripts

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

#rakstīt

importēt smtplib

no datuma importēšanas datuma laika

no e -pasta. MIMEMultipart imports MIMEMultipart

no e -pasta. MIMEText importē MIMEText

fromaddr = "JŪSU ADRESE"

toaddr = "RECIEVINGADDRESS"

msg = MIMEMdaudzdaļa ()

msg ['From'] = fromaddr

msg ['Kam'] = adrese

msg ['Subject'] = "Atrasta kustība"

body = 'Ir konstatēta kustība. / nLaiks: % s' % str (datetime.now ())

msg.attach (MIMEText (pamatteksts, 'vienkāršs'))

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

server.starttls ()

server.login (fromaddr, "YOURPASSWORD")

text = msg.as_string ()

server.sendmail (fromaddr, toaddr, text)

server.quit ()

Kustības video pa e -pastu, kad video tiek saglabāts:

#sāciet vietnē homedircd ~

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

importēt smtplib

no e -pasta. MIMEMultipart imports MIMEMultipart

no e -pasta. MIMEText importē MIMEText

no e -pasta. MIMEBase importē MIMEBase

no e -pasta importēšanas kodētājiem

fromaddr = "JŪSU E -PASTS"

toaddr = "E -pasta adrese, uz kuru jūs sūtāt"

msg = MIMEMdaudzdaļa ()

msg ['From'] = fromaddr

msg ['Kam'] = adrese

msg ['Subject'] = "Kustības kamera aktivizēta"

body = "Noteikts kustības video"

msg.attach (MIMEText (pamatteksts, 'vienkāršs'))

importēt OS

rootpath = '/var/lib/motion'

failu saraksts = [os.path.join (rootpath, f) f failam os.listdir (rootpath)]

failu saraksts = [f priekš f failu sarakstā, ja os.path.isfile (f)]

jaunākais = max (failu saraksts, atslēga = lambda x: os.stat (x).st_mtime)

faila nosaukums = jaunākais

importēt OS

rootpath = '/var/lib/motion'

failu saraksts = [os.path.join (rootpath, f) f failam os.listdir (rootpath)]

failu saraksts = [f priekš f failu sarakstā, ja os.path.isfile (f)]

jaunākais = max (failu saraksts, atslēga = lambda x: os.stat (x).st_mtime)

pielikums = atvērts (jaunākais, "rb")

part = MIMEBase ('lietojumprogramma', 'okteta straume')

part.set_payload ((pielikums).read ())

encoders.encode_base64 (daļa)

part.add_header ('Content-Disposition', "pielikums; faila nosaukums = % s" % faila nosaukums)

msg.attach (daļa)

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

server.starttls ()

server.login (fromaddr, "JŪSU PAROLE")

text = msg.as_string ()

server.sendmail (fromaddr, toaddr, text)

server.quit ()

6. darbība: problēmu novēršana un avoti

Problēmu novēršana un avoti
Problēmu novēršana un avoti

Problēmu novēršana:

Tā kā šim projektam ir vairāki posmi, ir vairāki punkti, kuros lietas var noiet greizi. Tālāk ir norādītas dažas iespējamās kļūdas un to novēršana.

  • Iestatot pi, lai nosūtītu jums e -pastu ar pašreizējo IP adresi, ir svarīgi rediģēt rc.local failu, kā parādīts iepriekš, jo tas ļauj nedaudz aizkavēties, pirms programma tiek aktivizēta pēc pārstartēšanas. Pretējā gadījumā pi vēl nebūs savienots ar wifi, un e -pasts netiks nosūtīts.
  • Rediģējot failu motion.conf, noteikti izdzēsiet semikolu pirms noteiktiem parametriem. Semikols nomāc noteiktu darbību, tāpēc pretējā gadījumā izmaiņas nestāsies spēkā.
  • Motion.conf fails ir ļoti labi organizēts un detalizēts. Jūtieties brīvi mainīt iestatījumus pēc saviem ieskatiem, taču saprotiet, ka tie var ietekmēt kustību uztveršanas sistēmas panākumus.
  • Pēc e -pasta brīdinājuma un e -pasta video opciju iestatīšanas ir svarīgi ņemt vērā, ka kustību konstatētā videoklipa e -pasta ziņojums aizņems nedaudz ilgāku laiku nekā nosūtīšana nekā sākotnējais brīdinājuma e -pasts. Tas ir tāpēc, ka videoklips beidzas pāris sekundes pēc tam, kad kustība vairs netiek konstatēta, un e -pasta pielikums var būt pietiekami liels, lai saņemtu dažas minūtes. Dažos gadījumos, ja kustība tiek saglabāta ļoti ilgu laiku, tā var būt pārāk liela, lai to vispār nosūtītu. Šī iemesla dēļ vienmēr ir ieteicams pārbaudīt tiešraidi pēc sākotnējā brīdinājuma e -pasta saņemšanas.

Kāpēc Motion ?:

Sākot šo projektu, mēs apsvērām vairākus dažādus resursus. Vispirms mēs apsvērām iespēju izmantot PiCam, kas ir kameras ierīce, kas īpaši izveidota aveņu pi. PiCam noteikti ir spējīga ierīce, un tai ir daudz lietojumprogrammu, taču tā aprobežojas ar tādu programmu izmantošanu, kas ir īpaši paredzētas tai un ir salīdzinoši dārgas salīdzinājumā ar lētām daudzfunkcionālām tīmekļa kamerām. Tāpēc, lai padarītu šo projektu pieejamu lielākai auditorijai, mēs nolēmām izmantot kopēju USB tīmekļa kameru. Nākamais jautājums bija, kuru programmatūru iekļaut. Sākotnēji mēs uzskatījām OpenCV, kas ir bezmaksas programmatūra, kas ļauj izmantot dažādus datora redzes un attēlveidošanas projektus. Viens no jautājumiem šeit ir tas, ka OpenCV ir milzīgs fails, kas aizņem daudz atmiņas un ilgu laiku. Iestatīšanai ir arī vairāki posmi, atstājot vēl vairāk iespēju kļūdām. Mēs atklājām, ka mūsu konkrētajam projektam Motion bija vienkāršāk iestatīt un sākt strādāt, taču tā izpilde bija daudz stabilāka.

Avoti

Koda avoti:

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

Fotoattēlu kredīti:

SSH gliemezis:

Pasta logotips:

Logitech tīmekļa kamera:

SSH logs:

Ieteicams: