این پروژه ساده باز کردن قفل درب با اثر انگشت با استفاده از آردوینو می‌تواند برای امنیت درب، پزشکی قانونی، تحقیقات جرم، شناسایی شخصی، سیستم حضور و غیاب و موارد دیگر بسیار مفید باشد. در آینده، ممکن است برنامه های بسیار بیشتری مانند گواهینامه رانندگی مبتنی بر اثر انگشت، عملیات حساب های بانکی و غیره وجود داشته باشد.

کل سیستم، تحت یک الگوریتم ساده به نام الگوریتم تطبیق (Matching Algorithm) کار می کند، که برای مقایسه الگوهای اثر انگشت قبلاً ذخیره شده با اثر انگشت کاربران برای اهداف احراز هویت استفاده می شود.

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

مدار نشان داده شده در شکل 1 با استفاده از منبع تغذیه 12 ولت کار می کند. یک میکروکنترلر آردوینو (MCU) تنها به 5 ولت نیاز دارد اما قفل برقی برقی به 12 ولت نیاز دارد. از آنجایی که آردوینو یونو دارای یک تنظیم کننده ولتاژ داخلی 5 ولتی است، می توان از منبع تغذیه 12 ولتی مشترک برای کل سیستم استفاده کرد.

قلب مدار، برد آردوینو یونو UNO است. این ماژول بر اساس میکروکنترلر ATMega328 است و دارای 14 پین ورودی/خروجی دیجیتال (I/O)، شش ورودی آنالوگ، حافظه فلش 32 کیلوبیتی، نوسانگر کریستالی 16 مگاهرتز، اتصال USB، جک پاور، هدر ICSP و دکمه تنظیم مجدد و غیره است. می توان آن را با استفاده از نرم افزار Arduino IDE برنامه ریزی کرد.

ماژول حسگر اثرانگشت R305 (متصل از طریق CON2) دارای رابط UART با اتصال مستقیم به MCU یا کامپیوتر از طریق آداپتور سریال MAX232 است. کاربر می تواند داده های اثر انگشت را در ماژول ذخیره کند و آن را در حالت 1:1 یا 1:N برای شناسایی پیکربندی کند. پین های TX و RX سنسور R305 به پین های دیجیتال آردوینو 2 و 3 متصل می شوند که برای ارتباط سریال استفاده می شوند.

در اینجا از صفحه نمایش 16×2 استفاده شده است. هر کاراکتر از 5×7 نقطه ماتریس ساخته شده است. پایه های 3، 4، 5 و 6 LCD خطوط کنترلی هستند که به خروجی از Preset (PR1)، پایه 12 (آردوینو)، GND و پایه 11 (آردوینو) متصل هستند. پایه های 11، 12، 13 و 14 پین های دیتای LCD هستند که به ترتیب به پایه های 7، 6، 5 و 4 آردوینو متصل می شوند. از پیش تعیین شده PR1 برای تنظیم کنتراست صفحه نمایش LCD استفاده می شود.

شیر برقی قفل درب الکترونیکی (که از طریق رابط CON3 متصل می شود) اساساً یک آهنربای الکتریکی است که از یک سیم پیچ بزرگ از سیم مسی با یک آرمیچر (لبه فلزی) در وسط ساخته شده است. هنگامی که سیم پیچ انرژی می گیرد، راب به مرکز سیم پیچ کشیده می شود. این اجازه می دهد تا شیر برقی به یک طرف حرکت کند.

قفل برقی به جریان بیشتری نسبت به آنچه آردوینو می تواند ارائه دهد نیاز دارد. بنابراین برای راه اندازی قفل، از رله 5 ولت (RL1) استفاده می شود. CON3 بین کنتاکت های معمولی باز رله (N/O) و GND متصل می شود. 

نرم افزار

برنامه هایی با نام enroll وprint از توابع مختلفی مانند getFingerprintEnroll(int,id)، Adafruit_Fingerprint(&mySerial) و getFingerprintEnroll(id) استفاده می کنند. این توابع در داخل کتابخانه تعریف می شوند و هنگام فراخوانی آرگومان ها را ارسال می کنند.

پس از آپلود enroll در آردوینو، مانیتور سریال را از Arduino IDE از گزینه های Tools→Serial monitor باز کنید. نرخ باود زیر پنجره سریال مانیتور را به 38400 تغییر دهید. گزینه Newline را از همان مکان انتخاب کنید. سپس، دستورالعمل های روی مانیتور سریال را دنبال کنید. انگشت را روی ماژول اثر انگشت قرار دهید. هر عدد کاملی را به عنوان شماره شناسه تایپ کنید. برای ارسال شماره شناسه از مانیتور سریال به آردوینو، زبانه Send را فشار دهید. این اثر انگشت به داده های دیجیتال تبدیل می شود و در پایگاه داده ماژول R305 ذخیره می شود.

بیش از 200 اثر انگشت در این سیستم قابل ذخیره است. اطمینان حاصل کنید که هر اثر انگشت یک شماره شناسایی منحصر به فرد دارد. این شماره شناسه در برنامه بعدی برای شناسایی نام شخص احراز هویت شده استفاده خواهد شد. مانیتور سریال کاربر را راهنمایی می کند که چه زمانی باید انگشت را بگذارد و چه زمانی آن را بردارید.

برای اشکال زدایی بدون نمایشگر LCD، پس از آپلود برنامه اثر انگشت، همان تنظیمات را برای نمایشگر سریال انجام دهید. این برای مقایسه اثر انگشت در سنسور با اثرهای ذخیره شده استفاده می شود. مانیتور سریال نیز اینجا را راهنمایی می کند. برنامه اثر انگشت باید برای تغییر نام و شماره شناسه مطابق با خواسته کاربران ویرایش شود.

برنامه enroll

مطمئن شوید که نرخ باود داده شده در برنامه صحیح است. نرخ باود برای مانیتور سریال می تواند هر چیزی باشد، اما نرخ باود برای سنسور R305 باید با آنچه در برگه داده آن ارائه شده است مطابقت داشته باشد. نرخ باود ممکن است با نسخه های مختلف سنسور متفاوت باشد. در برنامه ای مانند Serial.begin(38400) [نرخ باود برای مانیتور سریال] ارائه شده است. finger.begin(57600) [ نرخ باود برای حسگر]. قبل از تایید اثر انگشت، برد آردوینو را ریست کنید.

فایل های نوشته شده در برنامه بالا را می توانید از fingerprint.inoو enroll.inoو کتابخانه fingerprint library.zipدانلود و استفاده کنید.