آموزش ذخیره تصویر افراد با رزبری پای
محتویات
سلام. آموزش راه اندازی دوربین با رزبری پای – پروژه ذخیره تصاویر بازدید کنندگان را آماده کردیم.
پروژه عکس گرفتن با Raspberry Pi
در این پروژه رزبری پای ما یک سیستم نظارت بر بازدید کنندگان میسازیم. در این پروژه شما با فشردن دکمه تصویر دوربین را در Raspberry Pi ذخیره میکنید.این سیستم در دفاتر یا کارخانه هایی که سابقه ورود حفظ می شود بسیار مفید است و سابقه حضور کارکنان دخیره می شود. این سیستم مانیتورینگ به طور دیجیتالی و خودکار تمام بازدید ها را حفظ میکند. شما میتوانید دکمه را خودتان فشار دهید تا در برای بازدیدکنندگان باز شود یا دکمه را در مسیر آن ها بگذارید.
فیلم زیر به شما در درک نحوه کار این پروژه کمک میکند.
در اصل این پروژه برای نظارت بر بازدید کنندگان است اما شما میتوانید قسمت نظارت بر بازدید کنندگان را انجام ندهید و فقط از این پروژه برای ذخیره تصاویر استفاده کنید. این پروژه در اصل به این صورت است که فردی که وارد میشود باید دکمه را فشار بدهید تا دروازه برای او باز شود تا عبور کند. با فشردن دکمه دوربین عکس میگیرد و آن را در رزبری پای ذخیره میکند. شما میتوانید موتور را به رزبری پای متصل نکنید تا فقط پروژه ای باشد که با فشردن دکمه تصویر را ذخیره میکند. تصویر شخص به همراه تاریخ ذخیره میشود. همچنین در یک ال سی دی کاراکتری ما ساعت و تاریخ را نمایش میدهیم که در صورت نیاز میتواند آن را هم متصل نکنید.
کار با این پروژه بسیار ساده است. یک دوربین پای برای ثبت تصویر بازدید کنندگان هنگام فشردن کلید استفاده میشود. موتور دی سی نیز به عنوان دروازه عمل میکند و میچرخد. هنگام فشردن دکمه بازر و ال ای دی نیز فعال میشوند.
نام تصاویر ذخیره شده تاریخ و زمان ورود است. یعنی نیازی به ذخیره تاریخ و زمان در جای دیگری نیست و عکس ها همه ی چیزی هستند که ما نیاز داریم.
مدار اتصال دوربین به رزبری پای
مدار این پروژه Raspberry Pi بسیار ساده است. در اینجا یک نمایشگر کریستال مایع (LCD) کاراکتری برای نمایش زمان / تاریخ و برخی پیام های دیگر استفاده می شود. LCD در حالت 4 بیتی به رزبری پای متصل است. پین های LCD یعنی RS، EN، D4، D5، D6 و D7 به پین شماره 18 ، 23 ، 24 ، 16 ، 20 و 21 GPIO متصل می شوند. ماژول دوربین Pi در شکاف دوربین Raspberry Pi متصل است. بازر به پین 26 از Raspberry Pi متصل می شود. LED از طریق یک مقاومت 1 کیلو اهم به پین 5 GPIO متصل شده و یک دکمه به GPIO 19 متصل شده است تا دوربین را فعال کرده و دروازه را باز کند. موتور DC (به عنوان Gate) به پین 17 و 27 GPIO از طریق موتور درایور L293D متصل می شود. بقیه اتصالات در شماتیک مدار نشان داده شده است.
برای اتصال Pi Camera ، کابل Ribbon Pi Camera را درون شکاف دوربین قرار دهید، زبانه های اتصال را در برد RPi کمی بالا بکشید و کابل Ribbon را درون شکاف قرار دهید، سپس به آرامی زبانه ها را پایین بیاورید.
قطعات مورد نیاز
- رزبری پای
- Camera Pi – دوربین پای
- ال سی دی کاراکتری 16×2
- موتور DC
- موتور درایور L293D
- بازر
- ال ای دی
- مقاومت 10 کیلو اهم
- مقاومت 1 کیلو اهم
- خازن 100 نانو فاراد
- دکمه
- پتانسیومتر 10 کیلو اهم
- منبع تغذیه
برنامه نویسی پروژه دوربین با رزبری پای
ما در اینجا از زبان پایتون برای برنامه استفاده می کنیم. برای اجرای این پروژه در Raspberry pi باید فایلهای کتابخانه Pi را نصب کنیم. برای این کار باید دستورات داده شده را اجرا کنیم.
$ sudo apt-get install python-picamera $ sudo apt-get install python3-picamera
سپس برای فعال سازی دوربین Raspberry Pi باید دستور زیر را اجرا کنید.
$ sudo raspi-config
سپس Enable camera را انتخاب کنید تا دوربین فعال شود.
سپس باید برد را ریستارت کنید. برای این کار دستور زیر را اجرا کنید.
$ sudo reboot
حالا به قسمت کد پروژه میرسیم. کد کامل در فایل دانلودی انتهای صفحه قرار داده شده است. در اینجا بعضی از قسمت های کد را توضیح میدهیم.
برنامه پایتون این پروژه برای انجام کلیه عملیات ها استفاده میشود. اول از همه، ما کتابخانه های مورد نیاز را فراخوانی میکنیم سپس متغیر های مورد نیاز را تعریف میکنیم.
سپسپ پین ها را برای LCD ، LED ، موتور و سایر قطعات تعریف میکنیم.
import RPi.GPIO as gpio // کتابخانه پین های GPIO import picamera // کتابخانه دوربین import time // کتابخانه تاخیر m11=17 //معرفی پین های موتور m12=27 led=5 //معرفی پین ال ای دی buz=26 //معرفی پین بازر button=19 //معرفی پین دکه RS =18 //معرفی پین های ال سی دی ... .... ... .....
عملکرد def capt_image () برای گرفتن تصویر بازدید کننده با زمان و تاریخ استفاده میشود.
def capture_image(): lcdcmd(0x01) lcdprint("Please Wait.."); data= time.strftime("%d_%b_%Y\%H:%M:%S") camera.start_preview() time.sleep(5) print data camera.capture('/home/pi/Desktop/Visitors/%s.jpg'%data) camera.stop_preview() lcdcmd(0x01) lcdprint("Image Captured") lcdcmd(0xc0) lcdprint(" Successfully ") time.sleep(2)
عملکرد def gate () برای کنترل موتور DC که در اینجا به عنوان دروازه استفاده می شود نوشته شده است.
def gate(): lcdcmd(0x01) lcdprint(" Welcome ") gpio.output(m11, 1) gpio.output(m12, 0) time.sleep(1.5) gpio.output(m11, 0) gpio.output(m12, 0) time.sleep(3) gpio.output(m11, 0) gpio.output(m12, 1) time.sleep(1.5) gpio.output(m11, 0) gpio.output(m12, 0) lcdcmd(0x01); lcdprint(" Thank You ") time.sleep(2)
سپس ما LCD و Pi Camera را پیکربندی میکنیم. و وضعیت دکمه را به طور مداوم در loop میخوانیم.
while 1: d= time.strftime("%d %b %Y") t= time.strftime("%H:%M:%S") lcdcmd(0x80) lcdprint("Time: %s"%t) lcdcmd(0xc0) lcdprint("Date:%s"%d) gpio.output(led, 1) if gpio.input(button)==0: gpio.output(buz, 1) gpio.output(led, 0) time.sleep(0.5) gpio.output(buz, 0) capture_image() gate() time.sleep(0.5)
این سیستم مانیتورینگ بازدید کنندگان و راه اندازی دوربین قابلیت های زیادی برای گسترش دادن دارد.
موارد موجود در فایل : سورس کامل ، شماتیک کامل
برای دانلود فایل ها باید حساب کاربری داشته باشید ثبت نام / ورود
با سلام و احترام
ضمن عرض درود و قدردانی جهت ارائه مطالب مفیدتون؛ برنامه ای که نوشتم تصویر را میگیره منتهی مشکلی که وجود دارد این هستش که تصویر به صورت RGB نمایش داده نمی شود. تصویر به آبی یا قرمز تمایل پیدا می کند. در ضمن از دوربین 3.6mm IR 1080P که مخصوص بر رزبری هست استفاده می نمایم. ممنون میشم راهنمایی فرمایید.
با تشکر
سلام جناب، قسمت آموزش پردازش تصویر رو مشاهده کنید.