پروژه الکترونیکپروژه های آردوینوپروژه های اثر انگشتپروژه های امنیتی

پروژه قفل امنیتی اثر انگشتی با آردوینو (آموزش باز کردن در با اثر انگشت در Arduino)

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

پروژه آردوینو در بازکن اثرانگشت

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

ما در این پروژه آردوینو یک انگشت از دستمان را روی سنسور اثر انگشت قرار میدهیم و آردوینو دستور باز شدن در را ارسال میکند و روی ال سی دی کاراکتری یک پیام خوش آمد نشان داده میشود.

این پروژه شامل :

  • آشنایی با سنسور اثر انگشت R305
  • اتصال سنسور اثرانگشت به برد آردوینو
  • ذخیره اثرانگشت و استفاده از پروژه به عنوان قفل در

همچنین ببینید : آموزش پروژه راه اندازی سنسور اثر انگشت GT511C3 با آردوینو

راه اندازی قفل امنیتی اثر انگشت با Arduino

در این پروژه سنسور اثر انگشت با آردوینو ، ما از ماژول حسگر اثر انگشت  استفاده کرده ایم. در اینجا ما از 4 دکمه برای کنترل پروزه استفاده میکنیم. هر کلید دارای ویژگی های دوگانه است.

راه اندازی قفل امنیتی اثر انگشت با Arduino

از کلید ENROLL برای ثبت نام شخص جدید در سیستم استفاده می شود. بنابراین هنگامی که کاربر می خواهد انگشت جدید را ثبت کند ، باید کلید ENROLL را فشار دهد ، سپس LCD از کاربر شناسه درخواست می کند. حال اگر در این زمان کاربر مایل به ادامه کار نباشد، می تواند دوباره کلید ENROL را فشار داده تا به عقب برگردد. این بار کلید ENROLL به عنوان کلید Back رفتار می کند، یعنی کلید ENROLL هم ثبت نام میکند و هم عملکرد رو به عقب دارد.

به طور مشابه ، کلید DEL/OK همچنین دارای همان عملکرد دوگانه است. مانند زمانی که کاربر انگشت جدید را ثبت می کند، باید او را با استفاده از دو کلید دیگر یعنی UP و DOWN انتخاب کند. اکنون کاربر باید کلید DEL / OK را فشار دهد (این بار این کلید مانند OK رفتار می کند) تا با شناسه انتخاب شده پیش برود. و کلید Del برای تنظیم مجدد یا حذف داده ها از EEPROM Arduino استفاده می شود.

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

توضیحات نحوه کار پروژه

راه اندازی قفل امنیتی اثر انگشت با Arduino

کار این پروژه سیستم حضور و غیاب اثر انگشتی بسیار ساده است. اول از همه ، کاربر باید به کمک دکمه ها، اثر انگشت کاربر را ثبت کند. برای انجام این کار ، کاربر باید کلید ENROLL را فشار داده و سپس LCD از کاربر درخواست میکند تا شناسه ای برای اثر انگشت وارد کند تا در حافظه با نام ID ذخیره شود.

اکنون کاربر باید با استفاده از کلیدهای UP / DOWN شناسه را وارد کند. پس از انتخاب شناسه ، کاربر باید کلید OK (کلید DEL) را فشار دهد. اکنون ال سی دی از شما می خواهد که انگشت را روی ماژول اثر انگشت قرار دهید. حال کاربر باید انگشت خود را روی ماژول اثرانگشت قرار دهد و باز دوباره میخواهد که انگشت را قرار دهد و سپس ماژول تصویر انگشت را ذخیره میکند.

حتما ببینید :  تشخیص چشم، فک، دهان با OpenCV و رزبری پای

حال اگر کاربر بخواهد شناسه یا اثر انگشت ذخیره شده را حذف کنیم، باید کلید DEL را فشار دهیم. پس از فشردن کلید حذف ، ال سی دی از شما میخواهد شناسه مورد نظر را برای حذف انتخاب کنید. اکنون کاربر باید ID را انتخاب کرده و کلید OK (همان کلید DEL) را فشار دهد. اکنون LCD به شما اطلاع می دهد که اثر انگشت با موفقیت حذف شده است.

اگر اثر انگشت قرار گرفته معتبر باشد ، چراغ سبز به مدت 5 ثانیه میدرخشد و در همان زمان در نیز باز میشود و بعد از 5 ثانیه به طور خودکار بسته میشود. شما میتوانید بسته به نیاز خود این عملکرد را تغییر دهید.

توضیحات شماتیک مدار پروژه قفل امنیتی

مدار این سیستم امنیتی اثر انگشت با آردوینو بسیار ساده است. برد Arduino تمامی مراحل پروژه یعنی دکمه ها ، بازر ، ال سی دی ، سنسور اثر انگشت و … را کنترل میکند.

اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید.

توضیحات شماتیک مدار پروژه قفل امنیتی

دکمه فشار به طور مستقیم به پین های ​​(D14 ENROLL ، D15 (DEL) ، D16 (UP و D17 DOWN آردوینو وصل شده اند. و LED زرد در پین دیجیتال D7 آردوینو به GND از طریق مقاومت 1k و LED سبز با همان روش به D6 آردوینو وصل می شود. پین های Rx و Tx سنسور اثرانگشت به طور مستقیم به پین دیجیتال D2 و D3 آردوینو متصل می شوند. از منبع تغذیه 5 ولت برد Arduino برای تغذیه کل مدار از جمله ماژول اثر انگشت و سروو موتور استفاده میشود.

از منبع تغذیه 5v برای ماژول اثر انگشت گرفته شده از برد Arduino استفاده می شود و موتور Servo نیز به PWM و پین D5 Arduino متصل است. یک ال سی دی کاراکتری 16×2 در حالت 4 بیتی پیکربندی شده است و RS ، EN ، D4 ، D5 ، D6 و D7 مستقیماً در پین های دیجیتال D13 ، D12 ، D11 ، D10 ، D9 و D8 Arduino به یکدیگر متصل می شوند.

توجه: در اینجا D14 ، D15 ، D16 ، D17 به ترتیب A0 ، A1 ، A2 ، A3 هستند.

آشنایی با سنسور اثر انگشت R305

آشنایی با سنسور اثر انگشت R305

ماژول ثبت اثر انگشت R305 یک سنسور نوری است که با استفاده از پردازش نوری اطلاعات را ثبت میکند. یکی ازویژگی های مهم این ماژول قابلیت تنظیم سطح امنیت توسط کاربر میباشد. شما میتوانید درجه امنیتی را بین 1 تا 5 تغییر دهید که این مقدار به طور پیشفرض 3 میباشد. این ماژول ها دارای سرعت بالایی میباشند. همچنین طول عمر این حسگر اثر انگشت 100 میلیون بار تشخیص اثر انگشت است. در این پروژه ما میتوانیم بیش از 200 اثر انگشت ذخیره کنیم فقط توجه داشته باشید که هر اثر انگشت یک آیدی منحصر به فرد داشته باشد.

قطعات مورد نیاز

  • برد آردوینو Uno
  • مقاومت 1 کیلو اهم – سه عدد
  • مقاومت 2.2 کیلو اهم
  • ماژول اثر انگشت R305
  • ال سی دی کاراکتری 16*2
  • سروو موتور
  • ال ای دی – دو عدد
  • دکمه – 4 عدد
  • دانلود نرم افزار آردوینو

توضیحات کد آردوینو پروژه

در این پروژه از کتابخانه سنسور اثر انگشت Adafruit استفاده کرده ایم. کد کامل پروژه در فایل دانلودی انتهای صفحه قرار داده شده است. در اینجا قسمت های مهم کد را توضیح میدهیم. کد زیر نشان میدهد که اگر اثر انگشت تایید شود، دروازه باز خواهد شد و پیام Gete Opened نمایش داده میشود و پس از 5 ثانیه در بسته خواهد شد و پیام Gate Closed نمایش داده میشود.

for(int i=0;i<5;i++)
  {
    lcd.clear();
    lcd.print("Place Finger"); // نمایش پیام قرار دادن انگشت
    delay(2000);
    int result=getFingerprintIDez();
    if(result>=0) // اگر اثر انگشت صحیح باشد
    {
        digitalWrite(openLight, HIGH); // ال ای دی سبز روشن
        digitalWrite(closeLight, LOW); // ال ای دی زرد خاموش
        lcd.clear();
        lcd.print("Allowed");
        lcd.setCursor(0,1);
        lcd.print("Gete Opened   "); // نمایش پیام در باز است
        myServo.write(0);
        delay(5000); // تاخیر به مدت 5 ثانیه
        myServo.write(180);
        digitalWrite(closeLight, HIGH); // ال ای دی زرد روشن
        digitalWrite(openLight, LOW); // ال ای دی سبز خاموش
        lcd.setCursor(0,1);
        lcd.print("Gate Closed   "); // نمایش پیام در بسته است

عملکرد checkKeys () برای بررسی وضعیت دکمه های Enroll و Delete استفاده میشود. و در این تابع تعریف میکنیم که در صورت فشرده شدن چه اتفاقی باید رخ دهد. یعنی اگر دکمه Enroll فشرده شد عملکرد Enroll() و اگر دکمه Delete فشرده شد عملکرد delete() اجرا میشود.

void checkKeys()
{
   if(digitalRead(enroll) == 0) // در صورتی که دکمه Enroll فشرده شود
   {
    lcd.clear();
    lcd.print("Please Wait"); // نمایش پیام لطفا صبر کنید
    delay(1000); // به مدت 1 ثانیه
    while(digitalRead(enroll) == 0);
    Enroll(); // اجرای تابع Enroll
   }

   else if(digitalRead(del) == 0) // در صورتی که دکمه Del فشرده شود
   {
    lcd.clear();
    lcd.print("Please Wait");// نمایش پیام لطفا صبر کنید
    delay(1000); // به مدت 1 ثانیه
    delet(); // اجرای تابع delet
   }  
}

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

حتما ببینید :  ساخت دماسنج بدون تماس با آردوینو (مخصوص کرونا و ثبت در فرمت اکسل)

uint8_t DeleteFingerprint (uint8_t id)

استفاده میشود که اثر انگشت را از سوابق حذف میکند.

void delet()
{
   int count=0;
   lcd.clear();
   lcd.print("Delete Finger    "); // نمایش پیام حذف اثر انگشت
   lcd.setCursor(0,1);
   lcd.print("Location:");
   while(1)
   {
     lcd.setCursor(9,1);
     lcd.print(count);
     if(digitalRead(up) == 0) 
     { // کد وارد کردن شناسه
       count++;
       if(count>25)
       count=0; 
       delay(500);
     }
.... .....
..... .....

عملکرد زیر اجرا میشود و اثر انگشت مورد نظر شما حذف خواهد شد.

uint8_t deleteFingerprint(uint8_t id) 
{
  uint8_t p = -1;  
  lcd.clear();
  lcd.print("Please wait"); // نمایش پیام لطفا صبر کنید
  p = finger.deleteModel(id);
  if (p == FINGERPRINT_OK) // اگر شناسه درست وارد شود
  {
    Serial.println("Deleted!"); 
    lcd.clear();
    lcd.print("Figer Deleted"); // نمایش پیام حذف شد موفقیت آمیز
    lcd.setCursor(0,1);
    lcd.print("Successfully"); // نمایش پیام حذف شد موفقیت آمیز
    delay(1000);
  } 
  
  else // اگر شناسه یافت نشود
  {
    Serial.print("Something Wrong"); 
    lcd.clear();
    lcd.print("Something Wrong"); // نمایش پیام یک چیز اشتباه پیش میرود
    lcd.setCursor(0,1);
    lcd.print("Try Again Later"); // نمایش پیام بعدا امتحان کنید
    delay(2000);
    return p;
  }   
}

عملکرد زیر نیز برای دریافت اثر انگشت و تبدیل آن و ذخیره آن با شناسه انتخاب شده در حافظه ماژول اثر انگشت استفاده میشود.

uint8_t getFingerprintEnroll() 
{
  int p = -1;
  lcd.clear();
  lcd.print("finger ID:"); // نمایش پیام وارد کردن شناسه
  lcd.print(id);
  lcd.setCursor(0,1);
  lcd.print("Place Finger"); // نمایش پیام اثر انگشت را قرار بدهید
  delay(2000);
  while (p != FINGERPRINT_OK)
  {
    p = finger.getImage();
..... .....
....... ....

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

موارد موجود در فایل :  شماتیک کامل ، سورس کامل

برای دانلود فایل های پروژه ثبت نام کنید، تنها چند ثانیه زمان لازم است. از طریق فرم زیر اقدام کنید.

ایمیل خود را وارد کنید

نظرتان را در مورد این مطلب با ستاره دادن اعلام کنید امیدوارم این مطلب برای شما مفید بوده باشد. نظرات ، مشکلات و پیشنهادات خود را در پایین صفحه اعلام کنید

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید)

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا