آموزش رزبری پای ماژول دوربین پردازش تصویر پروژه رزبری پای

ساخت دوربین امنیتی پخش زنده با Raspberry Pi 3 و کتابخانه Motion

real-time-raspberry-pi-camera-stream-digispark
نوشته شده توسط وحید منسومی

دوربین‌ها امروزه کاربردهای مختلفی دارند. از صنایع تولید گرفته تا دوربین امنیتی و ترافیکی و کنترل تردد، همگی جزئی از زندگی روزمره ما شده‌اند.
در این آموزش یاد خواهید گرفت که چگونه با استفاده از برد رزبری پای Raspberry Pi 3 و دوربین آن یک سیستم امنیتی تصویری با قابلیت،
۱ – تشخیص حرکت
۲ – گرفتن و ذخیره  عکس  در زمان تشخیص حرکت
۳ – گرفتن و ذخیره فیلم  در زمان تشخیص حرکت
۴ – تماشای تصویر زنده ویدیویی از طریق اینترنت
۵ – تماشای تصویر زنده ویدیویی از طریق شبکه محلی
۶-ارسال هشدار تشخیص حرکت به جیمیل
۷-ارسال فیلم گرفته شده در زمان تشخیص حرکت به جیمیل

اگر با برد رزبری پای آشنایی ندارید، پیشنهاد می‌کنم آموزش آشنایی با برد رزبری پای را مطالعه کنید. در ادامه آموزش ساخت دوربین امنیتی با برد رزبری پای را آموزش خواهم داد.


انواع دوربین Raspberry Pi


۱ – Standardversion : که سبز رنگ می باشد و دارای کیفت دوربین ۸MP و فیلم برداری ۱۰۸۰p می باشد از آنجا که این دوربین دارای یک فیلتر مادون قرمز است،جهت استفاده در نور روز و مکانهایی که نور کافی دارد مناسب می باشد.

دوربین معمولی رزبری پای - دیجی اسپارک

۲ – NoIR : به رنگ مشکی می باشد. مشخصات با نوع قبلی یکسان است، اما فاقد فیلتر مادون قرمز می باشد. که این نوع برای صحنه های تاریک توصیه می شود.

هر دو دوربین می توانند به طور مستقیم از طریق رابط CSI به رزبری متصل شوند ، مزیت استفاده از این دوربین به جای وب کم عدم اشغال پورت USB می باشد.

دوربین NoIR رزبری پای - دیجی اسپارک


نصب کتابخانه‌های مورد نیاز


ابتدا بسته ها را به روز رسانی می کنیم.

sudo apt-get update
sudo apt-get upgrade

ابزار motion را نصب میکنیم

sudo apt-get install motion

با فرمان زیر درایور ماژول دوربین را نصب می نماییم.

sudo modprobe bcm2835-v4l2

نکته مهم : در جمله پایانی فرمان بالا v4l2 عدد یک نمی باشد بلکه ال انگلیسی است V4L2 است. جهت شناسایی سخت افزار در زمان لود رزبری ،

جهت ویرایش وارد modules شده

sudo nano /etc/modules

و گزینه زیر را به آن اضافه می نماییم.

bcm2835-v4l2

جهت بررسی درایور ماژول های نصب شده از فرمان زیر استفاده می نماییم.

lsmod

اگر از وب کم USB استفاده می کنید، می توانید با فرمان زیر بررسی کنید که آیا شناسایی شده است یا خیر

lsusb

 


پیکربندی motion


با اجرای فرمان زیر ، برای استفاده در مراحل بعدی اطلاعات دوربین امنیتی را دریافت نماییم.

v4l2-ctl -V

من خروجی زیر را دریافت کردم که آن را در جایی یاد داشت مینماییم.

Format Video Capture:
Width/Height : 640/480
Pixel Format : ‘YUYV’
Field : None
Bytes per Line: 1280
Size Image : 614400
Colorspace : SRGB

وارد فایل پیکربندی Motion شده و آن را ویرایش مینماییم.

sudo nano /etc/motion/motion.conf

با استفاده از کلید های ترکیبی CTRL+W خطوط زیر را در برنامه پیدا کرده و تنظیم مینماییم.

 

۱ – Daemon

daemon یک برنامه است که بعنوان یک فرایند در پس زمینه سیستم عامل اجرا می شود بدین معنی که در کنترل مستقیم کاربر نیست و کار خاصی را در زمان مشخص و یا در پاسخ به یک رویداد خاص بصورت تکراری انجام می دهد.
محدوده on / off
پیش فرضoff

که ما آن را on مینماییم

    Daemon on

۲ – Framerate

حداکثر تعداد فریم های گرفته شده از دوربین در هر ثانیه است که هرچه بیشتر تنظیم شود ، مقدار بیشتر ی از CPU را درگیر دریافت عکسها می کند و هنگامی که Motion  حرکتی را تشخیص بدهد ، تصاویر بیشتری دریافت می شود. اگر تصویر فریم به کمتر از ۲ تنظیم شود، ذخیره سازی تصاویر متوقف خواهد شد. این پارامتر را به حداکثر تعداد تصاویر در هر ثانیه که می خواهید ذخیره کنید یا به عنوان تصاویر یا فیلم تنظیم کنید. برای تنظیم فواصل بیش از یک ثانیه، از گزینه ‘minimum_gap’ استفاده کنید.
دامنه : ۲ تا ۱۰۰ پیش فرض: ۱۵

پیشنهاد ما عددی مابین ۱۰۰۰ تا ۱۵۰۰ می باشد

 framerate 1000

 

۳ – stream_quality

تنظیم درصد کیفیت فریم های تصویری jpeg منتقل شده در زمان ارتباط پخش زنده می باشد. هنگامی که با تعداد کم تنظیم شده باشد، پهنای باند مورد نیاز برای تماشای تصاویر را کاهش می دهد.

دامنه: ۱ – ۱۰۰
پیش فرض: ۵۰

مقدار ۱۰۰ را برای آن قرار می دهیم

 stream_quality 100

۴ – stream_localhost

دسترسی به پخش زنده را به localhost محدود می کند و در صورت روشن بودن این تنظیم تماشای پخش زنده تنها می تواند در همان دستگاه  که  motion در حال اجرا است امکان پذیر است
محدوده : on / off
پیش فرضon

که ما آن را خاموش مینماییم

am_localhost off

 

۵ – webcontrol_localhost

این گزینه کنترل پارامترهای motion را به localhost محدود می کند. این گزینه باید در motion.conf قرار داده شود و نه در فایل تنظیمات دوربین. با روشن نمودن این تنظیم ، کنترل پارامترها با استفاده از مرورگر htttp تنها در همان دستگاهی که Motion در حال اجرا است، قابل دسترسی است.
محدوده : off / on
پیش فرضon

ما آن را خاموش مینماییم

   webcontrol_localhost off

 

۶ – quality

درصد کیفیت تصاویر jpeg یا webp می باشد ،هرچه عدد کوچک تر باشد تصویر با کیفیت ضعیف تر و حجم کمتری را ذخیره می نماید.

دامنه : ۱ – ۱۰۰
پیش فرض: ۷۵
مقدار آن را ۱۰۰ قرار می دهیم

    Quality 100

 

۷ – width

تعداد پیکسل های موجود در عرض هر فریم میباشد و مقدار آن وابسته به دوربین است. برای همه دستگاهها عرض باید یک عدد ۸ باشد. Motion دستگاه های V4l2 و Netcams HTTP را اندازه گیری نمی کند، بنابراین مقدار باید به اندازه واقعی تصویر ارائه شده توسط دستگاه تنظیم شود در مورد یک دوربین شبکه rtsp / rtmp، Motion تصویر دوربین را به ابعاد مورد نظر مجددا تنظیم می کند. این کاهش مجدد موجب اشغال CPU می شود، بنابراین توصیه می شود که دوربین شبکه تصویر را در ابعاد مشابهی که در فایل پیکربندی قرار دارد، ارسال کند.
دامنه : وابسته به دستگاه
پیش فرض: ۶۴۰
مقدار آن را بنا به مشخصات دوربین ۶۴۰ قرار می دهیم

  Width 640

 

۸ – height

تعداد پیکسل های موجود در ارتفاع هر فریم. که محدوده  آن وابسته به مشخصات دوربین است. برای تمام دستگاه ها، ارتفاع باید چند برابر ۸ باشد. Motion دستگاه های V4l2 و Netcams HTTP را اندازه گیری نمی کند، بنابراین مقدار باید به اندازه واقعی تصویر ارائه شده توسط دستگاه تنظیم شود. در مورد یک دوربین شبکه rtsp / rtmp، Motion تصویر دوربین را به ابعاد مورد نظر مجددا تنظیم می کند. این کاهش مجدد در هزینه CPU بسیار بالا است، بنابراین توصیه می شود که دوربین شبکه تصویر را در ابعاد مشابهی که در فایل پیکربندی قرار دارد، ارسال کند. در حالی که Motion تصویر را ارائه نمی دهد، اندازه آن تصویر از دستگاه video4linux را تنظیم می کند تا با مقادیر ارائه شده برای ارتفاع / عرض مطابقت داشته باشد.
دامنه : وابسته به دستگاه
پیش فرض: ۴۸۰
مقدار آن را بر روی ۴۸۰ قرار می دهیم

Height 480

 

۹ – post_capture

تعداد فریم هایی را که پس از تشخیص حرکت تشخیص داده می شوند، مشخص می کند. هدف از این عمدتا برای ایجاد کلیپ های ویدئویی صاف در هر زمان حرکت تشخیص داده می شود. از آن برای سلیقه شخصی (و فضای دیسک) استفاده کنید. این گزینه راه مناسبی برای ایجاد فیلمهای پیوسته است. Post_capture حافظه اضافی را مصرف نمی کند و حتی در مقادیر بزرگ نیز فیلم های مکثی ایجاد نمی کند. اگر شما فقط فیلم ها را ذخیره می کنید و خروجی ندارید، مقدار post_capture توصیه شده معادل ۱-۵ ثانیه است (فراموش نکنید که ثانیه های مورد نظر با فریم برای این پارامتر ضرب شود)
محدوده / ۰ – ۲۱۴۷۴۸۳۶۴۷
پیش فرض: ۰ (غیر فعال)
مقدار ۵ را جایگزین می نماییم

     post_capture 5

 

۱۰ – target_dir

آدرس محل ذخیره فایل های تصویر و فیلم می باشد . که پیش فرض دایرکتوری فعلی است. این دایرکتوری هدف برای تمام عکس های فوری، فایل های تصویری و فایل های فیلم است. شما معمولا همیشه می خواهید این پارامتر را به عنوان مسیر مطلق مشخص کنید. توجه داشته باشید که گزینه های نام فایل به نسبت این target_dir ذخیره می شوند این به این معناست که شما می توانید مقصد target_dir را به عنوان ‘/’ مشخص کنید و ۱۰۰٪ انعطاف پذیر باشید. اما این توصیه نمی شود. توصیه می شود که این پوشه به عنوان عمیق تر مشخص شود.

دامنه : حداکثر ۴۰۹۵ کاراکتر
پیش فرض: تعریف نشده = دایرکتوری فعلی
آدرس زیر را جایگزین می نماییم

target_dir /home/pi/Monitor

 

۱۱ – v4l2_palette

v4l2_palette اجازه می دهد تا کاربر یک پالت را برای استفاده از Motion انتخاب نماید اگر دستگاه ویدئویی از این فرمت دلخواه پشتیبانی نمی کند، Motion از طریق پالت های در دسترس پدیدار می شود تا سعی کنید آن را پیدا کنید که توسط Motion و دستگاه پشتیبانی می شود. به طور پیش فرض پالت ۱۷ بیش از همه فرمت های دیگر استفاده می شود، زیرا این فرمت محلی است. در زیر هر یک از گزینه های پالت است. برای تنظیم حرکت، مقدار عددی را به عنوان گزینه حرکت مشخص کنید.
V4l2 Option FOURCC         v4l2_palette         option
V4L2_PIX_FMT_SN9C10X                   S910             ۰
V4L2_PIX_FMT_SBGGR16                  BYR2             ۱
V4L2_PIX_FMT_SBGGR8                  BA81             ۲
V4L2_PIX_FMT_SPCA561                  S561             ۳
V4L2_PIX_FMT_SGBRG8                 GBRG             ۴
V4L2_PIX_FMT_SGRBG8                 GRBG             ۵
V4L2_PIX_FMT_PAC207                  P207             ۶
V4L2_PIX_FMT_PJPG                  PJPG             ۷
V4L2_PIX_FMT_MJPEG                 MJPG             ۸
V4L2_PIX_FMT_JPEG                 JPEG             ۹
V4L2_PIX_FMT_RGB24                 RGB3           ۱۰
V4L2_PIX_FMT_SPCA501                 S501           ۱۱
V4L2_PIX_FMT_SPCA505                 S505           ۱۲
V4L2_PIX_FMT_SPCA508                 S508           ۱۳
V4L2_PIX_FMT_UYVY                UYVY           ۱۴
V4L2_PIX_FMT_YUYV                YUYV           ۱۵
V4L2_PIX_FMT_YUV422P               ۴۲۲P            ۱۶
V4L2_PIX_FMT_YUV420                YU12           ۱۷
V4L2_PIX_FMT_Y10                 Y10           ۱۸
V4L2_PIX_FMT_Y12                  Y12          ۱۹
V4L2_PIX_FMT_GREY                GREY          ۲۰

مقدار مقابل را جایگزین می نماییم v4l2_palette 15

با استفاده از کلید های CTRL+X تنظیمان را ذخیره می نماییم. حالا ما فقط باید daemon را فعال کنیم تا بعدا بتوانیم سرویس را اجرا کنیم

واردmotion شده

sudo nano / etc / default / motion

و NO را با YES جایگزین می کنیم.

start_motion_daemon=yes

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

mkdir /home/pi/Monitor
sudo chgrp motion /home/pi/Monitor
chmod g+rwx /home/pi/Monitor

سپس ما می توانیم سرویس را شروع کنیم:

sudo service motion start

 

 


تست پخش زنده دوربین Raspberry Pi


به منظور تماشای تصویر زنده از دوربین دو روش وجود دارد

۱- مرورگر خود را باز می نماییم و در بخش آدرس دهی ، نام رزبری و پس از آن : و سپس پورت ۸۰۸۱ ( اگر نام میزبان و پورت را تغییر نداده اید ) را وارد می نماییم ، با باز کزدن آدرس باید بتوانید تصویر را به صورت زنده ببینید. http://raspberrypi:8081/  همچنی می توانید از آدرس IP محلی نیز در مرورگر خود استفاده نمایید ، مانند ۱۹۲٫۱۶۸٫۱٫۵۱:۸۰۸۱

 

۲ – در VLC Player نیز امکان پخش وجود دارد.

برای انجام این کار، به سادگی VLC Player را باز کنید و در زیر منوی “Media” -> “Open Network Stream” (CTRL + N) آدرس فوق را مشخص کنید. این نیز در VLC Player برای گوشی های هوشمند و تبلت ( Android ، Apple ) امکان پذیر است : انتخاب “Open Media Address” در منو و آدرس IP از جمله پورت.

 


تماشای تصویر زنده ویدیویی از بستر اینترنت
با استفاده از  DDNS رایگان
(به جای Static IP )


دسترسی به Raspberry Pi از شبکه داخلی ساده است ، اما اگر بخواهید دسترسی به  PI را از راه دور از طریق اینترنتی فعال نماییم روشهای مختلفی وجود دارد که اعتبار این روش ها به روتر ما / یا ارائه دهنده اینترنت بستگی دارد ، مشکل عمده برای دسترسی به شبکه داخلی (که  PI به آن متصل است) از اینترنت این است که روترهای داخلی معمولا یک IP ثابت ندارند . با توجه به کمبود آدرس های IP ممکن است پس از راه اندازی مجدد روتر شما یک آدرس جدید از ISP خود دریافت کند ، یک روش بسیار رایج برای دسترسی آسان به شبکه داخلی از طریق اینترنت استفاده از  DDNS میباشد

ابتدا لازم است چند تعریف را بدانیم

تعریف IP Address :
سیستم‌های کامپیوتری در شبکه‌ی اینترنت به واسطه‌ی یک رشته از اعداد به اسم IP Address  ها شناسایی می‌شوند.

تفاوت IP داخلی و خلارجی :
همان طور که در تصویر می بینید، یک روتر معمولا دارای چند اتصال شبکه میباشد

IP شبکه داخلی :
روتر به دستگاه های متصل به شبکه داخلی یک IP داخلی اختصاص می دهد که  توسط سرویس DHCP روتر اداره می شود،

IP شبکه خارجی  :
روتر یک IP خارجی یا عمومی) اختصاص داده شده توسط ارائه دهنده خدمات اینترنت (ISP)  دارد. تمام دستگاه های داخل شبکه داخلی از این آدرس برای دسترسی به اینترنت استفاده می کنند. روتر از آدرس شبکه ترجمه آدرس ( NAT ) یا سایر روش های مشابه برای مطابقت با آدرس IP داخلی با درخواست های خارجی استفاده می کند. جهت دریافت آدرس فعلی IP خارجی خود، می توانید فرمان زیر را تایپ نمایید

curl ip.changeip.com

 

تعریف DNS
 (  Domain Name System، سامانه‌ی نام دامنه )

این سیستم تبدیل کننده‌ی آدرس IP به نام دامنه و حروفی است که برای انسان قابل خواندن و درک است. از آن جایی که انسان‌ها توانایی حفظ کردن اعداد طولانی را ندارند، DNSها برای ترجمه‌ی یک نام واقعی  (نام دامنه یا اسامی سایت‌ها برای مثال  vcp.ir ) به آدرس‌های آی پی استفاده می‌شوند.

به این صورت است که وقتی آدرس سایتی را در مرورگر خود وارد می‌کنید، DNS آن را به آدرس آی‌پی ترجمه کرده و برای شبکه‌ی اینترنت می‌فرستد تا سایت مورد نظر را پیدا کند و آن را به شما نمایش دهد. می‌توان اینگونه تعبیر کرد که DNS مانند دفترچه‌ی تلفنی است که می‌تواند نام‌های قابل فهم برای انسان را به اعدادی که شبکه‌ی اینترنت آن‌ها را می‌فهمد، ترجمه کن

تعریفDDNS
( Dynamic DNS سامانه‌ی نام دامنه پویا )

DDNS یک سرویس است که نام دامنه های اینترنتی را به آدرس های IP تبدیل میکند.
شاید بگویید DNS هم که همین کار را میکرد!

اما باید دانست بر خلاف DNS که تنها با آدرس های آی پی استاتیک کار می کند،  DDNS به گونه ای طراحی شده است که از آدرس های IP پویا (متغیر) نیز پشتیبانی مینماید، این سرویس DDNS است که به شما اجازه می دهد تا از هر نقطه از جهان به کامپیوتر خانگی خود دسترسی پیدا کنید.

سرویس DDNS چگونه کار میکند؟

برای استفاده از DDNS، فقط کافیست از یک ارائه دهنده DNS پویا اشتراک گرفته و نرم افزارشان را بر روی سیستم خود نصب نمایید . نرم افزار پس از اجرای تغییرات آدرس IP پویا را رویت و هنگامی که آدرس تغییر می کند، با سرویس DDNS  ارتباط برقرار کرده و اکانت شما را با آدرس IP جدید به روز می نماید.

چگونه میتوان یک سرویس DDNS رایگان گرفت؟

سروری رایگانی که من بدون مشکل استفاده می کنم و تا به امروز در خدماتش اختلالی به وجود نیامده  سرویس رایگان Noip است ، جهت استفاده از این سرویس نیاز به انجام سه مرحله است

۱ – ابتدا باید در سایت ثبت نام کرده و یک حساب کاربری ایجاد نمائید .
۲ – سپس No-IP DUC را بر روی رزبری نصب کرده و اطلاعات حساب کاربری را در آن وارد می نماییم
۳ – تنظیمات مربوط به اتصال مودم را انجام می دهیم (پورت فورواردینگ )

Dynamic Update Client چیست ؟

یکی از راه های اطلاع DNS Server از تغییر آدرس ip دستگاه هایی که رکورد آن ها در دیتا بیس ذخیره شده است ، نرم افزارهایی هستند که شرکت های ارائه دهنده DDNS عرضه می کنند. وب سایت NoIP نیز از همین روش بهره می برد. این کمپانی نرم افزار Dynamic Update Client یا DUC را ارائه کرده است.

 


دریافت اشتراک DNSD رایگان از سایت NO IP


در ابتدا وارد سایت noip.com شوید. سپس مانند تصویر زیر در صفحه اول سایت یک نام برای ادرس DNS خود انتخاب کنید و به مرحله بعد بروید.

دریافت DNS از سایت Noip - دیجی اسپارک

 

یک ادرس ایمیل معتبر وارد کنید و پسورد اکانت خود را بزنید در پایین صفحه DNS که قبل دادید قابل مشاهده است تیک گزینه قوانین را وارد کنید و free sing up را بزنید. وارد ایمیل خود شده و لینک داده شده را اجرا کنید تا ایمیل شما تایید شود.

دریافت DNS از سایت Noip - دیجی اسپارک

 


نصب No-IP DUC در Raspberry Pi


ترمینال را باز کنید و فرمانهای زیر را جهت ایجاد مسیر نصب وارد نمایید

mkdir / home / pi / noip
cd / home / pi / noip

در پنجره ترمینال جهت دانلود نرم افزار DUC فرامین زیر را تایپ کنید. پس از هر هر فرمان ” Enter ” را فشار دهید .

wget https://www.noip.com/client/linux/noip-duc-linux.tar.gz
tar vzxf noip-duc-linux.tar.gz

سپس وارد دایرکتوری زیر می شویم.

cd noip-2.1.9-1

و برنامه را نصب مینماییم.

sudo make
sudo make install

 

بعد از تایپ “sudo make install” از شما خواسته خواهد شد که با نام کاربری و رمز عبور حساب کاربری خودتان که در سایت noip ثبت نام نمودید وارد شوید. پس از ورود چند سوال پرسیده می شود که به آنها پاسخ دهید و هنگامی که از شما خواسته می شود که چگونه می خواهید بروز رسانی را انجام دهید، باید ۵ یا بیشتر را انتخاب کنید. فاصله زمانی در دقیقه ذکر شده است، اگر شما ۵ را انتخاب کنید، فاصله به روز رسانی ۵ دقیقه خواهد بود. اگر ۳۰ را انتخاب کنید، فاصله ۳۰ دقیقه خواهد بود.

sudo / usr / local / bin / noip2

 

برای تأیید اینکه سرویس درست کار می کند، می توانید دستور زیر را اجرا کنید.

sudo noip -S

در ادامه جهت اجرای خودکار noip در زمان راه اندازی pi یا شروع مجدد پس از متوقف شدن برنامه به دلایل مختلف مراحل زیر را رنبال نمایید. با فرمان زیر مسیر دستور noip2 را بررسی می‌نماییم.

which noip2

 

برای بنده مسیر زیر نمایش داده شد.

/usr/local/bin/noip2

به هر حال، اکنون می دانیم که noip2 در / usr / local / bin / noip2 اجرا می شود.  من می خواهم یک سرویس systemd ایجاد کنم که فایل آن را اجرا کند. ایجاد فایل noip2.service در آدرس /etc/systemd/system/ جهت این کار در خط فرمان دستور زیر را وارد می نماییم.

Sudo nano /etc/systemd/system/noip2.service

 

متن زیر را درون فایل ایجاد شده قرار می دهیم.

[Unit]
Description=No-ip.com dynamic IP address updater
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
Alias=noip.service
[Service]
# Start main service
ExecStart=/usr/local/bin/noip2
Restart=always
Type=forking

 

متن بالا را من از آدرس زیر دریافت نموده ام. https://gist.github.com/NathanGiesbrecht سپس فرمامین زیر را وارد می نماییم.

sudo systemctl enable noip2
sudo systemctl start noip2
systemctl daemon-reload

 

سپس وضعیت سرویس جدید را با فرمان زیر بررسی می نماییم.

systemctl status noip2.service

 

و Pi را دوباره راه اندازی می کنید.

sudo reboot

با فرمان زیر بررسی می کنیم که noip2 به طور خودکار راه اندازی می گردد یا خیر

ps –aux | grep noip2

برای بنده این پاسخ ارسال شد که به معنی اجرای درست می باشد.

تنظیمات رزبری پای برای دوربین امنیتی - دیجی اسپارک

 


پورت فورواردینگ


جهت این تنظیمات هر مودم روش خود را دارد که با مراجعه به راهنمای مودم خود این کار به راحتی انجام می گیرد. برای نمونه وارد صفحه مودم خود شوید پیشفرض اکثر مودم ها ۱۹۲٫۱۶۸٫۱٫۱ میباشد. و نام کاربری و پسورد خود را وارد کنید که پیشفرض هر دو ان ها در مدم ها Admin میباشد. وارد بخش Advanced در مودم شوید و بخش Port Forwarding را انتخاب کنید. مانند تصویر زیر DNS که هنگام ساخت no ip ایجاد کرده اید را در بخش application بگزارید. و در بخش پورت , پورت مورد نظر خود را وارد کنید ما به طور مثال ۸۰۸۱ انتخاب میکنیم. و بخش پروتکل را به TCP تغیر دهید تا به درستی انجام شود تغیرات را در مودم ذخیره کنید.

تنظیمات Port Forwarding برای دوربین امنیتی رزبری پای - دیجی اسپارک

 


تست از پورت فورواردینگ


برای تست عملکرد از سایت زیر استفاده کنید پرتی را که انتخاب کرده اید را وارد کنید و check your port را بزنید.  portchecktool.com درصورتی که پورت باز باشد تنظیمات به درستی انجام شده است در غیر این صورت مشکل وجود دارد و باید رفع شود. حال میتوانید dns و پورت را وارد پنل رات کنید و فایل خود را بسازید و از شبکه اینترنت کنترل را انجام دهید.

 

 

 


ارسال ایمیل در شروع تشخیص حرکت


 

ابتدا دو اکانت جیمیل میسازیم که یکی فرستنده و دیگیری گیرنده باشند

سپس فایل motion_mail.py را از آدرس  https://github.com/vahidmansomi/motion_send_email   دریافت و ذخیره مینمایید

 

در ادامه خطوط زیر را درون  فایل دانلود شده ویرایش نموده و اطلاعات اکانت های جیمیل ساخته شده را جایگزین مینماییم

fromaddr = “user1@gmail.com” #جیمیل ارسال کننده فایل را وارد نمایید

password = “password”          پسورد جیمیل ارسال ککنده را وارد نمایید#

toaddrs  = “user2@gmail.com”  # ادرسی که قرار است ایمیل به آن ارسال شود

 

سپس مجوز گوگل برای جیمیل فرسنده را جهت اتصال به حساب کاربری از طریق برنامه نویسی را فعال می نملاییم

برای این کار طبق تصویر زیر به این آدرس روی مرورگر خود بروید و Allow less secure apps را ON نمایید

 

سپس وارد فایل پیکربندی Motion شده و آن را ویرایش مینماییم

sudo nano /etc/motion/motion.conf

 

 

Motion می تواند  برنامه و اسکریپت های خارجی را در زمان تشخیص حرکت و رویدادهای مرتبط اجرا نماید لیست رویدادها به شرح زیر میباشد

۱ – on_event_start
۲ – on_event_end
۳- on_picture_save
۴ – on_motion_detected
۵ – on_area_detected
۶ – on_movie_start
۷ –  on_movie_end
۸ –  on_camera_lost
۹ – on_camera_found 

ما از رویداد on_event_start  جهت اجرای کد پایتون motion_mail.py که جهت ارسال ایمیل در ابتدای زمان تشخیص حرکت نوشته شده است استفاده می نماییم

با استفاده از کلید های ترکیبی CTRL+W خط  on_event_start   را در برنامه پیدا کرده و نام فایل دانلود شده را در ادامه آن مینویسیم

on_event_start python  motion_mail.py

حال هر زمان حرکتی تشخیص داده شود ( شروع رویداد ) ،Motion  با ایمیل شما را مطلع مینماید

 

 


تجهیزات مورد نیاز


۱ – رزبری پای ۳
۲ – دوربین رسمی رزبیر پای ( همچنین می توانیم از وبکم نیز استفاده نماییم ) که در دو نسخه موجود است.

 

 

سایت منبع کتابخانه motion
https://motion-project.github.io

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

 

 

درباره نویسنده

وحید منسومی

مهندس برق قدرت و علاقه مند به برنامه نویسی

تبادل نظر و رفع عیب با ثبت دیدگاه

۸ دیدگاه

  • سلام خسته نباشید اول تشکر برای مطلب مفیدتون دوم اینکه میشه از چند تا دوربین رزبری پای یا چند تا وب کم استفاده کرد ؟
    به چه صورت.؟؟

    • سلام بله با استفاده از چند وب کم usb میشه این کار را انجام داد ،در آینده وقتش رو پیدا کردم در ادامه همین آموزش میزارم

  • با سلام و وقت بخیر
    در صورت امکان یکم واضح تر توضیح دهید بخصوص قسمت های اول
    کار هایی که من انجام دادم دوربین رزبری رو تهیه و روی رزبری نصب کردم ولی دستوراتی که گذاشتین یکم به مشکل خودم واضح نبود.

  • سلام
    بجای ارسال ایمیل میخوام از تماس تلفنی استفاده کنم چجوری اینکار کنم ممنون

  • سلام من پروژه ساخت دوربین مدار بسته رو دارم انجام میدم دوربینم ۵ مگا پیکسلی و دستور
    sudo modprobe bcm2835-v4l2 رو میزنم ارور میده میشه راهنمایی کنین ممنون میشم

  • سلام اگه نخوام از دوربین رزبری استفاده کنم و قصد اتصال دوربین مدار بسته خانه را به raspberry pi داشته باشم میشه را هنمایی کنید که چطور باید این کار را بکنم ؟