Advertisement
Patey

Untitled

Apr 18th, 2019
305
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <Adafruit_Fingerprint.h>
  2. #include <SoftwareSerial.h>
  3. SoftwareSerial mySerial(2, 3);
  4.  
  5. Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
  6.  
  7. uint8_t id;
  8. char act;
  9.  
  10. int led = 13;
  11. int relay = 10;
  12. int fingerprintID = 0;
  13.  
  14.  
  15.  
  16. void setup()  
  17. {
  18.   Serial.begin(9600);
  19.   pinMode(led, OUTPUT);
  20.   pinMode(relay,OUTPUT);
  21.   pinMode(7,OUTPUT);
  22.  
  23.   digitalWrite(7,LOW);
  24.  
  25.   startFingerprintSensor();
  26.  
  27. }
  28.  
  29. uint8_t readnumber(void) {
  30.   uint8_t num = 0;
  31.  
  32.   while (num == 0) {
  33.     while (! Serial.available());
  34.     num = Serial.parseInt();
  35.   }
  36.   return num;
  37. }
  38.  
  39. void loop()                
  40. {
  41.  //inregistrare_amprenta();
  42.  verificare_amprenta();
  43. }
  44.  
  45.  
  46.  
  47. int verificare_amprenta(){
  48.  
  49.     fingerprintID = getFingerprintID();
  50.  
  51.     digitalWrite(led,HIGH);
  52.     if(fingerprintID > 0){
  53.       Serial.print("Am gasit id-ul #"); Serial.println(fingerprintID);
  54.       digitalWrite(led,LOW);
  55.       digitalWrite(relay,LOW);
  56.       delay(5000);
  57.       digitalWrite(relay,HIGH);
  58.       digitalWrite(led,HIGH);
  59.     }
  60.  
  61. }
  62.  
  63. void inregistrare_amprenta(){
  64.   Serial.println("Ready to enroll a fingerprint!");
  65.   Serial.println("Please type in the ID # (from 1 to 127) you want to save this finger as...");
  66.   id = readnumber();
  67.   if (id == 0) {// ID #0 not allowed, try again!
  68.      return;
  69.   }
  70.   Serial.print("Enrolling ID #");
  71.   Serial.println(id);
  72.  
  73.   while (!  getFingerprintEnroll() );
  74. }
  75.  
  76. uint8_t getFingerprintEnroll() {
  77.  
  78.   int p = -1;
  79.   Serial.print("Waiting for valid finger to enroll as #"); Serial.println(id);
  80.   while (p != FINGERPRINT_OK) {
  81.     p = finger.getImage();
  82.     switch (p) {
  83.     case FINGERPRINT_OK:
  84.       Serial.println("Image taken");
  85.       break;
  86.     case FINGERPRINT_NOFINGER:
  87.       Serial.println(".");
  88.       break;
  89.     case FINGERPRINT_PACKETRECIEVEERR:
  90.       Serial.println("Communication error");
  91.       break;
  92.     case FINGERPRINT_IMAGEFAIL:
  93.       Serial.println("Imaging error");
  94.       break;
  95.     default:
  96.       Serial.println("Unknown error");
  97.       break;
  98.     }
  99.   }
  100.  
  101.   // OK success!
  102.  
  103.   p = finger.image2Tz(1);
  104.   switch (p) {
  105.     case FINGERPRINT_OK:
  106.       Serial.println("Image converted");
  107.       break;
  108.     case FINGERPRINT_IMAGEMESS:
  109.       Serial.println("Image too messy");
  110.       return p;
  111.     case FINGERPRINT_PACKETRECIEVEERR:
  112.       Serial.println("Communication error");
  113.       return p;
  114.     case FINGERPRINT_FEATUREFAIL:
  115.       Serial.println("Could not find fingerprint features");
  116.       return p;
  117.     case FINGERPRINT_INVALIDIMAGE:
  118.       Serial.println("Could not find fingerprint features");
  119.       return p;
  120.     default:
  121.       Serial.println("Unknown error");
  122.       return p;
  123.   }
  124.  
  125.   Serial.println("Remove finger");
  126.   delay(4000);
  127.   p = 0;
  128.   while (p != FINGERPRINT_NOFINGER) {
  129.     p = finger.getImage();
  130.   }
  131.   Serial.print("ID "); Serial.println(id);
  132.   p = -1;
  133.   Serial.println("Place same finger again");
  134.   while (p != FINGERPRINT_OK) {
  135.     p = finger.getImage();
  136.     switch (p) {
  137.     case FINGERPRINT_OK:
  138.       Serial.println("Image taken");
  139.       break;
  140.     case FINGERPRINT_NOFINGER:
  141.       Serial.print(".");
  142.       break;
  143.     case FINGERPRINT_PACKETRECIEVEERR:
  144.       Serial.println("Communication error");
  145.       break;
  146.     case FINGERPRINT_IMAGEFAIL:
  147.       Serial.println("Imaging error");
  148.       break;
  149.     default:
  150.       Serial.println("Unknown error");
  151.       break;
  152.     }
  153.   }
  154.  
  155.   // OK success!
  156.  
  157.   p = finger.image2Tz(2);
  158.   switch (p) {
  159.     case FINGERPRINT_OK:
  160.       Serial.println("Image converted");
  161.       break;
  162.     case FINGERPRINT_IMAGEMESS:
  163.       Serial.println("Image too messy");
  164.       return p;
  165.     case FINGERPRINT_PACKETRECIEVEERR:
  166.       Serial.println("Communication error");
  167.       return p;
  168.     case FINGERPRINT_FEATUREFAIL:
  169.       Serial.println("Could not find fingerprint features");
  170.       return p;
  171.     case FINGERPRINT_INVALIDIMAGE:
  172.       Serial.println("Could not find fingerprint features");
  173.       return p;
  174.     default:
  175.       Serial.println("Unknown error");
  176.       return p;
  177.   }
  178.  
  179.   // OK converted!
  180.   Serial.print("Creating model for #");  Serial.println(id);
  181.  
  182.   p = finger.createModel();
  183.   if (p == FINGERPRINT_OK) {
  184.     Serial.println("Prints matched!");
  185.   } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
  186.     Serial.println("Communication error");
  187.     return p;
  188.   } else if (p == FINGERPRINT_ENROLLMISMATCH) {
  189.     Serial.println("Fingerprints did not match");
  190.     return p;
  191.   } else {
  192.     Serial.println("Unknown error");
  193.     return p;
  194.   }  
  195.  
  196.   Serial.print("ID "); Serial.println(id);
  197.   p = finger.storeModel(id);
  198.   if (p == FINGERPRINT_OK) {
  199.     Serial.println("Stored!");
  200.   } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
  201.     Serial.println("Communication error");
  202.     return p;
  203.   } else if (p == FINGERPRINT_BADLOCATION) {
  204.     Serial.println("Could not store in that location");
  205.     return p;
  206.   } else if (p == FINGERPRINT_FLASHERR) {
  207.     Serial.println("Error writing to flash");
  208.     return p;
  209.   } else {
  210.     Serial.println("Unknown error");
  211.     return p;
  212.   }  
  213.  
  214. }
  215.  
  216. void startFingerprintSensor()
  217. {
  218.   Serial.begin(9600);
  219.   finger.begin(57600);
  220.  
  221.   if (finger.verifyPassword()) {
  222.     Serial.println("Found fingerprint sensor!");
  223.   } else {
  224.     Serial.println("Did not find fingerprint sensor");
  225.   }
  226.   Serial.println("Waiting for valid finger...");
  227. }
  228.  
  229. int getFingerprintID() {
  230.   uint8_t p = finger.getImage();
  231.   if (p != FINGERPRINT_OK)  return -1;
  232.  
  233.   p = finger.image2Tz();
  234.   if (p != FINGERPRINT_OK)  return -1;
  235.  
  236.   p = finger.fingerFastSearch();
  237.   if (p != FINGERPRINT_OK)  return -1;
  238.  
  239.   // found a match!
  240.   Serial.print("Found ID #"); Serial.print(finger.fingerID);
  241.   Serial.print(" with confidence of "); Serial.println(finger.confidence);
  242.   return finger.fingerID;
  243. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement