Ang Camera ng Raspberry Pi 3 Motion Detection na May Live Feed: 6 na Hakbang
Ang Camera ng Raspberry Pi 3 Motion Detection na May Live Feed: 6 na Hakbang
Anonim
Ang Camera ng Raspberry Pi 3 Motion Detection na May Live feed
Ang Camera ng Raspberry Pi 3 Motion Detection na May Live feed

Panimula

Sa proyektong ito, matututunan mo kung paano bumuo ng isang camera ng pagkakita ng paggalaw na magagamit mo bilang isang bitag ng kamera, isang monitor ng alagang hayop / sanggol, isang security camera, at marami pa.

Ang Proyekto na ito ay inayos sa maraming mga hakbang:

  • Panimula
  • Pagse-set up ng iyong Pi
  • SSHing sa iyong Pi
  • Pag-email sa iyong IP address nang boot
  • Pag-install at pag-set up ng Paggalaw
  • Pag-email sa Mga Video mula sa Paggalaw sa pagtuklas
  • Pag-troubleshoot at Mga Pinagmulan

Ano ang kakailanganin mo:

  • Isang modelo ng Raspberry Pi 3 b ~~ $ 35
  • 8gb Micro SD card ~~ $ 10
  • USB Webcam ~~ $ 20 (ang proyektong ito ay gumamit ng isang Logitech HD Webcam c270)
  • micro usb cable ~~ $ 5
  • alinman sa:
  • rechargeable 5 volt baterya pack (telepono backup baterya), ito ay gumagawa ng iyong proyekto wireless ~~ $ 20
  • o
  • usb wall adapter ~~ $ 5
  • Isang koneksyon sa WiFi

Ano ang kailangan mo ng pag-access para sa pag-set up:

  • Isang monitor
  • Isang mouse at keyboard
  • Isang computer na may puwang ng SD card
  • Isang Micro SD to SD card converter (dapat kasama ang iyong micro SD card)

Hakbang 1: Pag-set up ng Iyong Pi

Pagse-set up ng iyong Pi
Pagse-set up ng iyong Pi

Ngayon ay i-set up natin ang iyong Pi

Upang magsimula, tiyaking mayroon ka ng lahat ng mga kinakailangang item mula sa huling hakbang. Pagkatapos, sundin ang mga hakbang sa website ng Raspberry Pi sa pag-install ng Raspbian Jessie sa iyong kard ng Mikros, na matatagpuan dito.

Kapag na-install mo na ang Raspbian sa iyong Pi, oras na upang makakuha ng ilang mga pangunahing tampok na na-set up.

WiFi

Ang unang hakbang upang masulit ang iyong Pi ay upang ikonekta ang iyong ito sa internet. Maaaring nakumpleto mo na ang hakbang na ito alinman sa pamamagitan ng paghanap ng simbolo ng WiFi sa kanang sulok sa itaas ng pangunahing screen ng iyong Pi at pag-sign in doon, o paggawa ng parehong bagay bago i-install ang Raspbian sa huling hakbang. Kung hindi ka makapag-sign in sa iyong WiFi network mula sa interface ng iyong Pi, maaari mong sundin ang mga tagubilin dito upang i-set up ang WiFi sa pamamagitan ng linya ng utos.

SSH

Ang isang napaka madaling gamiting tool na magagamit sa iyo kapag ginagamit ang iyong Pi ay ang pagpipilian upang mag-isyu ng mga utos sa iyong Pi sa kung ano ang kilala bilang isang walang ulong pag-setup. Sa pamamagitan ng paggamit ng isang Secure SHell, o SSH, maaari mong makontrol ang iyong Pi mula sa malayo mula sa isang computer. Sa pamamaraang ito, ang kailangan mo lamang i-edit ang iyong Pi ay isang mapagkukunan ng kuryente upang mapanatili ito, wala nang monitor at keyboard!

Hakbang 2: SSHing Sa Iyong PI

SSHing Sa Iyong PI
SSHing Sa Iyong PI
SSHing Sa Iyong PI
SSHing Sa Iyong PI

Ang SSHing sa iyong Raspberry Pi ay madali at kapaki-pakinabang, dahil pinapayagan ka ng proseso na mag-isyu ng mga utos sa iyong Pi mula sa anumang computer na walang higit sa isang koneksyon sa WiFi.

Upang SSH sa iyong Pi, kailangan mong sundin ang 3 simpleng mga hakbang na ito.

Una, kailangan mong paganahin ang SSH sa iyong Pi. Upang magawa ito, buksan ang isang window ng utos sa iyong Pi, at i-type ang:

sudo raspi-config

Pinapayagan ka ng utos na ito na magpasok ng isang menu ng pagsasaayos. mula doon gugustuhin mong gamitin ang arrow, tab, at ipasok ang mga key upang unang pumunta sa mga pagpipilian sa interfacing, pagkatapos ay upang paganahin ang SSH, pati na rin ang camera, pagkatapos ay lumabas at i-reboot ang pi.

Susunod, kakailanganin mong hanapin ang IP address ng iyong Pi. Sa isang terminal ng utos, uri:

sudo ifconfig

At ang iyong IP address ay dapat na nasa seksyon ng wlan0 na pop up, sa ilalim mismo ng Link encap: ethernet. Sa larawan ng demo sa itaas, ang IP Address ay 192.168.1.10.

Panghuli, kakailanganin mong buksan ang built in na terminal app sa isang mac, o hanapin at sundin ang mga tagubilin para sa isang 3rd party ssh app para sa mga bintana. Sa Terminal app, uri:

ssh pi @ IYONG IP ADDRESS

Kung hindi mo binago ang password habang nasa Raspi-config, pagkatapos ang iyong password na ipasok kapag na-prompt ay ang default na password: raspberry.

Mula doon, dapat ay mabuti kang pumunta!

Hakbang 3: I-email ang Iyong IP Address sa Boot

I-email ang Iyong IP Address sa Boot
I-email ang Iyong IP Address sa Boot

Sa hakbang na ito magtutuon kami sa kung paano i-access ang iyong Raspberry Pi, hindi alintana ang network kung nasaan ka. Depende sa network, nagbabago ang IP address ng Pi. At kung wala kang isang pag-setup ng monitor, kakailanganin mong mag-ssh sa Pi upang ma-trigger ang proteksyon ng paggalaw ng galaw, baguhin ang mga kagustuhan sa paggalaw, o mag-access ng anupaman sa aparato. Upang malutas ang problemang ito magsusulat kami ng isang script ng sawa na nag-email sa amin sa kasalukuyang IP address ng Pi sa pagsisimula. Ang script ng sawa ay ang mga sumusunod at naimbak sa isang direktoryo na minarkahan ng "background".

#start sa direktoryo ng bahay

cd ~

# Lumikha ng folder sa background

mkdir background

# Lumikha ng script ng sawa

sudo nano emailip.py

#sulat sa emailip.py

mag-import ng socket

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

mula sa email. MIMEMultipart import MIMEMultipart

mula sa email. MIMEText import MIMEText

fromaddr = "IYONG ADDRESS"

toaddr = "TUMANGGAP NG ADDRESS"

msg = MIMEMultipart ()

msg ['Mula'] = mula sadrad

msg ['To'] = toaddr

msg ['Paksa'] = "IP Address"

body = xmsg.attach (MIMEText (katawan, 'payak'))

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

server.starttls ()

server.login (fromaddr, "IYONG PASSWORD")

text = msg.as_string ()

server.sendmail (fromaddr, toaddr, text)

server.quit ()

#tapos ginagawa ito sa pag-reboot

sudo nano /etc/rc.local

#enter sa /etc/rc.local

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

matulog ka 3

tapos na

_IP = $ (hostname -ako) || totoo

kung ["$ _IP"]; tapos

printf "Ang aking IP address ay% s / n" "$ _IP"

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

fi

exit 0

#at tapos ka na

Hakbang 4: Pag-install at Pag-set up ng Paggalaw

Pag-install at Pag-set up ng Paggalaw
Pag-install at Pag-set up ng Paggalaw

#update pi

sudo apt-get update

sudo apt-get upgrade

#download

sudo apt-get install na paggalaw

#ngayon i-edit ang file na ito sa mga sumusunod na pagbabago

sudo nano /etc/motion/motion.conf

#to magtakda ng pamantayan para sa tutorial na ito, baguhin

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

daemon sa

naka-off ang stream_localhost

naka-off ang webcontrol_localhost

ffmpeg_output_movies sa

target_dir / var / lib / paggalaw

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

#local na pagpipilian sa streaming ng web browser

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

stream_maxrate 100 # Papayagan nito ang real-time streaming ngunit nangangailangan ng higit pang bandwidth at mga mapagkukunan

framerate 60 # Papayagan nito ang 60 mga frame na makuha bawat segundo # mas mataas ang nakukuha nito, mas mabagal ang pagproseso ng video

lapad 640 # Binabago nito ang lapad ng ipinakitang imahe

taas 480 # Binabago nito ang taas ng ipinakitang imahe

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

#emailing ang mga setting ng video sa… / motion.conf

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

#delete ang ";" sa harap ng linya, nagkomento ang semicolon ng linya

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

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

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

#astectics

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

#choices na inilarawan sa file

output_pictures locate_motion_style

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

#tapos magbago

sudo nano / etc / default / paggalaw

#ng sabihin

start_motion_daemon = oo

# huli, simulan ang B **** up

sudo magsimula ang paggalaw ng serbisyo

#pwede mong baguhin ang utos na "ihinto", o "muling simulan"

Hakbang 5: Pag-email sa Mga Video Mula sa Paggalaw sa Pagtuklas

Pag-email sa Mga Video Mula sa Paggalaw sa Pagtuklas
Pag-email sa Mga Video Mula sa Paggalaw sa Pagtuklas

Email kapag nakita ang paggalaw:

#start at home

dircd ~

# Lumikha ng script ng alerto sa paggalaw ng paggalaw

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

#sulat

import smtplib

mula sa datime import datime

mula sa email. MIMEMultipart import MIMEMultipart

mula sa email. MIMEText import MIMEText

fromaddr = "IYONG KADADALA"

toaddr = "RECIEVINGADDRESS"

msg = MIMEMultipart ()

msg ['Mula'] = mula sadrad

msg ['To'] = toaddr

msg ['Paksa'] = "Nakita ang Paggalaw"

body = 'May kilos na napansin. / nTime:% s'% str (datetime.now ())

msg.attach (MIMEText (katawan, 'payak'))

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

server.starttls ()

server.login (fromaddr, "HISPASSWORD")

text = msg.as_string ()

server.sendmail (fromaddr, toaddr, text)

server.quit ()

Email Video ng paggalaw kapag nai-save ang video:

#start at homedircd ~

# Lumikha ng galaw ng video python scriptsudo nano /home/pi/background/motionvid.py

import smtplib

mula sa email. MIMEMultipart import MIMEMultipart

mula sa email. MIMEText import MIMEText

mula sa email. MIMEBase import MIMEBase

mula sa mga encoder ng pag-import ng email

fromaddr = "IYONG EMAIL"

toaddr = "Email ADDRESS NA IYONG PINADALA"

msg = MIMEMultipart ()

msg ['Mula'] = mula sadrad

msg ['To'] = toaddr

msg ['Paksa'] = "Na-aktibo ang Motion Cam"

body = "Nakita ang Video ng Paggalaw"

msg.attach (MIMEText (katawan, 'payak'))

import os

rootpath = '/ var / lib / paggalaw'

filelist = [os.path.join (rootpath, f) para sa f in os.listdir (rootpath)]

filelist = [f para sa f sa filelist kung os.path.isfile (f)]

pinakabagong = max (filelist, key = lambda x: os.stat (x).st_mtime)

filename = pinakabago

import os

rootpath = '/ var / lib / paggalaw'

filelist = [os.path.join (rootpath, f) para sa f in os.listdir (rootpath)]

filelist = [f para sa f sa filelist kung os.path.isfile (f)]

pinakabagong = max (filelist, key = lambda x: os.stat (x).st_mtime)

kalakip = bukas (pinakabago, "rb")

bahagi = MIMEBase ('application', 'octet-stream')

part.set_payload ((kalakip).read ())

encoders.encode_base64 (bahagi)

part.add_header ('Nilalaman-Disposisyon', "kalakip; filename =% s"% filename)

msg.attach (bahagi)

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

server.starttls ()

server.login (fromaddr, "IYONG PASSWORD")

text = msg.as_string ()

server.sendmail (fromaddr, toaddr, text)

server.quit ()

Hakbang 6: Pag-troubleshoot at Mga Pinagmulan

Pag-troubleshoot at Mga Pinagmulan
Pag-troubleshoot at Mga Pinagmulan

Pag-troubleshoot:

Dahil ang proyektong ito ay may maraming mga yugto, maraming mga punto kung saan maaaring magkamali ang mga bagay. Nasa ibaba ang ilan sa mga posibleng error na maaaring mangyari at kung paano ayusin ang mga ito.

  • Kapag ang pag-set up ng iyong pi upang ma-email sa iyo ang kasalukuyang IP address, mahalaga na i-edit ang rc.local file tulad ng ipinakita nang mas maaga dahil pinapayagan nito ang isang kaunting pagkaantala bago mag-aktibo ang programa pagkatapos ng pag-reboot. Kung hindi man ay hindi pa konektado ang pi sa wifi, at hindi ipapadala ang email.
  • Kapag ang pag-edit ng file ng motion.conf siguraduhing tanggalin ang mga semicolon sa harap ng ilang mga parameter. Pinipigilan ng semicolon ang isang naibigay na pagkilos, kung hindi man ay hindi magkakabisa ang pagbabago.
  • Ang file ng motion.conf ay napakahusay na ayos at detalyado. Huwag mag-atubiling baguhin ang mga setting ayon sa gusto mo, ngunit maunawaan na maaari nilang maapektuhan ang tagumpay ng sistema ng paggalaw ng paggalaw.
  • Matapos i-set up ang mga pagpipilian sa alerto sa email at email video, mahalagang tandaan na ang email ng kilos na napansin na video ay tatagal nang medyo mas matagal kaysa magpadala kaysa sa paunang email ng alerto. Ito ay dahil sa natapos ang video ng ilang segundo matapos ang paggalaw ay hindi na nakita, at dahil ang kalakip ng email ay maaaring sapat na malaki upang mangailangan ng ilang minuto upang matanggap. Sa ilang mga kaso, kung ang paggalaw ay napapanatili para sa isang napakahabang halaga ng oras maaari itong masyadong malaki upang maipadala ang lahat. Dahil dito palaging isang magandang ideya na suriin ang livestream pagkatapos matanggap ang paunang email ng alerto.

Bakit ang Paggalaw ?:

Nang unang pasimula sa proyektong ito ay isinasaalang-alang namin ang maraming iba't ibang mga mapagkukunan. Una naming isinasaalang-alang ang paggamit ng PiCam na isang unit ng camera na partikular na binuo para sa raspberry pi. Ang PiCam ay tiyak na isang may kakayahang aparato at maraming mga application, ngunit limitado ito sa paggamit ng mga programa na partikular na idinisenyo para dito at medyo mahal kumpara sa murang multipurpose na mga webcam. Kaya upang ma-access ang proyektong ito para sa isang mas malaking madla, nagpasya kaming gumamit ng isang karaniwang USB webcam. Ang susunod na isyu ay aling software ang isasama. Una naming isinasaalang-alang ang OpenCV na isang libreng software na nagbibigay-daan para sa maraming iba't ibang mga uri ng Computer Vision at mga proyekto sa imaging. Sa mga isyu dito ay ang OpenCV ay isang napakalaking file na tumatagal ng maraming memorya at isang mahabang oras na na-set up. Ang pag-setup ay mayroon ding maraming yugto, na iniiwan ang mas maraming lugar para sa error. Nalaman namin na para sa aming tukoy na proyekto, ang Motion ay mas simple upang mai-set up at magtrabaho, ngunit mas matatag sa pagpapatupad nito.

Pinagmulan

Mga Pinagmulan ng Code:

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

Mga kredito sa larawan:

SSH Snail:

Logo ng mail:

Logitech webcam:

SSH window: