این یک در پارکینگ الکترونیکی است که با اسکنر اثر انگشت SparkFun GT-511C1R ساخته میشود. این پست برای کسانی است به باز کردن در پارکینگ با اثر انگشت علاقه دارند و تلاش میکنند با بروزکردن اطلاعات خود، روشهایی برای ساهت تجهیزات باز کردن در پارکینگ با اثر انگشت بسازند.
اما برای باز کردن در پارکینگ با اثر انگشت چه چیزهایی نیاز دارید؟
بخش ۱: لحیم کاری/ سیم کشی
سیستم بازکنندهی درب شامل دو بخش میشود. یک پنل کنترل که بیرون از پارکینگ نصب میشود که در اینجا اسکنر اثر انگشت، یک صفحهی کوچک و چند دکمه هستند. بهتر است این دکمهها طوری باشند که در برابر تغییر آب و هوا مقاوم باشند. بخش دوم شامل یک جعبه درون پارکینگ است. این بخش تایید کننده اثر انگشتی است که اسکن شده است. همچنین وظیفهی باز کردن در به عهدهی این بخش است. این جعبه همچنین باید برق ورودی را به یک خروجی 3/3 ولتی تقسیم کند.
یک میکروکنترلر ATMega328p مغز کنترل کننده کنترل پنل خارجی است و یک میکروکنترلر ATTiny در جعبهی درون پارکینگ است. این دو میکروکنترلر از طریق یک درگاه با هم ارتباط برقرار میکنند. ATTiny وظیقه دارد که ارتباط را با گرفتن یک کد خاص از طریق درگاه قطع کند. به این صورت یک دزد خیلی باهوش هم نمیتواند با باز کردن جعبهی کنترل پنل و وصل کردن چند سیم به هم آن را باز کند.
هر چند که دیتا شیت ادعا میکند این FPS میتواند ۶ ولت را تحمل کند بهتر است از مدلهایی استفاده کنید که برق ۳/۳ ولت را بتواند کنترل کند. معمولا میکروکنترلرها با ۳/۳ ولت جریان بهتر کار میکنند و LCD هم انتظار همین مقدار برق را دارد.
لیست قطعات برای باز کردن در پارکینگ با اثر انگشت
- اسکنر اثر انگشت GT-511C1R
- LCD Nokai 5110
- میکروکنترلر ATMega328p
- میکروکنترلر ATTiny85
- رگولاتور ولتاژ MCP1700-3V3
- دو خازن ۱۰ میکروفاراد
- سه مقاومت ۱۰ کیلو اهم
- سه مقاومت ۱۰۰ اهم
- سه دکمهی بلند
- سوکت ic، ۲۸ پین و ۸ پین، برای مراقبت از میکروکنترلرها حین لحیم کاری و همچنین مناسب برای برنامهنویسی دوباره میکروکنترلر
- بلاک ترمینال برای وصل کردن سیمهای کنترل پنل به جعبهی داخلی بدون نیاز به لحیم کاری
- جعبهی مقاوم در برابر آب و هوا
- یک قطعهی مستطیلی کوچک آکریلیک برای پوشاندن جلوی دستگاه و شیک بودن آن
- تبدیل کننده ولتاژ ۵ ولت DC، مثل یک شارژر تلفن
از تصویر شماتیک آمده در بالا برای لحیم کردن مدارها به کنترل پنل استفاده کنید. شما بخش اتصالی JTS را به سیمهای آزاد FPS و LCD لحیم میکنید (بهتر است برای مرتب نگه داشتن از یک روبان برای جمع کردن سیمها استفاده کنید). با این کار میتوانید سیمها را امن و مرتب در کنترل پنل بیرونی نگه دارید. با تشریح کدها در مراحل بعد میبینید که باید دکمهها را به پین ۱۲، ۱۳و ۱۴ وصل کنید.
به عنوان مثال در بورد Arduino به پینهای ۶، ۷ و ۸ باید متصل شود. تابع مورد نظر «بالا»، «تایید» و «پایین» تنظیم کنید. برای منطقی نگه داشتن و تمیز بودن کارتان بهتر است به همین ترتیب همهچیز را نگه دارید.
میتوانید بخش میکرو یو اس بی را از یک شارژر تلفن جدا کنید تا برق همه چیز را تامین کنید. با توجه به اینکه معمولا این بخش ارزان است و راحت به دست میآید بهتر چیزی از محصولات اپل تهیه نکنید. میتوانید برق مورد نیاز کل این مجموعه را با باتری هم فراهم کنید.
البته مراقب باشید که ولتاژ زیادی به چیپ MCP1700 وصل نکنید چرا که به سادگی داغ میکند. بخش FPS البته برق نسبتا زیادی مصرف میکند و حتی اگر از باتریهای 3xAAA استفاده کنید تنها یک روز برق دارید.
دو ماژول با سه سیم به هم متصل میشوند. یکی برای برق ۳/۳ ولت، یکی برای سیم زمین و یکی از TX به پین شماره پنج (در بورد Arduino پین شماره 0) ATMega328p روی ATTiny. این سیم برای اتصال نرم افزاری استفاده میشود. اگر سیمها را به هم بپیچانید راحتتر و تمیزتر میتوانید کارتان را انجام دهید.
بخش ۲: برنامه نویسی و چراغ چشمک زن
در این مورد ما از IDE آردوینو استفاده کردهایم تا بتوانیم برنامه مورد نظر را برای هر دو میکرو چیپ بنویسیم و کامپایل کنیم. Garagefinger.ino برای ATMega328p و فایل tiny_switch.ino برای ATTiny85 درون پارکینگ. دو فایل NokiaLCD.cpp و NokiaLCD.h دو استخوان اصلی کتابخانههای صفحه نمایش شما هستند که شما میتوانید آنها را از مثالهای سایت Arduino پیدا کنید. آنها باید درون پوشهی کتابخانهها در Arduino IDE قرار داده شوند. در ویندوز شما آن را در آدرس %HOMEPATH%\Documents\Arduino\libraries پیدا میکنید.
شما لازم دارید کتابخانههای Arduino برای FPS را هم پیدا کنید. به این دقت کنید که کتابخانههای موجود در سایت SparkFun کار نمیکنند. آنها معمولا برای مدلهای گرانتر مثل GT-511C3 استفاده میشوند. کتابخانههایی که برای مدل GT-511C1R کار میکنند را میتوانید بر روی github پیدا کنید.
اگر فکر میکنید که هکر باهوشی ممکن است سیمهای لحیم شده بیرون آمده از پارکینگ را پیدا کند، بهتر است از secretstring برای کدگذاری سیمها استفاده کنید. اگر خیلی زیاد نگران این بخش هستید میتوانید یک پسورد واقعا طولانی انتخاب کنید. باید رشتهی buf را در tiny_switch.ino تغییر دهید تا تعداد کاراکترهای آن به اندازه پسورد مورد نظر شما باشد. متغیر overrideCode در بالای garagefinger.ino باید یک مقدار 8 بیتی داشته باشد تا بتواند فرمان دکمههای بالا/پایین را کنترل کند و بتواند اثر انگشتهای جدید را در جای خالی حافظه قرار دهد.
با اینکار دیگر نیاز نیست شما اثر انگشت را اسکن کنید و تنها آن را به صورت داده به حافظه منتقل میکنید. این کار برای بار اولی که از دستگاه استفاده میکنید بسیار مفید است چرا که حافظهی اسکنر اثر انگشت کاملا خالی است. یکی از منوها گزینهی تغییر را دارد و بعد از این که یک بخش جدید در آن تعیین کنید اثر انگشت را درون EEPROM قرار میدهد؛ حتی اگر دستگاه خاموش باشد. ممکن است بخواهید این مقدار اولیه را تغییر دهید چون ممکن است فکر کنید هکرهای باهوش میتوانند از رمز عبور دیفالت استفاده کنند و پارکینگ شما را باز کنند.
روشهای مختلفی برای کامپایل کردن کد میکروچیپ وجود دارد. کامپایل کردن کد آردوینو با قرار دادن کد در آن به صورت مستقیم ممکن است. بعد آن را از ATMega328p خارج میکنید و از آن برای پروژه استفاده میکنید. اما این کار برای ATTiny ممکن نیست. شما میتوانید آردوینو را به عنوان یک روش ISP استفاده کنید.
اگر دوست دارید و از رزبری پای (Raspberry Pi) استفاده میکنید میتوانید از آن برای برنامه نویسی AVR خود استفاده کنید. شما نیاز دارید برای این کار فایلهای کامپایل شده garagefinger.hex و tiny_switch.hex را بر روی رزبری پای خود قرار دهید؛ چیزی که آردوینو به صورت معمول از کاربر پنهان میکند. بر روی ویندوز شما باید درون آخرین پوشهی build درون آدرس %HOMEPATH%\AppData\Temp بگردید. حواستان باشد که آردوینو اطلاعات را بعد از خروج پاک میکند.
بخش ۳: اسمبل کردن
برای اینکار ما از این جعبه برق مقاوم در برابر تغییر شرایط آب و هوایی را توصیه میکنیم که بیرون از پارکینگ قرار میگیرد. یک تکه اکریلیک برای قرار دادن داخل جعبه استفاده شده است. هر جنس سفت مقاومی قابل قبول است. اکریلیک برای این انتخاب شده است که میتوان آن را با لیزر برش داد و خیلی حرفهای به نظر رسید.
چند حفره برای بیرون آمدن دکمهها، LCD و اسکنر اثر انگشت لازم است. البته جای بیرون آمدن پیچها برای نگه داشتن برد ساخته شده نیز لازم است. همچنین این پیچها برای اینکه بخواهید دوباره چیپ را برنامهنویسی کنید هم لازم میشود.
جعبه تقسیم را میتوان با سوراخهای ½ اینچی بر روی دیوار نصب کرد و سه سیم بیرون آمده از آن را هم مد نظر داشته باشید. ATTiny درون یک جعبهی کوچک قرار داده شده است که به داخل قاب در وصل میشود. میتوانید این کار را با چند دور چسب انجام دهید.
بخش چهارم: باز کردن در پارکینگ با اثر انگشت
هر کدام از سه دکمه را که فشار دهید صفحه روشن و سنسور اثر انگشت فعال میشود. دستگاه منتظر میماند تا یک انگشت روی اسکنر قرار بگیرد. اگر انگشتی که روی آن قرار گرفته است شناسایی شود در باز و یک منو باز میشود. در این منو میتوانید در را باز یا بسته کنید. همچنین میتوانید از این طریق اثرانگشت های قدیمی را پاک کنید یا به آنها اضافه کنید.
میتوانید در این منو روشنایی صفحه نمایشگر را تنظیم کنید. این منو بهصورت خودکار حدود هشت ثانیه بالا میماند و در صورتی که از آن استفاده نکنید بسته میشود تا زمانی که اثر انگشت آشنایی روی آن قرار بگیرد. میتوانید این زمان را در تابع waitForButton در فایل garagefinger.ino تغییر دهید.
تنظیمی بهصورت پیشفرض در دستگاه قرار داده شده است تا بتوانید برای اولین بار به منو دسترسی پیدا کنید. فشار دادن کلید بالا/پایین به روشی خاص و پس از آن دکمهی OK دسترسی به سیستم را میدهد. چرا که هیچ اثر انگشتی ابتدا در حافظه وجود ندارد، همچنین اگر شما مسافرت باشید و بخواهید به کسی دسترسی دهید میتواند از این راه استفاده کند.
این مقدار به صورت متغیر درون overrideCode در فایل garagefinger.ino قرار داده شده است. در این کد هر «1» به عنوان بالا و هر «0» به عنوان پایین در نظر گرفته شده است. این کد میتواند از طریق منوی سیستم تغییر یابد و در EEPROM ذخیره میشود. به این صورت حتی با رفتن برق، این مقدار ذخیره خواهد شد.
اخطار: اگر شما کد باینری را تغییر دهید و آن را فراموش کنید و هیچ اثر انگشتی به سیستم وارد نکرده باشید نمیتوانید کاری به جز دوباره برنامهریزی کردن ATMega328p انجام دهید. با این کار EEPROM را مجبور میکنید تا حافظهش را پاک کند. (البته میتوانید با یک چکش کل سیستم را خرد کنید و دیگر به پارکینگ نروید.)
دقت کنید که این دستگاه تنها یک دکمه است. یعنی ایدهای ندارد که آیا در پارکینگ شما باز یا بسته است. برای این کار کمی تغییر کد و استفاده از یک سنسور حساس به نور نیاز است. با این کار دیگر نیازی نیست برای بستن در پارکینگ اثر انگشت وارد کنید. البته میتوانید یک مقدار پیشفرض به سیستم بدهید که مثلا پنج دقیقه بعد از باز شدن در، آن را ببندد.
البته روشهای دیگری هم برای باز کردن هوشمندانه درب پارکینگ وجود دارد. با پیشرفت تکنولوژی شرکت هوم محصولی وارد بازار کرده است که این دغدغهها را کنار میزند. دربازکن هوشمند هوم یک دستگاه کوچک است که به راحتی کنار درب پارکینگ نصب میشود و فقط با یکبار راهاندازی به وسیلهی اپلیکیشن هوم (HOOM) میتوان درب پارکینگ یا هر درب ریموتداری را با موبایل باز کرد.
با دربازکن هوشمند پارکینگ میتوانید با گوشی موبایل درب پارکینگ را باز و بسته نمایید و دغدغه گم شدن ریموت، تمام شدن باتری و … را نداشته باشید. حتی اگر گوشی شما در دسترس نباشد یا باتری گوشیتان تمام شده باشد، در اپلیکیشن هوم هرکسی یک حساب کاربری دارد که حتی با تمام شدن باتری گوشی یا حتی جا گذاشتن آن میتوانید با حساب کاربری خود با هر گوشی دیگری درب پارکینگ خود را باز و بسته کنید.
شما ترجیح میدهید از کدام روش برای باز و بسته کردن درب پارکینگتان استفاده کنید؟