Kamera Pengesanan Gerak Raspberry Pi 3 Dengan Suapan Langsung: 6 Langkah
Kamera Pengesanan Gerak Raspberry Pi 3 Dengan Suapan Langsung: 6 Langkah
Anonim
Kamera Pengesanan Gerak Raspberry Pi 3 Dengan Suapan Langsung
Kamera Pengesanan Gerak Raspberry Pi 3 Dengan Suapan Langsung

Pengenalan

Dalam projek ini, anda akan belajar bagaimana membina kamera pengesanan gerakan yang akan dapat anda gunakan sebagai perangkap kamera, monitor haiwan peliharaan / bayi, kamera keselamatan, dan banyak lagi.

Projek ini disusun dalam beberapa langkah:

  • Pengenalan
  • Menyiapkan Pi anda
  • Melampirkan Pi anda
  • Mengemailkan alamat IP Anda semasa boot
  • Memasang dan menyiapkan Motion
  • Mengemailkan Video dari Motion semasa pengesanan
  • Penyelesaian Masalah dan Sumber

Apa yang anda perlukan:

  • Model Raspberry Pi 3 b ~~ $ 35
  • Kad SD Micro 8gb ~~ $ 10
  • USB Webcam ~~ $ 20 (projek ini menggunakan Logitech HD Webcam c270)
  • kabel usb mikro ~~ $ 5
  • sama ada:
  • pek bateri 5 volt yang boleh dicas semula (bateri sandaran telefon), ini menjadikan projek anda tanpa wayar ~~ $ 20
  • atau
  • penyesuai dinding usb ~~ $ 5
  • Sambungan WiFi

Apa yang anda perlukan untuk akses:

  • Monitor
  • Tetikus dan papan kekunci
  • Komputer dengan slot kad SD
  • Penukar kad Micro SD ke SD (harus disertakan dengan kad micro SD anda)

Langkah 1: Menyiapkan Pi Anda

Menyiapkan Pi Anda
Menyiapkan Pi Anda

Sekarang mari sediakan Pi anda

Untuk memulakan, pastikan anda mempunyai semua item yang diperlukan dari langkah terakhir. Kemudian, ikuti langkah-langkah di laman web Raspberry Pi untuk memasang Raspbian Jessie pada kad Microsd anda, yang terdapat di sini.

Sebaik sahaja anda memasang Raspbian pada Pi anda, sudah tiba masanya untuk menyiapkan beberapa ciri asas.

WiFi

Langkah pertama untuk memaksimalkan Pi anda adalah menghubungkannya ke internet. Anda mungkin sudah menyelesaikan langkah ini sama ada dengan mencari simbol WiFi di sudut kanan atas skrin utama Pi anda dan log masuk ke sana, atau melakukan perkara yang sama sebelum memasang Raspbian pada langkah terakhir. Sekiranya anda tidak dapat masuk ke rangkaian WiFi anda dari antara muka desktop Pi anda, anda boleh mengikuti petunjuk di sini untuk menyediakan WiFi melalui baris perintah.

SSH

Salah satu alat yang sangat berguna untuk anda ketika menggunakan Pi anda adalah pilihan untuk mengeluarkan perintah kepada Pi anda dalam apa yang dikenali sebagai persediaan tanpa kepala. Dengan menggunakan Secure SHell, atau SSH, anda dapat mengawal Pi anda dari jauh dari komputer. Dengan kaedah ini, semua yang anda perlukan untuk mengedit Pi adalah sumber kuasa untuk terus menggunakannya, tidak perlu lagi monitor dan papan kekunci!

Langkah 2: SSH Ke PI Anda

SSM Ke PI Anda
SSM Ke PI Anda
SSH Ke PI Anda
SSH Ke PI Anda

Masuk ke dalam Raspberry Pi anda mudah dan sangat berguna, kerana prosesnya membolehkan anda mengeluarkan perintah ke Pi anda dari komputer mana pun yang tidak lebih dari sambungan WiFi.

Untuk memasukkan SSH ke dalam Pi anda, anda perlu mengikuti 3 langkah mudah ini.

Pertama, anda perlu mengaktifkan SSH pada Pi anda. Untuk melakukan ini, buka tetingkap perintah di Pi anda, dan ketik:

sudo raspi-config

Perintah ini membolehkan anda memasuki menu konfigurasi. dari sana anda akan mahu menggunakan anak panah, tab, dan memasukkan kekunci untuk masuk terlebih dahulu ke pilihan antara muka, kemudian untuk mengaktifkan SSH, serta kamera, kemudian keluar dan reboot pi.

Seterusnya, anda perlu mencari alamat IP Pi anda. Di terminal arahan, ketik:

sudo ifconfig

Dan alamat IP anda harus berada di bahagian wlan0 yang muncul, tepat di bawah Link encap: ethernet. Dalam gambar demo di atas, Alamat IP adalah 192.168.1.10.

Terakhir, anda perlu membuka aplikasi terminal terpasang di mac, atau mencari dan mengikuti arahan untuk aplikasi ssh pihak ketiga untuk windows. Dalam aplikasi Terminal, ketik:

ssh pi @ ALAMAT IP ANDA

Sekiranya anda belum menukar kata laluan semasa berada di Raspi-config, maka kata laluan anda untuk memasukkan apabila diminta adalah kata laluan lalai: raspberry.

Dari sana, anda pasti boleh pergi!

Langkah 3: E-melkan Alamat IP Anda di Boot

E-melkan Alamat IP Anda semasa Boot
E-melkan Alamat IP Anda semasa Boot

Pada langkah ini, kami akan memfokuskan cara mengakses Raspberry Pi anda, tanpa mengira rangkaian yang anda gunakan. Bergantung pada rangkaian, alamat IP Pi berubah. Dan jika anda tidak mempunyai penyediaan monitor, anda perlu memasukkan Pi untuk mencetuskan protokol pengesanan gerakan, mengubah pilihan pergerakan, atau mengakses perkara lain pada peranti. Untuk menyelesaikan masalah ini, kami akan menulis skrip python yang menghantar e-mel kepada kami alamat IP semasa Pi semasa memulakan. Skrip python adalah seperti berikut dan disimpan dalam direktori bertanda "latar belakang".

#mulakan dalam direktori utama

cd ~

#cipta folder latar belakang

latar belakang mkdir

#buat skrip python

sudo nano emailip.py

#tulis di emailip.py

soket import

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

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

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

import smtplib

dari e-mel. MIMEMultipart import MIMEMultipart

dari e-mel. MIMETeks import MIMEText

fromaddr = "ALAMAT ANDA"

toaddr = "MENERIMA ALAMAT"

msg = MIMEMultipart ()

msg ['Dari'] = fromaddr

msg ['To'] = toaddr

msg ['Subjek'] = "Alamat IP"

body = xmsg.attach (MIMEText (badan, 'biasa'))

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

pelayan.starttls ()

server.login (fromaddr, "KATA LALUAN ANDA")

teks = msg.as_string ()

server.sendmail (fromaddr, toaddr, teks)

pelayan.quit ()

#kemudian ini dilakukan semasa reboot

sudo nano /etc/rc.local

#masukkan di /etc/rc.local

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

tidur 3

selesai

_IP = $ (nama host -I) || benar

jika ["$ _IP"]; kemudian

printf "Alamat IP saya adalah% s / n" "$ _IP"

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

fi

keluar 0

#dan anda sudah selesai

Langkah 4: Memasang dan Menyiapkan Gerak

Memasang dan Menyiapkan Gerak
Memasang dan Menyiapkan Gerak

#kemas kini pi

sudo apt-get kemas kini

sudo apt-get peningkatan

# turunkan

sudo apt-get install install

#sekarang edit fail ini dengan perubahan berikut

sudo nano /etc/motion/motion.conf

#untuk menetapkan standard untuk tutorial ini, ubah

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

daemon dihidupkan

stream_localhost mati

webcontrol_localhost dimatikan

ffmpeg_output_movies dihidupkan

target_dir / var / lib / gerakan

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

# pilihan penstriman penyemak imbas web tempatan

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

stream_maxrate 100 #Ini akan membolehkan streaming masa nyata tetapi memerlukan lebih banyak lebar jalur & sumber

framerate 60 #Ini akan membolehkan 60 bingkai ditangkap sesaat # semakin tinggi ini, proses video semakin perlahan

lebar 640 #Ini mengubah lebar gambar yang dipaparkan

tinggi 480 #Ini mengubah ketinggian gambar yang dipaparkan

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

#menetapkan tetapan video di… / motion.conf

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

#hapus ";" di hadapan barisan, titik koma koma garis

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

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

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

#astektik

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

#choices yang dijelaskan dalam fail

output_pictures locate_motion_style

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

#kemudian berubah

sudo nano / etc / default / gerakan

#untuk berkata

start_motion_daemon = ya

#akhir, mulakan B **** ke atas

gerak perkhidmatan sudo bermula

#anda boleh menukar perintah menjadi "berhenti", atau "mulakan semula"

Langkah 5: Mengirim E-mel Video Dari Gerak Mengesan

Mengirim E-mel Video Dari Gerak Mengesan
Mengirim E-mel Video Dari Gerak Mengesan

E-mel apabila gerakan dikesan:

#mulakan di rumah

dircd ~

#ciptakan skrip python amaran gerakan

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

#menulis

import smtplib

dari datetime import datetime

dari e-mel. MIMEMultipart import MIMEMultipart

dari e-mel. MIMETeks import MIMEText

fromaddr = "ALAMAT ANDA"

toaddr = "MENERIMA ALAMAT"

msg = MIMEMultipart ()

msg ['Dari'] = fromaddr

msg ['To'] = toaddr

msg ['Subject'] = "Gerak Dikesan"

body = 'Gerakan telah dikesan. / nWaktu:% s'% str (datetime.now ())

msg.attach (MIMEText (isi, 'biasa'))

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

pelayan.starttls ()

server.login (fromaddr, "KATA KATA ANDA")

teks = msg.as_string ()

server.sendmail (fromaddr, toaddr, teks)

pelayan.quit ()

E-mel Video gerakan semasa video disimpan:

#mulai di homedircd ~

#ciptakan video gerakan python scriptsudo nano /home/pi/background/motionvid.py

import smtplib

dari e-mel. MIMEMultipart import MIMEMultipart

dari e-mel. MIMETeks import MIMEText

dari e-mel. MIMEBase import MIMEBase

dari pengekod import e-mel

fromaddr = "E-mel ANDA"

toaddr = "ALAMAT E-mel yang ANDA HANTAR KE"

msg = MIMEMultipart ()

msg ['Dari'] = fromaddr

msg ['To'] = toaddr

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

body = "Video Gerakan Dikesan"

msg.attach (MIMEText (isi, 'biasa'))

import os

rootpath = '/ var / lib / gerakan'

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

filelist = [f untuk f dalam senarai fail jika os.path.isfile (f)]

terbaru = maks (senarai fail, kunci = lambda x: os.stat (x).st_mtime)

nama fail = terbaru

import os

rootpath = '/ var / lib / gerakan'

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

filelist = [f untuk f dalam senarai fail jika os.path.isfile (f)]

terbaru = maks (senarai fail, kunci = lambda x: os.stat (x).st_mtime)

lampiran = terbuka (terbaru, "rb")

part = MIMEBase ('aplikasi', 'octet-stream')

part.set_payload ((lampiran). membaca ())

encoders.encode_base64 (bahagian)

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

msg.attach (bahagian)

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

pelayan.starttls ()

server.login (fromaddr, "KATA LALUAN ANDA")

teks = msg.as_string ()

server.sendmail (fromaddr, toaddr, teks)

pelayan.quit ()

Langkah 6: Penyelesaian Masalah dan Sumber

Penyelesaian Masalah dan Sumber
Penyelesaian Masalah dan Sumber

Penyelesaian masalah:

Oleh kerana projek ini mempunyai pelbagai peringkat, terdapat beberapa titik di mana perkara boleh menjadi salah. Berikut adalah beberapa kesalahan yang mungkin berlaku dan cara memperbaikinya.

  • Semasa menyiapkan pi anda untuk menghantar e-mel kepada alamat IPnya sekarang, sangat penting untuk mengedit fail rc.local seperti yang ditunjukkan sebelumnya kerana ini memungkinkan sedikit kelewatan sebelum program diaktifkan setelah reboot. Jika tidak, pi belum disambungkan ke wifi, dan e-mel tidak akan dihantar.
  • Semasa mengedit file motion.conf pastikan untuk menghapus titik koma di hadapan parameter tertentu. Tanda titik koma menekan tindakan yang diberikan, jadi sebaliknya perubahan tidak akan berlaku.
  • Fail motion.conf disusun dengan baik dan terperinci. Jangan ragu untuk mengubah tetapan sesuai dengan keinginan anda, tetapi fahami bahawa ia boleh mempengaruhi kejayaan sistem tangkapan gerakan.
  • Setelah menetapkan pilihan amaran e-mel dan video e-mel, perlu diketahui bahawa e-mel video yang dikesan gerakan akan memakan masa sedikit lebih lama daripada menghantar daripada e-mel amaran awal. Ini kerana video menyimpulkan beberapa saat setelah gerakan tidak lagi dikesan, dan kerana lampiran e-mel mungkin cukup besar sehingga memerlukan beberapa minit untuk diterima. Dalam beberapa kes, jika gerakan ditahan untuk jangka masa yang lama, ia mungkin terlalu besar untuk dihantar sama sekali. Oleh kerana itu, adalah idea yang baik untuk memeriksa siaran langsung setelah menerima e-mel amaran awal.

Mengapa Bergerak?:

Semasa memulakan projek ini, kami mempertimbangkan beberapa sumber yang berbeza. Mula-mula kami mempertimbangkan untuk menggunakan PiCam yang merupakan unit kamera yang dibina khusus untuk raspberry pi. PiCam tentunya merupakan perangkat yang mampu dan mempunyai banyak aplikasi, tetapi terbatas pada penggunaan program yang dirancang khusus untuknya dan relatif mahal dibandingkan dengan kamera web serbaguna yang murah. Oleh itu, untuk menjadikan projek ini dapat diakses oleh khalayak yang lebih besar, kami memutuskan untuk menggunakan kamera web USB biasa. Isu seterusnya adalah perisian mana yang akan digabungkan. Pada mulanya kami mempertimbangkan OpenCV yang merupakan perisian percuma yang memungkinkan pelbagai jenis projek Computer Vision dan pengimejan. Yang menjadi masalah di sini ialah OpenCV adalah fail besar yang memerlukan banyak memori dan masa yang lama disiapkan. Penyediaannya juga mempunyai beberapa tahap, meninggalkan lebih banyak ruang untuk kesilapan. Kami mendapati bahawa untuk projek khusus kami, Motion lebih mudah untuk disiapkan dan berfungsi, tetapi pelaksanaannya lebih mantap.

Sumber

Sumber Kod:

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

Kredit gambar:

Siput SSH:

Logo mel:

Kamera web logitech:

Tetingkap SSH:

Disyorkan: