آموزش راه اندازی ماژول سنسور اثر انگشت R308 با آردوینو

فهرست مطالب

ویژگی های ماژول سنسور اثر انگشت R308

ماژول سنسور اثر انگشت R308 ماژولی با دقت بالا ، سرعت عملکرد بالا ، الگوریتم تطبیق با کارایی بالا و تراشه ی فلش با ظرفیت بالاست که بر مبنای پردازش تصویر اثر انگشت و تطبیق و جستجو در حافظه و انجام عملکرد های مورد نظر، کار میکند. راه ارتباطی این ماژول با میکروکنترلر، سریال می باشد که در بادریت (Baud Rate) پیش فرض 57600 قرار دارد و امکان تغییر بادریت (Baud Rate) وجود ندارد. این ماژول قابلیت ذخیره سازی 500 اثر انگشت را دارد.

جهت دریافت دیتاشیت ماژول اثر انگشت R308 اینجا کلیک کنید.

معرفی پایه ها (Pinout) ماژول اثر انگشت R308

ماژول سنسور اثر انگشت R308 دارای 4 پایه به شرح زیر است:

  • VIN: تغذیه ماژول – 5 ولت
  • GND: زمین
  • RX: دریافت اطلاعات از طریق پروتکل سریال
  • TX: ارسال اطلاعات از طریق پروتکل سریال

پین اوت (Pinout) این ماژول را می توانید در تصویر زیر مشاهده کنید.

لوازمی که به آن احتیاج دارید

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

آردوینو UNO R3 × 1
سنسور اثر انگشت R308 × 1
سیم جامپر نری به مادگی × 1

نرم افزارهای مورد نیاز

آردوینو IDE

راه اندازی ماژول اثر انگشت R308 با آردوینو

گام اول: سیم بندی

مطابق مدار زیر، ماژول را به آردوینو وصل کنید.

توجه

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

 

گام دوم: کد

ابتدا کتابخانه زیر را بر آردوینوی خود نصب کنید. 

https://github.com/adafruit/Adafruit-Fingerprint-Sensor-Library

توجه

اگر نیاز به راهنمایی بیشتر برای نصب کتابخانه بر روی آردوینو دارید، می توانید به آموزش نصب کتابخانه بر آردوینو مراجعه کنید.

کد زیر را روی برد آردوینوی خود آپلود کنید.
/*************************************************** 
  This is an example sketch for our optical Fingerprint sensor

  Designed specifically to work with the Adafruit BMP085 Breakout 
  ----> http://www.adafruit.com/products/751

  These displays use TTL Serial to communicate, 2 pins are required to 
  interface
  Adafruit invests time and resources providing this open source code, 
  please support Adafruit and open-source hardware by purchasing 
  products from Adafruit!

  Written by Limor Fried/Ladyada for Adafruit Industries.  
  BSD license, all text above must be included in any redistribution
 ****************************************************/

#include <Adafruit_Fingerprint.h>

// On Leonardo/Micro or others with hardware serial, use those! #0 is green wire, #1 is white
// uncomment this line:
// #define mySerial Serial1

// For UNO and others without hardware serial, we must use software serial...
// pin #2 is IN from sensor (GREEN wire)
// pin #3 is OUT from arduino  (WHITE wire)
// comment these two lines if using hardware serial
SoftwareSerial mySerial(2, 3);

Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

uint8_t id;

void setup()  
{
  Serial.begin(9600);
  while (!Serial);  // For Yun/Leo/Micro/Zero/...
  delay(100);
  Serial.println("\n\nAdafruit Fingerprint sensor enrollment");

  // set the data rate for the sensor serial port
  finger.begin(57600);
  
  if (finger.verifyPassword()) {
    Serial.println("Found fingerprint sensor!");
  } else {
    Serial.println("Did not find fingerprint sensor :(");
    while (1) { delay(1); }
  }
}

uint8_t readnumber(void) {
  uint8_t num = 0;
  
  while (num == 0) {
    while (! Serial.available());
    num = Serial.parseInt();
  }
  return num;
}

void loop()                     // run over and over again
{
  Serial.println("Ready to enroll a fingerprint!");
  Serial.println("Please type in the ID # (from 1 to 127) you want to save this finger as...");
  id = readnumber();
  if (id == 0) {// ID #0 not allowed, try again!
     return;
  }
  Serial.print("Enrolling ID #");
  Serial.println(id);
  
  while (!  getFingerprintEnroll() );
}

uint8_t getFingerprintEnroll() {

  int p = -1;
  Serial.print("Waiting for valid finger to enroll as #"); Serial.println(id);
  while (p != FINGERPRINT_OK) {
    p = finger.getImage();
    switch (p) {
    case FINGERPRINT_OK:
      Serial.println("Image taken");
      break;
    case FINGERPRINT_NOFINGER:
      Serial.println(".");
      break;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("Communication error");
      break;
    case FINGERPRINT_IMAGEFAIL:
      Serial.println("Imaging error");
      break;
    default:
      Serial.println("Unknown error");
      break;
    }
  }

  // OK success!

  p = finger.image2Tz(1);
  switch (p) {
    case FINGERPRINT_OK:
      Serial.println("Image converted");
      break;
    case FINGERPRINT_IMAGEMESS:
      Serial.println("Image too messy");
      return p;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("Communication error");
      return p;
    case FINGERPRINT_FEATUREFAIL:
      Serial.println("Could not find fingerprint features");
      return p;
    case FINGERPRINT_INVALIDIMAGE:
      Serial.println("Could not find fingerprint features");
      return p;
    default:
      Serial.println("Unknown error");
      return p;
  }
  
  Serial.println("Remove finger");
  delay(2000);
  p = 0;
  while (p != FINGERPRINT_NOFINGER) {
    p = finger.getImage();
  }
  Serial.print("ID "); Serial.println(id);
  p = -1;
  Serial.println("Place same finger again");
  while (p != FINGERPRINT_OK) {
    p = finger.getImage();
    switch (p) {
    case FINGERPRINT_OK:
      Serial.println("Image taken");
      break;
    case FINGERPRINT_NOFINGER:
      Serial.print(".");
      break;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("Communication error");
      break;
    case FINGERPRINT_IMAGEFAIL:
      Serial.println("Imaging error");
      break;
    default:
      Serial.println("Unknown error");
      break;
    }
  }

  // OK success!

  p = finger.image2Tz(2);
  switch (p) {
    case FINGERPRINT_OK:
      Serial.println("Image converted");
      break;
    case FINGERPRINT_IMAGEMESS:
      Serial.println("Image too messy");
      return p;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("Communication error");
      return p;
    case FINGERPRINT_FEATUREFAIL:
      Serial.println("Could not find fingerprint features");
      return p;
    case FINGERPRINT_INVALIDIMAGE:
      Serial.println("Could not find fingerprint features");
      return p;
    default:
      Serial.println("Unknown error");
      return p;
  }
  
  // OK converted!
  Serial.print("Creating model for #");  Serial.println(id);
  
  p = finger.createModel();
  if (p == FINGERPRINT_OK) {
    Serial.println("Prints matched!");
  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
    Serial.println("Communication error");
    return p;
  } else if (p == FINGERPRINT_ENROLLMISMATCH) {
    Serial.println("Fingerprints did not match");
    return p;
  } else {
    Serial.println("Unknown error");
    return p;
  }   
  
  Serial.print("ID "); Serial.println(id);
  p = finger.storeModel(id);
  if (p == FINGERPRINT_OK) {
    Serial.println("Stored!");
  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
    Serial.println("Communication error");
    return p;
  } else if (p == FINGERPRINT_BADLOCATION) {
    Serial.println("Could not store in that location");
    return p;
  } else if (p == FINGERPRINT_FLASHERR) {
    Serial.println("Error writing to flash");
    return p;
  } else {
    Serial.println("Unknown error");
    return p;
  } 
}  

پس از آپلود کد، سریال مانیتور دستگاه خود را باز کنید.

دستگاه منتظر وارد کردن یک ID از سوی شما می باشد.

پس از تعریف کردن اثر انگشت خود، کد زیر را روی برد آردوینوی خود آپلود کنید.
/*************************************************** 
  This is an example sketch for our optical Fingerprint sensor

  Designed specifically to work with the Adafruit BMP085 Breakout 
  ----> http://www.adafruit.com/products/751

  These displays use TTL Serial to communicate, 2 pins are required to 
  interface
  Adafruit invests time and resources providing this open source code, 
  please support Adafruit and open-source hardware by purchasing 
  products from Adafruit!

  Written by Limor Fried/Ladyada for Adafruit Industries.  
  BSD license, all text above must be included in any redistribution
 ****************************************************/


#include <Adafruit_Fingerprint.h>

// On Leonardo/Micro or others with hardware serial, use those! #0 is green wire, #1 is white
// uncomment this line:
// #define mySerial Serial1

// For UNO and others without hardware serial, we must use software serial...
// pin #2 is IN from sensor (GREEN wire)
// pin #3 is OUT from arduino  (WHITE wire)
// comment these two lines if using hardware serial
SoftwareSerial mySerial(2, 3);

Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

void setup()  
{
  Serial.begin(9600);
  while (!Serial);  // For Yun/Leo/Micro/Zero/...
  delay(100);
  Serial.println("\n\nAdafruit finger detect test");

  // set the data rate for the sensor serial port
  finger.begin(57600);
  
  if (finger.verifyPassword()) {
    Serial.println("Found fingerprint sensor!");
  } else {
    Serial.println("Did not find fingerprint sensor :(");
    while (1) { delay(1); }
  }

  finger.getTemplateCount();
  Serial.print("Sensor contains "); Serial.print(finger.templateCount); Serial.println(" templates");
  Serial.println("Waiting for valid finger...");
}

void loop()                     // run over and over again
{
  getFingerprintIDez();
  delay(50);            //don't ned to run this at full speed.
}

uint8_t getFingerprintID() {
  uint8_t p = finger.getImage();
  switch (p) {
    case FINGERPRINT_OK:
      Serial.println("Image taken");
      break;
    case FINGERPRINT_NOFINGER:
      Serial.println("No finger detected");
      return p;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("Communication error");
      return p;
    case FINGERPRINT_IMAGEFAIL:
      Serial.println("Imaging error");
      return p;
    default:
      Serial.println("Unknown error");
      return p;
  }

  // OK success!

  p = finger.image2Tz();
  switch (p) {
    case FINGERPRINT_OK:
      Serial.println("Image converted");
      break;
    case FINGERPRINT_IMAGEMESS:
      Serial.println("Image too messy");
      return p;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("Communication error");
      return p;
    case FINGERPRINT_FEATUREFAIL:
      Serial.println("Could not find fingerprint features");
      return p;
    case FINGERPRINT_INVALIDIMAGE:
      Serial.println("Could not find fingerprint features");
      return p;
    default:
      Serial.println("Unknown error");
      return p;
  }
  
  // OK converted!
  p = finger.fingerFastSearch();
  if (p == FINGERPRINT_OK) {
    Serial.println("Found a print match!");
  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
    Serial.println("Communication error");
    return p;
  } else if (p == FINGERPRINT_NOTFOUND) {
    Serial.println("Did not find a match");
    return p;
  } else {
    Serial.println("Unknown error");
    return p;
  }   
  
  // found a match!
  Serial.print("Found ID #"); Serial.print(finger.fingerID); 
  Serial.print(" with confidence of "); Serial.println(finger.confidence); 

  return finger.fingerID;
}

// returns -1 if failed, otherwise returns ID #
int getFingerprintIDez() {
  uint8_t p = finger.getImage();
  if (p != FINGERPRINT_OK)  return -1;

  p = finger.image2Tz();
  if (p != FINGERPRINT_OK)  return -1;

  p = finger.fingerFastSearch();
  if (p != FINGERPRINT_OK)  return -1;
  
  // found a match!
  Serial.print("Found ID #"); Serial.print(finger.fingerID); 
  Serial.print(" with confidence of "); Serial.println(finger.confidence);
  return finger.fingerID; 
}
پس از آپلود کد، سریال مانیتور دستگاه خود را باز کنید. با هر بار قرار دادن اثر انگشت تعریف شده کد ID آن اثر انگشت نمایش داده می شود.
توجه

اگر نیاز به راهنمایی بیشتر برای نصب کتابخانه بر روی آردوینو دارید، می توانید به آموزش نصب کتابخانه بر آردوینو مراجعه کنید.

آموزش های مشابه

Comments (33)

  • آرمان Reply

    سیم بندی این سنسور
    سبز = GND
    مشکی و قرمز = 5V
    سفید= D3
    زرد = D2

    به صورت شماره ای هم بگم میشه
    شماره 1 و 2 = 5V
    شماره 3 = D2
    شماره 4 = D3
    شماره 5 = GND

    آوریل 16, 2021 at 1:40 ب.ظ
    • مهران ملکی Reply

      سلام.
      رنگ‌بندی سیم‌ها در ورژن‌های مختلف بعضا متفاوت هست. اما در مورد ترتیب پایه‌ها بله، درست می‌فرمایید. در قسمت معرفی پایه‌ها pinout هم همین ترتیب در مورد پایه‌های ماژول آورده شده. و اینکه پایه شماره 1 هم نیازی نیست به 5ولت متصل بشه. همون پایه 2 برای راه‌اندازی کفایت می‌کنه.

      آوریل 17, 2021 at 10:55 ق.ظ
    • حسین Reply

      سلام. خیلی لطف کردی آقا آرمان عزیز. الان نزدیک به 4 ساعت درگیر این قضیه بودم. فک نمیکردم مشکل از سیم بندیم باشه. فک میکردم این کتابخانه Adafruit برای r308 مناسب نباشه. بازم ممنون

      اکتبر 23, 2023 at 1:45 ق.ظ
  • جواد Reply

    برای من زمانی که اثر انگشتم مخوام ثبت کنم این برام میاد
    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…

    آوریل 26, 2021 at 1:47 ب.ظ
    • مهران ملکی Reply

      سلام.
      هر دفعه اتفاق میوفته یا بعضی وقت ها فقط پیش میاد؟

      آوریل 27, 2021 at 10:05 ق.ظ
      • جواد Reply

        همیشه اتفاق می افته
        لطفا کمکم کنید

        آوریل 27, 2021 at 6:18 ب.ظ
        • مهران ملکی Reply

          اگر هر بار اتفاق میوفته امکان ایراد داشتن خود ماژول هست. برای اطمینان میتونید از لینک های زیر هم برای راه‌اندازی ماژولتون کمک بگیرید.
          “https://www.arduino.cc/reference/en/libraries/r30x-fingerprint-sensor-library/”
          “https://github.com/brianrho/FPM”

          می 1, 2021 at 9:07 ق.ظ
  • جواد Reply

    الان من رفتم تو قسمت مثال ها اردوینو و دقیقا همین کد پیدا کردم با یک تفاوت که یه دستور کامل از توش حذف شده بود و این دستور در قسمت void setup هست
    finger.getParameters();
    Serial.print(F(“Status: 0x”)); Serial.println(finger.status_reg, HEX);
    Serial.print(F(“Sys ID: 0x”)); Serial.println(finger.system_id, HEX);
    Serial.print(F(“Capacity: “)); Serial.println(finger.capacity);
    Serial.print(F(“Security level: “)); Serial.println(finger.security_level);
    Serial.print(F(“Device address: “)); Serial.println(finger.device_addr, HEX);
    Serial.print(F(“Packet len: “)); Serial.println(finger.packet_len);
    Serial.print(F(“Baud rate: “)); Serial.println(finger.baud_rate);
    و زمانی که این کد میزدم همیچین ارورری تو کامپاین کردن اتفاق می افتاد
    ‘class Adafruit_Fingerprint’ has no member named ‘getParameters’

    می 2, 2021 at 9:52 ب.ظ
    • مهران ملکی Reply

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

      می 3, 2021 at 9:27 ق.ظ
      • جواد Reply

        ماژورم سالمه چون برنامه R308_seach_database که مخصوص r308 را اجرا میکنه ولی این برنامه ای که مال شما هست را اجرا نمیکنه شما برنامه ی دیگه ای جز این ندارین چون واقعا به کدش احتیاج دارم

        می 3, 2021 at 5:56 ب.ظ
  • جواد Reply

    دوستانی که زمانی که در سریال مانیتور انگشتشان را میخواهند ذخیره کننده با ارورر ناشناخته رو به رو می شوند فقط کافی است ورژن پایین تر اردوینو استفاده کنند
    لینکش براتون گذاشتم که مثل من وقتون تلف نشه برای یک چیز کوچک از ورژن ARDUINO 1.0.6 استفاده کنین به احتمال خیلی زیاد مشکل تون برطرف میشه :
    https://bit.ly/31HBlGy

    می 3, 2021 at 10:15 ب.ظ
    • مهران ملکی Reply

      ممنون از اینکه تجربه‌تون رو به اشتراک گذاشتید. به شخصه با این مشکل مواجه نشده بودم.

      می 8, 2021 at 12:31 ب.ظ
  • بنفشه Reply

    سلام. من وقتی کد اول را دانلود میکنم در مانیتور پیام زیر نمایش داده می شود.
    Adafruit Fingerprint sensor enrollment
    Found fingerprint sensor!
    Ready to enroll a fingerprint!
    Please type in the ID # (from 1 to 127) you want to save this finger as…

    و قسمت اخر که باید اثر انگشت ثبت شود نمایش داده نمی شود.

    آوریل 6, 2022 at 3:14 ب.ظ
    • مهران ملکی Reply

      سلام.
      تو این مرحله شما باید یک عدد بین 1 تا 127 وارد کنید به عنوان ID اثرانگشتی که میخواید ثبت بشه. بعد از اینکه عدد رو وارد میکنید عبارت Enrolling ID #number و بعد از اون هم Waiting for valid finger to enroll as #number نوشته میشه و ماژول منتظر یک اثرانگشت برای ثبت کردن میمونه.

      آوریل 7, 2022 at 12:22 ب.ظ
  • sina Reply

    Adafruit Fingerprint sensor enrollment
    Did not find fingerprint sensor 🙁
    سلام این ارور برام ارسال میشه یعنی ممکنه که از ماژول باشه با توجه به اینکه سیم بندی بر اساس شماره است نه رنگ
    ۳ ماژول به ۲
    ۴ ماژول به ۳

    می 4, 2022 at 10:09 ب.ظ
    • مهران ملکی Reply

      سلام
      بله در صورتی که این ارور رو دریافت میکنید امکانش هست که یا در اتصال ماژول به آردوینو و سیم‌بندی ایرادی وجود داشته باشه و اگر از نحوه اتصال مطمئن هستید احتمالا مشکل از خود ماژول هست.

      می 14, 2022 at 10:46 ب.ظ
    • radman mehdipour Reply

      سلام اگر این مشکل رو دارید پین ها رو به انالوگ متصل کنید .

      بهA0وA1با این تغییر در کد

      SoftwareSerial mySerial(A0, A1);

      منم همین مشکل رو داشتم با این کار درست شد.

      رادمان مهدی پور
      کانال اپارات اموزش های اردوینو و کد نویسی:
      https://www.aparat.com/radmanmehdipour
      لطفا دنبال کنید.

      سپتامبر 23, 2023 at 10:39 ب.ظ
  • Ehsan Reply

    سلام وقت بخیر ، اگر بخواهیم به جای آیدی از یک نام استفاده کنیم باید چیکار کرد؟

    آگوست 25, 2022 at 12:13 ب.ظ
    • مهران ملکی Reply

      سلام.
      شما میتونید با استفاده از همین کد بعد از باز کردن سریال مانیتور، به جای عدد، اسم وارد کنید و مشکلی ازین بابت وجود نداره.

      سپتامبر 12, 2022 at 9:47 ب.ظ
  • احسان Reply

    این ماژول ضرفیت ذخیره سازی ۱۰۰۰ عدد اثر انگشت را دارد وشماگفته اید یک عدد بین ۱ تا ۱۲۷ بنویسید آیامیشود برای انگشت هزارم نام انتخاب کرد

    اکتبر 7, 2022 at 10:28 ب.ظ
    • مهران ملکی Reply

      سلام.
      در این کد نوشته شده فرض شده که فرد استفاده کننده تنها به ذخیره 128 اثر انگشت مختلف نیاز داره. شما میتونید تا عدد 1000 رو هم به عنوان ID استفاده کنید.

      اکتبر 28, 2022 at 3:42 ب.ظ
      • احسان Reply

        سلام خیلی ممنون
        یعنی میتونم ۱۰۰۰ مدل مختلف ذخیره کنم

        ژانویه 13, 2023 at 5:27 ب.ظ
        • علی عبدالملکی Reply

          سلام
          طبق دیتاشیت محصول ظرفیت حافظه تا 500 کد یا سمپل ثبت شده است

          فوریه 28, 2023 at 10:19 ق.ظ
  • علی Reply

    سلام اگر بخواهیم با یک کد فرایند ثبت وحذف اثر انگشت و تست رو انجام بدیم، ممکنه؟

    دسامبر 2, 2022 at 11:26 ب.ظ
    • علی عبدالملکی Reply

      سلام
      بله امکان پذیر است.

      دسامبر 13, 2022 at 9:13 ق.ظ
  • امیرمحمد Reply

    سلام من الان سعی دارم یک پروژه با ماژول R308 و برد آردوینو درست کنم با این دو ارور همیشه مواجه میشم:
    Arduino: 1.8.13 (Windows 7), Board: “Arduino Uno”

    Sketch uses 990 bytes (3%) of program storage space. Maximum is 32256 bytes.

    Global variables use 11 bytes (0%) of dynamic memory, leaving 2037 bytes for local variables. Maximum is 2048 bytes.

    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00

    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00

    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00

    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00

    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00

    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00

    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00

    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00

    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00

    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00

    An error occurred while uploading the sketch

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.
    واین ارور:
    did not find fingerprint sensor 🙁
    اگه میشه یکی بهم راهنمایی کنه ایراد ازکجاست؟
    یه چیز دیگه سنسور اصلاروشن هم نمیشه نه درحالت اتصال ونه وقتی بخووتد اثرانگشت اسکن کنه.

    ژوئن 30, 2023 at 2:51 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      این ماژول ها به صورت نرمال هیچ چراغی بر رویشان روشن نمی شود. تا زمانی که ماژول تنظیم بشود.
      مشکل اول شما عدم برقراری ارتباط بین سیستم خود و برد آردوینو شما می باشد. که در آپلود برنامه بر روی برد به مشکل میخورد.
      مورد دوم شما نیز در بیشتر موارد عدم سیم کشی درست بین ماژول و برد می باشد.

      جولای 1, 2023 at 10:24 ق.ظ
  • عباس Reply

    سلام
    من سه تا اثرانگشت روی این ماژول ذخیره کردم الان میخوام پاکشون کنم
    با کدی که برای enroll هست اثرانگشت ها رو حذف میکنم
    ولی وقتی با کد دوم که برای نمایش دادن آیدی اثرانگشت هست
    همون اثرانگشت رو قرار میدم دوباره آیدی اثرانگشت رو پیدا میکنه ودرواقع پاک نشده
    چیکار کنم؟

    سپتامبر 15, 2023 at 11:53 ق.ظ
    • محمد دمیرچی Reply

      با سلام
      با کد enroll فقط اثر انگشت تعریف می شود.
      در همان لایبراری یک کدی قرار دارد به اسم delete و با ارسال ID مورد نظر ، اثرانگشت انتخابی پاک می شود، در صورتی که بخواهید کل اثرانگشت ها را حدف کنید می توانید از کد emptyDatabase استفاده کنید.

      سپتامبر 17, 2023 at 1:04 ب.ظ
  • رضا Reply

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

    ژانویه 1, 2024 at 5:21 ب.ظ
    • محمد دمیرچی Reply

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

      ژانویه 2, 2024 at 5:08 ب.ظ
  • عرفان رودباری Reply

    سلام
    مهندس چجوری میتونم بفهمم ماژولی که خرید کردم سوخته یا نه؟

    فوریه 29, 2024 at 11:22 ب.ظ
    • محمد دمیرچی Reply

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

      مارس 2, 2024 at 2:34 ب.ظ

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

نشانی ایمیل شما منتشر نخواهد شد.