Arduino Uno Fingerprint Scanner Tutorial: Enroll and Verify Your Fingerprints

Поделиться
HTML-код
  • Опубликовано: 4 окт 2024

Комментарии • 49

  • @jhesseyjoseph8448
    @jhesseyjoseph8448 11 месяцев назад +2

    Hello Sir
    How do I add two LEDs to the setup and what changes do I add to the code to make the LEDs work?
    Very intuitive video by the way.

    • @BMonsterLaboratory
      @BMonsterLaboratory  11 месяцев назад

      Hi there! Do you want a total of 2 LEDs added to this setup? What do you want the LEDs to do? One LED can light up red for failed scan while the other light up green...etc.
      Thanks for the comment! 👍

    • @emeraldmage5265
      @emeraldmage5265 6 месяцев назад +1

      @@BMonsterLaboratory hey ik im not the og commentor but like could i maybe have that second one for future endevors?

    • @BMonsterLaboratory
      @BMonsterLaboratory  6 месяцев назад

      @@emeraldmage5265 hey there! no problem. do you want the code where one LED can light up red for failed scan while the other light up green? just clarifying..

    • @emeraldmage5265
      @emeraldmage5265 6 месяцев назад

      yea @@BMonsterLaboratory

  • @yeshalae6
    @yeshalae6 6 месяцев назад +2

    hi there, i am a student i wanna know if it is possible to store the data of the enrolled fingerprints in a worksheet like in microsoft excel?

    • @BMonsterLaboratory
      @BMonsterLaboratory  6 месяцев назад

      hey! great question. Fingerprint scanners like the FPM11A store the fingerprint templates in their own memory and give you an ID for each enrolled fingerprint. I haven't tried it with this scanner but I believe using the Serial.print() function would allow you to capture data and display it on the serial monitor. You could add a data logger to your project for more long term data collection. This is just my assumption....I'm going to look into it. Thanks for the question!

  • @michaelgeorge3883
    @michaelgeorge3883 Месяц назад +1

    Can i get the image from the sensor to windows

    • @BMonsterLaboratory
      @BMonsterLaboratory  Месяц назад

      I'll have to look into this. At the moment, i'm not sure. Thank you for the question!! 👍👍

  • @mihiradeshappriya
    @mihiradeshappriya 3 месяца назад +1

    Adafruit Fingerprint sensor enrollment
    Did not find fingerprint sensor :(
    WHY is ithis happen?? pls help. Are some sensors not working for this code ??

    • @BMonsterLaboratory
      @BMonsterLaboratory  3 месяца назад

      It could be a number of reasons. Wire connections, power supply, correct baud rate, update library.... What message are you getting? You're using the Adafruit library?
      could be a bad sensor but you'll have to do some investigating first before you can determine that.
      Are you using the same sensor as the on in the video? Did any debugging info print to the serial monitor?

  • @tangxxzz
    @tangxxzz 7 дней назад +1

    hi good sir, can this be added by facial recognition?

    • @BMonsterLaboratory
      @BMonsterLaboratory  7 дней назад +1

      The R3 boards aren't suited well for facial recognition - not enough processing power. If there are libraries available for the Arduino Giga R1, that would work. You could also use ESP32, OpenMV Cam (works great), Raspberry Pi, Teensy. With these boards you could integrate a fingerprint module with your facial recognition. 👍

    • @tangxxzz
      @tangxxzz 6 дней назад

      @@BMonsterLaboratory oh ok .....what are the materials you used for your project?

    • @BMonsterLaboratory
      @BMonsterLaboratory  6 дней назад +1

      @@tangxxzz I used the fingerprint module, a breadboard, and some jumper wires. 0:20 You can also add an led with a 220 ohm resistor that lights up when your fingerprint scan is successful. 👍

    • @tangxxzz
      @tangxxzz 5 дней назад

      oh ok, can we use Arduino R4 and Arduino Mega??​@@BMonsterLaboratory

  • @rjhemy2495
    @rjhemy2495 8 месяцев назад +1

    Can this work for a printed fingerprint scan for a game instead of an actual finger?

    • @BMonsterLaboratory
      @BMonsterLaboratory  8 месяцев назад

      hey there! I like where you're going with this. I have never tried it but I don't think it would work. The FPM11A uses an optical sensor to capture a high-resolution image of the fingerprint placed on its scanning surface. It extracts detail such as ridges in the fingerprint that are stored and saved for future comparisons and you can't get that from a printed fingerprint.

  • @irafabrice
    @irafabrice 6 месяцев назад +1

    I want an Arduino codes for fingerprint car engine starter and will have display. Thank you!

    • @BMonsterLaboratory
      @BMonsterLaboratory  6 месяцев назад

      I like the idea! sounds like a fun project 👍

    • @irafabrice
      @irafabrice 6 месяцев назад

      @@BMonsterLaboratory how can you help me sir?

  • @DamayantiSubba
    @DamayantiSubba 8 месяцев назад +1

    Hey I am using R307 fingerprint sensor. I have connected the wire and uploaded the code properly but the serial monitor keeps displaying that "Didn't find fingerprint sensor" would you help me please? Thanks.

    • @BMonsterLaboratory
      @BMonsterLaboratory  8 месяцев назад

      hey, sorry about late reply. did you get this figured out? did you try any debugging in the code ?

    • @wasalyunus4553
      @wasalyunus4553 8 месяцев назад +1

      Hay brother, if you find any solution for it . Please let us know in the comment section. I have the same problem and I don't know how to solve it .

    • @BMonsterLaboratory
      @BMonsterLaboratory  8 месяцев назад

      @@wasalyunus4553 hey there! are you having trouble running the Adafruit_fingerprint library ? If you made any changes to a library or your code is different than the code i'm using in the video, can you post it here? If it's too long you can post it to the facebook page.

    • @notVinodRodrigo
      @notVinodRodrigo 6 месяцев назад

      I managed to solve this problem for myself. Try swapping the RX and TX on the ESP32

    • @mihiradeshappriya
      @mihiradeshappriya 3 месяца назад

      @@notVinodRodrigo Is this work for arduino uno??

  • @JustinPiquero-f8u
    @JustinPiquero-f8u 28 дней назад +1

    Hi can I use R307 fingerprint sensor?

    • @BMonsterLaboratory
      @BMonsterLaboratory  28 дней назад

      Sure! why not. You can use it with Arduino 👍

    • @JustinPiquero-f8u
      @JustinPiquero-f8u 28 дней назад +1

      @@BMonsterLaboratoryhi it say no fingerprint detected

    • @BMonsterLaboratory
      @BMonsterLaboratory  28 дней назад

      @@JustinPiquero-f8u did you try the example code? use a clean finger, clean surface plate with damp alcohol cloth, hold finger in one place for a while. If it doesn't work try pressing and holding by slightly moving around the surface. I think the biggest issue could be not placing the finger flat or getting oils on the surface of the reader.

    • @JustinPiquero-f8u
      @JustinPiquero-f8u 27 дней назад

      @@BMonsterLaboratory hi my fingerprint sensor is blink only once i input it is it damage?

    • @JustinPiquero-f8u
      @JustinPiquero-f8u 27 дней назад

      @@BMonsterLaboratory how i can fix this?

  • @solankiparth760
    @solankiparth760 7 месяцев назад +1

    My enrolling process is done but in fingerprint code it shows fingerprint didn't match .... What should i do?

    • @BMonsterLaboratory
      @BMonsterLaboratory  7 месяцев назад

      Hi there! Try lowering the confidence. If you set it at 100, try 70.

    • @solankiparth760
      @solankiparth760 7 месяцев назад +1

      Thank you so much 😇

    • @BMonsterLaboratory
      @BMonsterLaboratory  7 месяцев назад

      @@solankiparth760 you're welcome. good luck with your projects!

    • @solankiparth760
      @solankiparth760 7 месяцев назад +1

      Sir I don't know what's going on with my project
      I have put if if condition like if finger.cofidence < 70 then it should print our confidence level finger
      But now it's showing multiple I'd with same finger like for same finger sometimes show id 2 and sometime I'd 3 with confidence level of 2 or 3
      Please help me

    • @BMonsterLaboratory
      @BMonsterLaboratory  7 месяцев назад

      @@solankiparth760 clean the surface with alcohol, even oils from your finger can throw it off. Does your conditional check look something like this? if (finger.fingerID > 0) {
      Serial.print("Found ID #"); Serial.print(finger.fingerID);
      Serial.print(" with confidence of "); Serial.println(finger.confidence);
      if (finger.confidence < 70) {
      Serial.println("Confidence level too low!"); ? adjust the confidence 70, 80, 85...see what works best.

  • @anilasivan8449
    @anilasivan8449 7 месяцев назад +1

    Can u just put the code in the description

    • @BMonsterLaboratory
      @BMonsterLaboratory  7 месяцев назад

      #include
      #if (defined(__AVR__) || defined(ESP8266)) && !defined(__AVR_ATmega2560__)
      // 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)
      // Set up the serial port to use softwareserial..
      SoftwareSerial mySerial(2, 3);
      #else
      // On Leonardo/M0/etc, others with hardware serial, use hardware serial!
      // #0 is green wire, #1 is white
      #define mySerial Serial1
      #endif
      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("

      Adafruit 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); }
      }
      Serial.println(F("Reading sensor parameters"));
      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);
      }
      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.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(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;
      }
      return true;
      }

    • @BMonsterLaboratory
      @BMonsterLaboratory  7 месяцев назад +1

      hi there. I can't always put code in the description or comments because sometimes it won't fit. This one is a Adafruit_Fingerprint.h library example, i was able to put it here in the comments. If you ever want it posted here or emailed to you, just ask...no problem at all. Good luck! This module is fun to play around with. 👍

  • @ezeprecious5639
    @ezeprecious5639 2 месяца назад

    Pls I need finger print code with lcd

    • @BMonsterLaboratory
      @BMonsterLaboratory  Месяц назад

      hey there! 2:57 download fingerprint library and open the example to enroll your fingerprint. 👍