آردوینو آموزش آردوینو پروژه های آردوینو

آموزش سنسور بیومتریک Fingerprint R301 بخش اول تعریف اثر انگشت

Fingerprint-module-arduino-digispark
نوشته شده توسط اروند طباطبایی

سنسورهای اثر انگشت به عبارتی سنسور بیومتریک هستند. این سنسورها از روی سطح انگشت یک عکس برداری الکترونیکی انجام می‌دهند. این عکس را در حافظه ذخیره می‌کنند. در مواقع نیاز اثر انگشت را با تصویر داخل حافظه تطبیق می‌دهند. کاربرد سنسور اثر انگشت FingerPrint Module امروزه بسیار زیاد شده است. به حدی که اکثر تلفن‌های همراه دارای سنسور اثر انگشت Finger Print هستند. شناسه اثر انگشت یک امر یکتا و منحصر به فرد می‌باشد. به حدی که امکان شباهت دو اثر انگشت با هم تقریبا غیر ممکن است. در ادامه مجموعه آموزش سنسور اثر انگشت با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

 

ماژول اثر انگشت Fingerprint R301

سنسور اثر انگشت به نوعی سنسور بیومتریک می‌باشد. به این منظور که از داده‌های بیولوژیکی برای اندازه‌گیری و آنالیز مشخصات انسان استفاده می‌کند. داده‌های بیولوژیکی برای هرشخص کاملا منحصر به فرد هستند. از این رو امکان کپی کردن این اطلاعات به سادگی دیگر اطلاعات نمی‌باشد. انواع ماژول‌ها برای تشخیص اثر انگشت Fingerprint sensor در بازار موجود است. هر کدام بر اساس حساسیت و ظرفیت ذخیره سازی تعداد اثر انگشت در حافظه شان متفاوت هستند. ماژول مورد استفاده در این آموزش از نوع R301T می‌باشد. ظرفیت ذخیره اطلاعات اثر انگشت در این ماژول طبق ادعای سازنده تا ۱۷۰۰ اثر انگشت است.

 

مشخصات ماژول اثر انگشت Fingerprint R301T

  • دارای حافظه رم ۹۶ کیلوبایت
  • دارای حافظه فلش ۱ مگابایت
  • ظرفیت حافظه ۱۷۰۰ اثر انگشت
  • دارای سنسور اثر انگشت JP2000
  • دارای پردازنده ۳۲ بیت ARM Cotex-M3
  • دارای سطح امنیتی ۳ ستاره از ۵ ستاره
  • مدت زمان پاسخ اثر انگشت کمتر از ۰٫۴۵ ثانیه
  • ولتاژ تغذیه برای ماژول در محدوده ۴ تا ۶ ولت DC
  • جریان کاری برای تغذیه ماژول کمتر از ۱۰۰ میلی آمپر
  • محدوده رطوبت کاری پیشنهادی از ۲۰ درصد تا ۸۰ درصد
  • محدوده دمای کاری پیشنهادی از ۱۰- تا ۶۰+ درجه سانتی گراد

 

وسایل آموزش اثر انگشت Fingerprint

برد آردوینو Arduino

ماژول اثر انگشت Fingerprint

 

اتصالات مدار اثر انگشت آردوینو Fingerprint

ماژول اثر انگشت R301T دارای ۶ رشته سیم است. مطابق شماتیک ارایه شده در زیر، پایه‌ها به ترتیب از راست به چپ شماره بندی می‌شوند. همراه این ماژول ۶ رشته کابل با سوکت مخصوص ارایه می‌شوند. از این رو فقط در یک جهت می‌توان سوکت را جای گذاری کرد. برای راه اندازی فقط باید ۴ رشته از سیم‌ها را اتصال دهیم. دو رشته دیگر را در این آموزش به صورت رها شده قرار می‌دهیم.

  • سیم قرمز که پایه ۱ ماژول اثر انگشت Fingerprint می‌باشد، به پایه ۵V آردوینو متصل می‌کنیم.
  • سیم مشکی که پایه ۲ ماژول اثر انگشت Fingerprint می‌باشد، به پایه GND آردوینو متصل می‌کنیم.
  • سیم زرد که پایه ۳ ماژول اثر انگشت Fingerprint می‌باشد، به پایه ۲ آردوینو UNO متصل می‌کنیم.
  • سیم سفید که پایه ۴ ماژول اثر انگشت Fingerprint می‌باشد، به پایه ۳ آردوینو UNO متصل می‌کنیم.
  • پایه‌های ۵ و ۶ ماژول یعنی سیم‌های سبز و آبی را در این آموزش استفاده نمی‌کنیم.

شماتیک ماژول اثر انگشت در آموزش سنسور بیومتریک Fingerprint R301 بخش اول تعریف اثر انگشت-دیجی اسپارک

 

کتابخانه ماژول اثر انگشت Fingerprint

در این آموزش من از کتابخانه فینگرپرینت آدافروت استفاده کرده‌ام. کتابخانه Adafruit_Fingerprint برای مدیریت ماژول‌های اثر انگشت Fingerprint توسعه داده شده است. برای دانلود کافیست به صفحه کالا ماژول سنسور اثر انگشت FingerPrint R301 مراجعه کرده و در قسمت دانلودها، فایل مربوطه را دانلود کنید. اگر با شیوه آپلود کتابخانه در نرم افزار آردوینو آشنا نیستید، از آموزش نصب کتابخانه در نرم افزار آردوینو Arduino IDE که توسط همکارم نوشته شده است؛ استفاده کنید.

 

کد برنامه ماژول اثر انگشت Fingerprint

 

مهمان گرامی، جهت دسترسی به کدهای این پروژه، اسپارکر شوید.

 

 

پس از وارد کردن کدها جهت کامپایل روی آردوینو Arduino IDE کافیست سریال مانیتور نرم افزار را باز کنید. در این حالت برنامه شروع به ارسال بازخورد می‌کند. سپس از شما می‌خواهد که بین ۱ تا ۱۲۷ عددی برای نسبت دادن به اثر انگشت انتخاب کنید. این موضوع از طریق همان سریال مانیتور انجام می‌شود. سپس برنامه پیام می‌دهد، Enrolling ID #… و در این حالت باید انگشت را روی محل سنسور اثر انگشت قرار دهید. سپس نرم افزار پیغام Remove finger را ارسال می‌کند. یعد از آن مجددا باید انگشت را روی سنسور قرار دهید. تا اینکه با پیغام Image converted مواجه شوید. کلیه این مراحل در تصویر زیر قابل مشاهده است.

آموزش-سنسور-بیومتریک-Fingerprint-R301-بخش-اول-تعریف-اثر-انگشت-دیجی-اسپارک

پروژه:

اخیرا تصمیم گرفته‌ایم برای تعامل بیشتر با شما کاربران و ایجاد موقعیتی در راستای رقابت دانش کاربران، در انتهای هر آموزش یک پروژه تعریف می‌کنیم. به اولین کاربری که به پروژه تعریف شده پاسخ صحیح بدهد، بن خرید به ارزش ۳۰ هزار تومان از فروشگاه دانشجو کیت ارایه خواهد شد. و اما پروژه این آموزش، کلیه عملیات ورود به سیستم را بر اساس ساعت و تاریخ با استفاده از ماژول ساعت و ماژول کارت خوان Micro SD در یک فایل متنی ذخیره کنید. به این صورت که برای هر آی دی موارد مشخص باشد. مثلا آی دی ۲۹ در تاریخ فلان و ساعت فلان، با اثر انگشت روی سنسور به سیستم فرضی وارد شده است.

 

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

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

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

اروند طباطبایی

بنیانگذار دیجی اسپارک: اولین مرجع تخصصی امبدد سیستم به زبان فارسی / کارشناس سئو و تولید محتوا

هرچه می آموزم میبینم که خیلی کم آموختم. در حال حاضر مدیریت تولید مقطع کارشناسی ارشد هستم. علاقه به رباتیک و تکنولوژی دارم. امیدوارم بتونم دانشی را که آموخته‌ام، به روش‌های مختلفی به کاربران علاقمند منتقل کنم.

تبادل نظر و رفع عیب با ثبت دیدگاه

۸۸ دیدگاه

  • با سلام و تشکر .
    در صورت امکان،فکر میکنم اگر جلوی هر خط برنامه کامنت مختصری نوشته بشه کمک بزرگی به یادگیری میکنه

    • با سلام
      ضمن تشکر از ارایه پیشنهاد شما، در این خصوص کاربران دیگری هم پیشنهاداتی داده‌اند. بررسی خواهم کرد و در صورت لزوم حتما اجرا خواهد شد. تا قبل از آن شما و دیگر کاربران می‌توانید بدون هیچ محدودیتی از طریق ثبت نظر سوالاتتان را مطرح کنید.

  • سلام . چطور میشه کتاب خونه های مختلف رو یاد گرفت؟ آیا منبع خاصی برای این مورد هست؟ آیا تابع های اون رو هم میشه یاد گرفت؟

    • سلام
      ضمن تشکر از توجه شما، در خصوص کتابخانه باید همان اصول C++ را بدانید. ولی کلا توسعه کتابخانه کمی متفاوت‌تر از توسعه یک برنامه خاص است. پیشنهاد می‌کنم ابتدا با کتابخانه‌های موجود نسبت به توسعه چند برنامه مختلف کنید، بعد از آن کتابخانه را شروع کنید.

  • با عرض سلام و خسته نباشید. معذرت میخوام که سوالم مربوط به این پست نیست ولی میخواستم بدونم آیا بدون استفاده از آی پی استاتیک و با استفاده از یک وب سرور و یک دامنه میشه از هر نقطه جغرافیایی پین های رزبری پای رو کنترل کرد ؟ یا حتی از طریق تله گرام ؟ یا اینکه حتما آی پی استاتیک باید از خدمات دهنده اینترنت درخواست کرد ؟

    • با سلام
      ضمن تشکر از توجه شما، لطفا سوالتان را در پست‌هایی مطرح کنید که مرتبط با آن می‌باشند. در خصوص سوال شما، خیلی موارد را کلی مطرح کرده‌اید. با استفاده از آی پی استاتیک و یا DNS می‌توان این موارد را مدیریت کرد.

  • سلام
    من با توجه به آموزشی که از این ماژول اثر انگشت گذاشتید اتصالاتمو وصل میکنم. بعد از اینکه کتابخونشو آپلود میکنم اون قسمتی که باید اثر انگشت جدید بدیم بهشو connecting error میده. مشکلش چیه؟ ممنون میشم پاسخ بدید

  • سلام من یک دانشجوی اماتورم در یک رشته غیر تخصصی که می خوام با استفاده از این ماژول یک محصول بسازم اما یک سوال داشتم توی این فیلمتو شما برای عمل ماژولتون نیاز به اتصال به لب تاپ دارین می خواستم بدونم میشه این اتصال نیاشه و خود برد بتونه اطلاعاتو بدون کامپیوتر تحلیل کنه و پاسخ بده
    مرسی

    • با سلام
      ضمن تشکر از توجه شما، در خصوص اتصال به یک کامپیوتر، چون در این آموزش به صورتی است که باید از طریق سریال مانیتور موارد را پیش ببرید. می‌توان در کدها تغییرات ایجاد کرد و بجای کامپیوتر یک ال سی دی به برد متصل کرد تا موارد را نمایش دهد.

  • سلام خسته نباشید واقعا ممونم که انقد کامل توضیح دادید .یه سوال داشتم میخواستم بدونم ۲ از همین سنسور رو چه طوربا یک اردینو راه اندازی کنم ؟
    هردو یک کارو همزمان انجام بدن.
    و ۲ سیم ۵و۶ چطور بسته میشه؟

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

  • سنسور رو من با اردینو uno r3میخوام راه اندازی کنم و با اینکه سیم تغذیه رو به ۵ولت برد وصل میکنم چراغ سنسور روشن نمیشه. دلیلش چیه؟

  • سلام و تشکر از اموزش مختصر ولی مفید جناب عالی…چطوری میشه مثلا ۱ یا ۲ اثر انگشت تعریف کرد و بعدش مثلا اگع تایید شد به یک رله وصل بشه و درب منزل را باز کنه یا یک برقی را قطع و وصل بکنه؟ چیزی شبیه به اکسس کنترل ها… و

  • سلام ببخشید میخواستم بدونم کدوم تابع فرمان گرفتن نمونه از اثرانگشت رو ارسال میکنه؟getFingerprintEnroll؟یا finger.getImage()؟

  • Image taken
    Image converted
    Remove finger
    ID 130
    Place same finger again
    …Image taken
    Image converted
    Creating model for #130
    Unknown error
    Ready to enroll a fingerprint!
    Please type in the ID # (from 1 to 127) you want to save this finger as…

    Unknown error

    به من این ارور رو میده.هر ایدی که میدم بهش هم همون ۱۳۰ میشناسه.بارها تست کردم.داره دیوونم میکنه

      • ممنون از پاسخگوییتون.هم فارسی هم انگلیسی تست کرم.با چندین ماژول از سه نوع مختلف هم تست کردم.اونی که الان دارم روش کار میکنم هم دقیقا همینه که شما دارید.با یک برنامه که تو وب پیدا کردم دارم توش فینگر میریزم اما با این روشی که شما میگید حدود ۸ ماهه درگیرم با همه نوع اگزمپل و برنامه سایتهایی مثه شما تست کردم جواب نمیگیرم.چون دارم دستگاه هایی که میسازمو میفروشم این ماجرا داره بهم ضرر مالی میزنه.

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

          • با همین کتابخونه ای که شما دادین و همین کدهایی که شما نوشتین تست کردم.برای چک کردن انگشتهایی که ایرول شده مشکلی نداره و کاملا عادی کار میکنه…شما با چند مدل سنسور کار کردین؟نسخه اردوینوتون و سیستم عاملتون چیه؟؟چه نسخه ای؟؟کدوم برد رو استفاده میکنن؟؟؟رو بردهای دیگه هم راحت جواب میگیرین؟؟

            • بنده همیشه از آخرین نسخه آردوینو استفاده می‌کنم. با سنسور اثر انگشت ۳۰۱ و ۳۰۲ کار کرده‌ام. ولی این مشکلی که شما دارید از موارد دیگری رخ داده است. در خصوص سوال آخر هم بله بدون مشکل اجرا شدند.

    • سلام
      در این خصوص موارد باید از طریق سریال مانیتور پیگیر شود. به مثال زیر در خصوص حذف اثر انگشت دقت بفرمایید.

      {
      Serial.println(“Please type in the ID # (from 1 to 127) you want to delete…”);
      uint8_t id = readnumber();
      if (id == 0) {// ID #0 not allowed, try again!
      return;
      }

      • Image taken
        Image converted
        Remove finger
        ID 1
        Place same finger again
        …………….Image taken
        Image converted
        Creating model for #1
        Unknown error
        Ready to enroll a fingerprint!
        Please type in the ID # (from 1 to 127) you want to save this finger as…

        سلام خدمت شما من این ارور رو اقعا نمیفهمم از چی هست میشه راهنمایی کنید

  • سلام خسته نباشید من این ماژول رو خریدم
    میخواستم بدونم چطوری برنامه رو تغییر بدم تا با یه یا چند اثر نگشت به یه رله دستور بدم؟

  • سلام
    من ماژول R308 رو به تازگی خریداری کردم اما وقتی طبق دیتاشیتی که در نت موجود هست اون رو متصل می کنم ماژول روشن نمیشه.
    اطلاعاتی که در دیتاشیت نوشته شده به این صورت هست:

    Pin 1 Vt Finger detection power (DC4.2~۶V、about5uA), (wire color: red)
    Pin 2 Vin Power Input (wire: black)
    Pin 3 TXD Data output. TTL logical level (wire color: yellow)
    Pin 4 RXD Data input. TTL logical level (wire color: green)
    Pin 5 GND Signal Ground (color: blue)
    Pin 6 Touch Finger detection signal (maximum output current: 50mA) – (Wire: white)

    اما سیم های ماژول به این صورت هستند:
    سیم ۱: قرمز
    سیم ۲: سیاه
    سیم ۳: زرد
    سیم ۴: سفید
    سیم ۵: سبز
    سیم ۶: آبی
    که با چیزی که در دیتاشیت نوشته شده در تضاد هست.
    ممنون میشم اگه اطلاعاتی دارید راهنمایی کنید.

    • با سلام
      دقت داشته باشید که دیتاشیت مورد استفاده شما ممکن است مربوط به تولید کننده دیگری باشد. از اینرو ترتیب سیم‌ها اهمیت ندارند. فقط به رنگ‌ها و کارایی آن‌ها توجه داشته باشید. ماژول اثرانگشت R308 بسیار منابع زیادی دارد و راه اندازی آن از ماژول R301 این آموزش بسیار ساده‌تر می‌باشد.

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

  • سلام من میخواستم این پروژه را درست کنم ولی دقیقا به چیزی نیاز داشتم که شما بالا گفتید ینی یک ذختیره کننده ی اطلاعات
    برای مشخص کردن زمان وو در سایت های دیگه پیدا کردم ولی هیج جا چیزی نبود که با یک رم اطلاعات ذخیره بشه ممنون میشم اگه کسی انجام داده و جوابشو دارید یا مدارشو برام بفرستید♥برای پروژه دانشگام میخوام خیلی واجبه

  • سلام وقت بخیر
    میتونیم یه خروجی رو فعال کنیم زمانیکه اثر انگشت با نمونه گرفته شده تطابق داشته باشه ؟

  • با عرض سلام و خسته نباشید

    من سنسور FPC1020 رو خریداری کردم
    برنامه ی کتابخونه ی خوده سنسور رو تست کردم
    ولی هر کاری میکنم سنسورم جواب نمیده ، هیچ پاسخی از طرف سنسور دریافت نمیکنم
    نمیدونم مشکل از سنسوره یا چیزه دیگه ، واقعا کلافم کرده

    اگر امکانش هست یه برنامه ی دیگه بهم معرفی کنید برای تست سنسور
    یا بهم بگید چطوری بفهمم سنسورم سالمه یا نه ؟

    خیلی خیلی خیلی ممنونتون میشم کمکم کنید

      • برنامه رو پروگرم کردم داخل آردوینو و توی سریال پرینت نرم افزار آردوینو
        سنسورم رو تست کردم و جوابی نگرفتم
        برنامه منتظر گرفتن اطلاعات از طرف سنسور میمونه ولی سنسور کاری انجام نمیده

        سنسور ۸ تا پین داره
        IRQ/WAKEUP — UART_TX — UART_RX — GND — VCC — RESET — USB_DN — USB_DP

        من طبق کتابخونه TX و RX رو به پایه های ۲ و ۳ آردوینو زدم
        تغذیه سنسور هم از خوده آردوینو گرفتم

        http://forum.arduino.ir/attachments/1965d1456567955-module-snsor-tshkhis-aor-angsht-fpc1020-_-deegou-electronics.pdf

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

  • سلام ببخشید من میخوام با ماژول اثر انگشت FingerPrint R308 و آردیونو یه مداری بسازم که وقتی اثر انگشتم رو شناسایی کرد رله روشن بشه و همچنین یه LCDکاراکتری باشه که نشون بده که بازه یا بسته. می شه لطفا لینک آموزش ساختش رو بزارید.
    ممنون از سایت خوبتون

  • سلام اگر یک ماژول دیگر تشخیص اثر انگشت داشته باشیم مثلا “ماژول سنسور اثر انگشت FingerPrint R302”
    اون وقت با همین برنامه کار می کنه؟

  • سلام. میخواستم بدونم آیا شما سنسور اثر انگشتی را میشناسید که برای هر اثر انگشت یک کد اختصاصی تعریف کند و ما بتوانیم آن را برای دستگاه های دیگه ارسال کنیم؟ شما در نظر بگیرید ما ۱۰ تا دستگاه حضور و غیاب داریم. حالا میخوایم از یک دستگاه مادر اثر انگشت کارمند جدید را تعریف کنیم به طوری که از این به بعد در تمامی دستگاه ها تعریف بشه اثر انگشت اون کارمند. مشکل اینجاست که سنسور های اثر انگشت که اطلاعاتش در اینترنت وجود دارد همه میگن که تصویر اثر انگشت رو در خودشون ذخیره میکنند و فقط یه کد به ما میدن که البته اون کد یونیک نیست. که بشه به یک دستگاه دیگه فرستاد که اثر انگشت براش تعریف بشه بدون این که طرف بیاد پای دستگاه و انگشتشو بزنه. اگر بتونید راهنماییم کنید اطلاعات پروژه رو پس از تکمیل شدن جهت انتشار در سایتتون به شما تحویل میدم.

    • با سلام
      خیر چنین امکانی با ماژول اثر انگشت وجود ندارد. برای این منظور بایستی از اسکنرهای اثر انگشت استفاده کنید. سپس اطلاعات را در یک پایگاه داده ذخیره سازی کنید. بعد در هر کدام از نودها فراخوانی صورت بگیرد. درضمن در این خصوص موارد امنیتی بسیار اهمیت پیدا خواهد کرد. یکی از دلایلی که ماژول اثر انگشت در خودشان اطلاعات را ذخیره سازی می‌کنند، همین موضوع میباشد.