گرفتن تصویر از دوربین با آردوینو

چاپ

این فصل، بخش دوم و آخرین بخش از آموزش ایجاد یک دزدگیر با آردوینو است. تاکنون ما دوربین خود را پیکربندی کردیم و بلوتوث و پایتون را نیز تنظیم کرده ایم. در این فصل می خواهیم موضوعات زیر را بررسی کنیم:


کار کردن با تصویر

همان طور که قبلا توضیح داده شد، وقتی که آردوینو پیغامی را به پایتون ارسال می کند، پایتون با استفاده از دوربین یک تصویر می گیرد و آن را در رایانه ذخیره می کند. سپس ما باید این تصویر را در یک سرویس اشتراک فایل آپلود کنیم. برای انجام این کار راه های مختلفی وجود دارد اما ما قصد داریم از سایت Imgur استفاده کنیم. برای انجام این کار، به این آدرس بروید و بر روی دکمه ی sign up کلیک کنید و یک حساب کاربری بسازید. وقتی که حساب کاربری خود را تایید کردید، به این آدرس بروید تا بتوانیم یک اپلیکیشن جدید را اضافه کنیم تا Imgur به ما امکان دهد که تصاویر خود را با استفاده از یک اسکریپت در این سایت آپلود کنیم. برای اضافه کردن اپلیکیشن از اطلاعات زیر استفاده کنید:

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

حالا سایت Imgur یک Client ID و یک Client secret به ما اختصاص می دهد. بنابراین آنها را در جایی یادداشت کنید که به آنها نیاز پیدا خواهیم کرد. حالا اجازه دهید تا قابلیت آپلود تصویر را امتحان کنیم. اما قبل از آن نیاز داریم تا کتابخانه ی پایتون سایت Imgur را نصب کنیم. برای انجام این کار، ابتدا باید یک نصاب کتابخانه های پایتون به نام pip را نصب کنیم که به ما کمک می کند تا دیگر کتابخانه ها را دانلود کنیم. پس به این آدرس بروید و فایل getpip.py را دانلود کنید. و یا اینکه می توانید روی اینجا کلیک کنید تا این فایل را دانلود کنید. پس از دانلود، آن را در آدرس زیر قرار دهید:

C:\Python27

حالا به درایو C بروید و کلید Shift را پایین نگه دارید و سپس بر روی پوشه ی Python27 راست-کلیک کنید. و گزینه ی Open command window here را انتخاب کنید:

در پنجره ی باز شده عبارت get-pip.py را تایپ کنید و کلید Enter را فشار دهید و اجازه دهید تا این فایل بر روی کامپیوتر شما نصب شود. حالا به آدرس زیر بروید:

C:\Python27

و کلیک Shift را پایین نگه دارید و بر روی پوشه ی Scripts راست-کلیک کنید. سپس بر روی Open command window here کلیک کنید و در پنجره ی باز شده عبارت pip install pyimgur را تایپ کنید و Enter را بزنید تا کتابخانه ی Imgur نصب شود. پنجره ی ترمینال شما شبیه به تصویر زیر خواهد بود:

اجازه دهید تا کتابخانه ای که به تازگی نصب کرده ایم را امتحان کنیم. پس نرم افزار Eclipse را باز کنید و یک فایل جدید به نام imgur_test.py ایجاد کنید و کدهای زیر را در آن کپی کنید. و یا اینکه می توانید فایل imgur_test.py را از پوشه ی فایل های دانلودی این کتاب، در فصل 5 بارگذاری کنید.

import pyimgur # imgur کتابخانه ی
import urllib # URL کتابخانه پیش فرض گیرنده  
import time # کتابخانه ی زمان برای اضافه کردن وقفه هایی مثل آردوینو
CLIENT_ID = "<your client ID>" # imgur آی دی

# دریافت تصویر از دوربین و ذخیره ی آن بعنوان یک تصویر در پوشه ی مشخص شده
urllib.urlretrieve("http://<your ip : port>/snapshot.cgi?user=admin&pwd=password","mug_shot.jpg")
time.sleep(2)
PATH = "C:\\<your python project name>\\mug_shot.jpg" # مکانی که تصویر ذخیره شده است
im = pyimgur.Imgur(CLIENT_ID) # cilent ID متصل می شود با استفاده از imgur به پلتفرم
uploaded_image = im.upload_image(PATH, title="Uploaded with PyImgur")
# تصویر را آپلود می کند
print(uploaded_image.link) # لینک تصویر را به ما می دهده

دقت کنید که در کدهای بالا باید به جای مقدار <your client ID> آی دی که در هنگام ایجاد یک اپلیکیشن در Imgur به ما داده شد را قرار دهیم. و به جای مقدار <your ip : your port> باید URL دوربین خود را قرار دهید. و به جای عبارت <your python project name> باید نام پوشه ای که کدهای پایتون در آن قرار گرفته اند را قرار دهید. بعنوان مثال اگر به ادیتور اکلیپس نگاه کنید:

نام پروژه ی ما helloworld است و در درایو C در جایی که فایل های پایتون قرار دارند، ما نام این پوشه را helloworld قرار داده ایم . بنابراین مسیر یا Path صحیح برای پروژه ی ما به صورت زیر است و mug_shot.jpg نام فایل ذخیره شده می باشد:

C:\\helloworld\\mug_shot.jpg

وقتی که شما همه ی آدرس ها را جایگذاری کردید و مطمئن شدید که دوربین به شبکه متصل است، می توانید کدها را اجرا کنید. پس با استفاده از پایتون کدها را Run کنید درست همان طور که در مثال helloworld.py در فصل قبل این کار را انجام دادید و بعنوان نتیجه ی این کار، یک لینک Imgur دریافت خواهید کرد.

حالا این لینک را کپی کنید و در یک مرورگر وب قرار دهید. تصویری شبیه زیر مشاهده خواهید کرد:

 سعی کنید صفحه را رفرش کنید و ببینید که چه اتفاقی می افتد. همان طور که مشاهده می کنید هیچ اتفاقی نمی افتد. هنگامی که می خواهید تصاویر را در Imgur آپلود کنید دقت کنید. اگر تصاویر خیلی زیادی را به یک باره آپلود کنید، حساب کاربری شما مسدود خواهد شد. اکنون زمان آن رسیده است که ببینیم چگونه می توانیم به گوشی هوشمند شما پیغام ارسال کنیم.