فهرست مطالب:

Raspberry Pi 3 Motion Detection Camera with Feed Live: 6 Step
Raspberry Pi 3 Motion Detection Camera with Feed Live: 6 Step

تصویری: Raspberry Pi 3 Motion Detection Camera with Feed Live: 6 Step

تصویری: Raspberry Pi 3 Motion Detection Camera with Feed Live: 6 Step
تصویری: Raspberry Pi live streaming surveillance camera |access from anywhere| Raspberry Pi + OpenCV + Flask 2024, نوامبر
Anonim
Raspberry Pi 3 Motion Detection Camera with Live Feed
Raspberry Pi 3 Motion Detection Camera with Live Feed

معرفی

در این پروژه ، نحوه ساخت یک دوربین تشخیص حرکت را یاد خواهید گرفت که می توانید از آن به عنوان یک تله دوربین ، مانیتور حیوان خانگی/کودک ، دوربین امنیتی و موارد دیگر استفاده کنید.

این پروژه در چند مرحله تنظیم شده است:

  • معرفی
  • تنظیم Pi خود
  • SSH را به Pi خود وارد کنید
  • ایمیل کردن آدرس IP خود در هنگام راه اندازی
  • نصب و راه اندازی Motion
  • ارسال ویدئوها از Motion هنگام تشخیص
  • عیب یابی و منابع

آنچه شما نیاز دارید:

  • رزبری پای 3 مدل b 35 35 دلار
  • کارت حافظه 8 گیگابایتی Micro SD ~~ 10 دلار
  • وب کم USB 20 پوند (این پروژه از وب کم Logitech HD c270 استفاده می کرد)
  • کابل میکرو یو اس بی 5 دلار
  • یا:
  • بسته باتری 5 ولت قابل شارژ (باتری پشتیبان تلفن) ، این باعث می شود پروژه شما 20 پوند بی سیم باشد
  • یا
  • آداپتور دیواری usb 5 دلار
  • اتصال WiFi

مواردی که برای راه اندازی نیاز دارید:

  • یک مانیتور
  • ماوس و صفحه کلید
  • رایانه ای با شیار کارت SD
  • مبدل Micro SD به کارت SD (باید همراه کارت میکرو SD شما باشد)

مرحله 1: تنظیم Pi خود را تنظیم کنید

راه اندازی Pi خود
راه اندازی Pi خود

حالا بیایید Pi شما را تنظیم کنیم

برای شروع ، مطمئن شوید که تمام موارد مورد نیاز مرحله آخر را در اختیار دارید. سپس مراحل مربوط به نصب Raspbian Jessie در کارت Microsd خود را که در اینجا یافت می شود ، در وب سایت Raspberry Pi دنبال کنید.

هنگامی که Raspbian را روی Pi خود نصب کردید ، وقت آن است که برخی از ویژگی های اساسی را تنظیم کنید.

وای فای

اولین قدم برای استفاده بیشتر از Pi خود ، اتصال آن به اینترنت است. ممکن است این مرحله را قبلاً یا با قرار دادن نماد WiFi در گوشه سمت راست بالای صفحه اصلی Pi خود و ورود به آنجا انجام داده باشید ، یا قبل از نصب Raspbian در آخرین مرحله ، همین کار را انجام دهید. اگر نمی توانید از رابط رومیزی Pi خود وارد شبکه WiFi خود شوید ، می توانید دستورالعمل های اینجا را برای تنظیم WiFi از طریق خط فرمان دنبال کنید.

SSH

یکی از ابزارهای بسیار کاربردی که هنگام استفاده از Pi خود در اختیار شما قرار می دهد ، این است که دستوراتی را برای Pi خود که در تنظیمات بدون سر شناخته می شود ، صادر کنید. با استفاده از Secure SHell یا SSH ، می توانید Pi خود را از راه دور از طریق کامپیوتر کنترل کنید. با استفاده از این روش ، تنها چیزی که برای ویرایش Pi خود نیاز دارید یک منبع قدرت برای روشن نگه داشتن آن است ، دیگر مانیتور و صفحه کلید وجود ندارد!

مرحله 2: SSHing به PI شما

SSHing به PI شما
SSHing به PI شما
SSHing به PI شما
SSHing به PI شما

SSHing در Raspberry Pi شما آسان و بسیار مفید است ، زیرا این فرایند به شما امکان می دهد دستوراتی را به Pi خود از هر رایانه ای ارسال کنید که چیزی بیشتر از اتصال WiFi ندارد.

برای SSH به Pi خود ، باید این 3 مرحله ساده را دنبال کنید.

ابتدا باید SSH را روی Pi خود فعال کنید. برای انجام این کار ، یک پنجره فرمان در Pi خود باز کنید و عبارت زیر را تایپ کنید:

sudo raspi-config

این دستور به شما اجازه می دهد تا منوی پیکربندی را وارد کنید. از آنجا می خواهید از پیکان ، برگه و کلیدهای وارد شده برای ورود به گزینه های رابط ، سپس برای فعال کردن SSH و همچنین دوربین استفاده کنید ، سپس pi را راه اندازی کرده و مجدداً راه اندازی کنید.

در مرحله بعد ، باید آدرس IP Pi خود را پیدا کنید. در ترمینال فرمان ، عبارت زیر را تایپ کنید:

sudo ifconfig

و آدرس IP شما باید در قسمت wlan0 که درست در زیر Link encap: ethernet ظاهر می شود ، باشد. در تصویر نمایشی بالا ، آدرس IP 192.168.1.10 است.

در نهایت ، شما باید برنامه ترمینال داخلی را در سیستم عامل مک باز کنید ، یا دستورالعمل های برنامه ssh شخص ثالث را برای Windows پیدا کرده و دنبال کنید. در برنامه ترمینال ، عبارت زیر را تایپ کنید:

ssh pi@آدرس IP شما

اگر گذرواژه را در حالت Raspi-config تغییر نداده اید ، پسوردی که هنگام درخواست وارد می شود رمز پیش فرض خواهد بود: تمشک.

از آنجا ، شما باید خوب بروید!

مرحله 3: آدرس IP خود را در بوت ایمیل کنید

آدرس IP خود را در بوت ایمیل کنید
آدرس IP خود را در بوت ایمیل کنید

در این مرحله ما بر نحوه دسترسی به رزبری پای خود صرف نظر از شبکه ای که در آن هستید تمرکز می کنیم. بسته به شبکه ، آدرس IP Pi تغییر می کند. و اگر تنظیمات مانیتور ندارید ، برای فعال کردن پروتکل تشخیص حرکت ، تغییر تنظیمات ترجیحی یا دسترسی به هر چیز دیگری در دستگاه ، باید به Pi وارد شوید. برای حل این مشکل ما یک اسکریپت پایتون می نویسیم که آدرس IP فعلی Pi را هنگام راه اندازی به ما ایمیل می کند. اسکریپت پایتون به شرح زیر است و در فهرست راهنمای "background" ذخیره شده است.

#در فهرست اصلی شروع کنید

سی دی

#ایجاد پوشه پس زمینه

mkdir پس زمینه

#ایجاد اسکریپت پایتون

sudo nano emailip.py

#در emailip.py بنویسید

سوکت واردات

s = socket.socket (سوکت. AF_INET ، سوکت. SOCK_DGRAM)

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

چاپ (s.getsockname () [0]) x = s.getsockname () [0] s.close ()

وارد کردن smtplib

از ایمیل. MIMEMultipart وارد کردن MIMEMultipart

از ایمیل. MIMEText وارد MIMEText

fromaddr = "آدرس شما"

toaddr = "دریافت آدرس"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

msg ['Subject'] = "آدرس IP"

body = xmsg.attach (MIMEText (بدن ، "ساده"))

سرور = smtplib. SMTP ('smtp.gmail.com' ، 587)

server.starttls ()

server.login (fromaddr ، "گذرواژه شما")

text = msg.as_string ()

server.sendmail (fromaddr ، toaddr ، متن)

server.quit ()

#سپس این کار را هنگام راه اندازی مجدد انجام می دهد

sudo nano /etc/rc.local

#وارد /etc/rc.local شوید

در حالی که ! /sbin/ifconfig wlan0 | grep -q 'inet addr: [0-9]'؛

بخواب 3

انجام شده

_IP = $ (نام میزبان -I) || درست است، واقعی

اگر ["$ _IP"]؛ سپس

printf "آدرس IP من٪ s / n" "$ _IP"

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

fi

خروج 0

#و تموم شدی

مرحله 4: نصب و راه اندازی حرکت

نصب و راه اندازی حرکت
نصب و راه اندازی حرکت

#به روز رسانی پی

sudo apt-get update

sudo apt-get upgrade

#دانلود

sudo apt-get install motion

#اکنون این فایل را با تغییرات زیر ویرایش کنید

sudo nano /etc/motion/motion.conf

#برای تعیین استاندارد برای این آموزش ، تغییر دهید

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

شیطان روشن

stream_localhost خاموش است

webcontrol_localhost خاموش است

ffmpeg_output_movies روشن است

target_dir/var/lib/motion

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

#گزینه های جاری مرورگر وب محلی

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

stream_maxrate 100 #این امکان پخش همزمان را می دهد اما به پهنای باند و منابع بیشتری نیاز دارد

نرخ فریم 60 #این اجازه می دهد تا 60 فریم در ثانیه گرفته شود

عرض 640 #این عرض تصویر نمایش داده شده را تغییر می دهد

ارتفاع 480 #این ارتفاع تصویر نمایش داده شده را تغییر می دهد

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

#ارسال تنظیمات ویدئو در…/motion.conf

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

#"" را در مقابل خط حذف کنید ، نقطه ویرگول خط را کامنت می کند

on_event_start پایتون /home/pi/background/motionalert.py٪ f

پایتون on_movie_end /home/pi/background/motionvid.py٪ f

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

#آستیک ها

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

#انتخابهایی که در فایل توضیح داده شده است

خروجی_تصویرها location_motion_style

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

#سپس تغییر دهید

sudo nano/etc/default/motion

#گفتن

start_motion_daemon = بله

#آخرین ، B **** را شروع کنید

شروع حرکت سرویس sudo

#می توانید فرمان را به "توقف" یا "راه اندازی مجدد" تغییر دهید

مرحله 5: ارسال ویدئوها از طریق حرکت هنگام تشخیص

ارسال ویدئوها از طریق حرکت در تشخیص
ارسال ویدئوها از طریق حرکت در تشخیص

ایمیل هنگام تشخیص حرکت:

#شروع در خانه

dircd

#ایجاد اسکریپت پایتون هشدار حرکت

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

#نوشتن

وارد کردن smtplib

از datetime وارد کردن datetime

از ایمیل. MIMEMultipart وارد کردن MIMEMultipart

از ایمیل. MIMEText وارد MIMEText

fromaddr = "YOURADDRESS"

toaddr = "RECIEVINGADDRESS"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

msg ['Subject'] = "حرکت تشخیص داده شد"

body = 'یک حرکت شناسایی شده است. / n زمان:٪ s'٪ str (datetime.now ())

msg.attach (MIMEText (بدنه ، "ساده"))

سرور = smtplib. SMTP ('smtp.gmail.com' ، 587)

server.starttls ()

server.login (fromaddr ، "YOURPASSWORD")

text = msg.as_string ()

server.sendmail (fromaddr ، toaddr ، متن)

server.quit ()

ایمیل فیلم حرکت هنگام ذخیره فیلم:

#شروع در homedircd

#ایجاد ویدئو حرکت پایتون اسکریپت سودو نانو /home/pi/background/motionvid.py

وارد کردن smtplib

از ایمیل. MIMEMultipart وارد کردن MIMEMultipart

از ایمیل. MIMEText وارد MIMEText

از ایمیل. MIMEBase وارد کردن MIMEBase

از رمزگذارهای واردات ایمیل

fromaddr = "ایمیل شما"

toaddr = "آدرس ایمیل شما برای ارسال"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

msg ['Subject'] = "دوربین متحرک فعال شد"

body = "ویدیوی حرکت تشخیص داده شد"

msg.attach (MIMEText (بدنه ، "ساده"))

وارد کردن سیستم عامل

rootpath = '/var/lib/motion'

filelist = [os.path.join (rootpath، f) for f در os.listdir (rootpath)]

filelist = [f for f in filelist if os.path.isfile (f)]

newest = max (لیست فایل ، کلید = lambda x: os.stat (x).st_mtime)

نام فایل = جدیدترین

وارد کردن سیستم عامل

rootpath = '/var/lib/motion'

filelist = [os.path.join (rootpath، f) for f در os.listdir (rootpath)]

filelist = [f for f in filelist if os.path.isfile (f)]

newest = max (لیست فایل ، کلید = lambda x: os.stat (x).st_mtime)

پیوست = باز (جدیدترین ، "rb")

part = MIMEBase ('application'، 'octet-stream')

part.set_payload ((پیوست).read ())

encoders.encode_base64 (قسمت)

part.add_header ('Content-Disposition'، "attachment؛ filename =٪ s"٪ filename)

msg.attach (part)

سرور = smtplib. SMTP ('smtp.gmail.com' ، 587)

server.starttls ()

server.login (fromaddr ، "گذرواژه شما")

text = msg.as_string ()

server.sendmail (fromaddr ، toaddr ، متن)

server.quit ()

مرحله 6: عیب یابی و منابع

عیب یابی و منابع
عیب یابی و منابع

عیب یابی:

از آنجا که این پروژه دارای مراحل متعددی است ، چندین نقطه وجود دارد که در آن همه چیز ممکن است اشتباه پیش برود. در زیر برخی از خطاهای احتمالی که ممکن است رخ دهد و نحوه رفع آنها ذکر شده است.

  • هنگام تنظیم pi برای ارسال آدرس IP فعلی به شما ، ویرایش فایل rc.local همانطور که قبلاً نشان داده شده بسیار مهم است زیرا این امر باعث می شود تا قبل از راه اندازی مجدد برنامه ، برنامه کمی فعال شود. در غیر این صورت pi هنوز به wifi متصل نمی شود و ایمیل ارسال نمی شود.
  • هنگام ویرایش فایل motion.conf اطمینان حاصل کنید که نقطه ویرگول را در مقابل پارامترهای خاصی حذف کنید. نقطه ویرگول یک عمل معین را سرکوب می کند ، بنابراین در غیر این صورت تغییر اعمال نمی شود.
  • فایل motion.conf بسیار منظم و دقیق است. با خیال راحت می توانید تنظیمات را به دلخواه تغییر دهید ، اما درک کنید که ممکن است بر موفقیت سیستم ضبط حرکت تأثیر بگذارد.
  • پس از تنظیم گزینه های هشدار ایمیل و ویدئوی ایمیل ، توجه به این نکته ضروری است که ایمیل ویدئوی حرکت تشخیص داده شده کمی بیشتر از ارسال از ایمیل هشدار اولیه طول می کشد. این به این دلیل است که ویدیو چند ثانیه پس از آنکه حرکت دیگر تشخیص داده نمی شود ، به پایان می رسد و پیوست ایمیل ممکن است به اندازه ای بزرگ باشد که برای دریافت چند دقیقه نیاز باشد. در برخی موارد ، اگر حرکت برای مدت زمان طولانی ادامه یابد ، ممکن است برای ارسال آن بسیار بزرگ باشد. به همین دلیل همیشه ایده خوبی است که پس از دریافت ایمیل هشدار اولیه ، جریان مستقیم را بررسی کنید.

چرا حرکت ؟:

هنگام شروع این پروژه ما چندین منبع مختلف را در نظر گرفتیم. ابتدا ما از PiCam استفاده کردیم که یک واحد دوربین است که به طور خاص برای تمشک pi ساخته شده است. PiCam مطمئناً دستگاهی توانمند است و کاربردهای زیادی دارد ، اما محدود به استفاده از برنامه هایی است که به طور خاص برای آن طراحی شده و نسبت به وب کم های چند منظوره ارزان قیمت نسبتاً گران است. بنابراین ، برای اینکه این پروژه برای مخاطبان بیشتری قابل دسترسی باشد ، تصمیم گرفتیم از یک وب کم USB معمولی استفاده کنیم. مسئله بعدی این بود که کدام نرم افزار را باید در خود جای داد. ما در ابتدا OpenCV را در نظر گرفتیم که یک نرم افزار رایگان است که انواع مختلفی از پروژه های کامپیوتری بینایی و تصویربرداری را امکان پذیر می کند. از موضوعاتی که در اینجا وجود دارد این است که OpenCV یک فایل عظیم است که حافظه زیادی را اشغال می کند و زمان زیادی راه اندازی می شود. راه اندازی نیز دارای چندین مرحله است و حتی بیشتر خطا باقی می گذارد. ما دریافتیم که برای پروژه خاص ما ، Motion راه اندازی و شروع به کار ساده تر بود ، اما در اجرای آن بسیار قوی تر بود.

منابع

منابع کد:

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

اعتبار عکس:

حلزون SSH:

لوگوی ایمیل:

وب کم Logitech:

پنجره SSH:

توصیه شده: