Introduction:
In this project, we are going to design a Fingerprint Sensor Based Biometric Attendance System using Arduino. Simply we will be interfacing fingerprint sensor with Arduino, LCD Display & RTC Module to design the desired project. In this project, we used the fingerprint Module and Arduino to take and keep attendance data and records.
Biometric Attendance systems are commonly used systems to mark the presence in offices and schools. This project has a wide application in school, college, business organization, offices where marking of attendance is required accurately with time. By using the fingerprint sensor, the system will become more secure for the users.
You can check the advanced version of this project here: IoT Biometric Fingerprint Attendance System. In case if you are not satisfied with R305/R307 Fingerprint sensors, you can refer to GT511C3 fingerprint sensor which is a faster and better fingerprint sensor.
Bill of Materials
S.N. | Components | Quantity | |
---|---|---|---|
1 | Arduino UNO Board | 1 | Amazon | AliExpress |
2 | R305/R307 Fingerprint Sensor | 1 | Amazon | AliExpress |
3 | DS3231/DS1307 RTC Module | 1 | Amazon | AliExpress |
4 | 16x2 LCD Display | 1 | Amazon | AliExpress |
5 | Potentiometer 10K | 1 | Amazon | AliExpress |
6 | Push Buttons | 5 | Amazon | AliExpress |
7 | Buzzer 5V | 1 | Amazon | AliExpress |
8 | LED 5mm Any Color | 1 | Amazon | AliExpress |
9 | Connecting Wires | 20 | Amazon | AliExpress |
10 | Breadboard | 1 | Amazon | AliExpress |
R305 Fingerprint Scanner Sensor Module:
Introduction:
This is a fingerprint sensor module with TTL UART interface for direct connections to microcontroller UART or to PC through MAX232 / USB-Serial adapter. The user can store the fingerprint data in the module and can configure it in 1:1 or 1: N mode for identifying the person.
The Fingerprint module can be directly interfaced with any microcontroller as well as Arduino Board. This optical biometric fingerprint reader with great features and can be embedded into a variety of end products like access control system, attendance system, safety deposit box, car door locking system.
Features
- Integrated image collecting and algorithm chip together, ALL-in-One
- Fingerprint can conduct secondary development & embedded into a variety of end products
- Low power consumption, low cost, small size, excellent performance
- Professional optical technology, precise module manufacturing techniques
- Good image processing capabilities can successfully capture image up to resolution 500 dpi
Specifications
- Fingerprint sensor type: Optical
- Sensor Life: 100 million times
- Static indicators: 15KVBacklight: bright green
- Interface: USB1.1/UART(TTL logical level)
- RS232 communication baud rate: 4800BPS~115200BPS changeable
- Dimension: 553221.5mm
- Image Capture Surface 15—18(mm)
- Verification Speed: 0.3 sec
- Scanning Speed: 0.5 sec
- Character file size: 256 bytes
- Template size: 512 bytes
- Storage capacity: 250
- Security level: 5 (1,2,3,4,5(highest))
- False Acceptance Rate (FAR) :0.0001%
- False Rejection Rate (FRR): 0.1%
- Resolution 500 DPI
- Voltage :3.6-6.0 VDC
- Working current: Typical 90 mA, Peak 150mA
- Matching Method: 1: N
- Operating Environment Temperature: -20 to 45° centigrades
Block Diagram Biometric Attendance System
In this Fingerprint Sensor Based Biometric Attendance System using Arduino, we used a Fingerprint Sensor module to authenticate a true person or employee by taking their finger input in the system. Here we are using 4 push buttons to register new fingerprint or delete stored fingerprint or match stored fingerprint. The 4 push buttons are used as an input unit for these tasks. Similarly, RTC Module DS3231 is used for registering scanning/entering/existing time of the user.
The LCD displays the time record and every function happening via push button. Buzzer indicates different functions and happening whenever an interrupt is detected. The LED is used for power indication.
Circuit Diagram & Connections
Source Code Program
The source code/Program for Fingerprint Sensor Based Biometric Attendance System using Arduino is given below. But before that you need to add fingerprint Sensor library & DS3231 Library. So download the following library:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 |
#include "Adafruit_Fingerprint.h" //fingerprint library header file #include<EEPROM.h> //command for storing data #include<LiquidCrystal.h> //lcd header file LiquidCrystal lcd(8,9,10,11,12,13); #include <SoftwareSerial.h> SoftwareSerial fingerPrint(2, 3); //for tx/rx communication between arduino & r305 fingerprint sensor #include <Wire.h> #include "RTClib.h" //library file for DS3231 RTC Module RTC_DS3231 rtc; uint8_t id; Adafruit_Fingerprint finger = Adafruit_Fingerprint(&fingerPrint); #define register_back 14 #define delete_ok 15 #define forward 16 #define reverse 17 #define match 5 #define indFinger 7 #define buzzer 5 #define records 10 // 10 for 10 user int user1,user2,user3,user4,user5,user6,user7,user8,user9,user10; DateTime now; void setup() { delay(1000); lcd.begin(16,2); Serial.begin(9600); pinMode(register_back, INPUT_PULLUP); pinMode(forward, INPUT_PULLUP); pinMode(reverse, INPUT_PULLUP); pinMode(delete_ok, INPUT_PULLUP); pinMode(match, INPUT_PULLUP); pinMode(buzzer, OUTPUT); pinMode(indFinger, OUTPUT); digitalWrite(buzzer, LOW); if(digitalRead(register_back) == 0) { digitalWrite(buzzer, HIGH); delay(500); digitalWrite(buzzer, LOW); lcd.clear(); lcd.print("Please wait !"); lcd.setCursor(0,1); lcd.print("Downloding Data"); Serial.println("Please wait"); Serial.println("Downloding Data.."); Serial.println(); Serial.print("S.No. "); for(int i=0;i<records;i++) { digitalWrite(buzzer, HIGH); delay(500); digitalWrite(buzzer, LOW); Serial.print(" User ID"); Serial.print(i+1); Serial.print(" "); } Serial.println(); int eepIndex=0; for(int i=0;i<30;i++) { if(i+1<10) Serial.print('0'); Serial.print(i+1); Serial.print(" "); eepIndex=(i*7); download(eepIndex); eepIndex=(i*7)+210; download(eepIndex); eepIndex=(i*7)+420; download(eepIndex); eepIndex=(i*7)+630; download(eepIndex); eepIndex=(i*7)+840; download(eepIndex); eepIndex=(i*7)+1050; download(eepIndex); eepIndex=(i*7)+1260; download(eepIndex); eepIndex=(i*7)+1470; download(eepIndex); eepIndex=(i*7)+1680; download(eepIndex); Serial.println(); } } if(digitalRead(delete_ok) == 0) { lcd.clear(); lcd.print("Please Wait"); lcd.setCursor(0,1); lcd.print("Reseting....."); for(int i=1000;i<1005;i++) EEPROM.write(i,0); for(int i=0;i<841;i++) EEPROM.write(i, 0xff); lcd.clear(); lcd.print("System Reset"); delay(1000); } lcd.clear(); lcd.print(" Fingerprint "); lcd.setCursor(0,1); lcd.print("Attendance System"); delay(2000); lcd.clear(); digitalWrite(buzzer, HIGH); delay(500); digitalWrite(buzzer, LOW); for(int i=1000;i<1000+records;i++) { if(EEPROM.read(i) == 0xff) EEPROM.write(i,0); } finger.begin(57600); Serial.begin(9600); lcd.clear(); lcd.print("Finding Module.."); lcd.setCursor(0,1); delay(2000); if (finger.verifyPassword()) { Serial.println("Found fingerprint sensor!"); lcd.clear(); lcd.print(" Module Found"); delay(2000); } else { Serial.println("Did not find fingerprint sensor :("); lcd.clear(); lcd.print("Module Not Found"); lcd.setCursor(0,1); lcd.print("Check Connections"); while (1); } if (! rtc.begin()) Serial.println("Couldn't find RTC"); // rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); if (rtc.lostPower()) { Serial.println("RTC is NOT running!"); // following line sets the RTC to the date & time this sketch was compiled rtc.adjust(DateTime(2018, 6, 7, 11, 0, 0)); // This line sets the RTC with an explicit date & time, for example to set // June 7, 2018 at 11am you would call: // rtc.adjust(DateTime(2018, 6, 7, 11, 0, 0)); } lcd.setCursor(0,0); lcd.print(" Press Match to "); lcd.setCursor(0,1); lcd.print(" Start System"); delay(3000); user1=EEPROM.read(1000); user2=EEPROM.read(1001); user3=EEPROM.read(1002); user4=EEPROM.read(1003); user5=EEPROM.read(1004); lcd.clear(); digitalWrite(indFinger, HIGH); } void loop() { now = rtc.now(); lcd.setCursor(0,0); lcd.print("Time: "); lcd.print(now.hour(), DEC); lcd.print(':'); lcd.print(now.minute(), DEC); lcd.print(':'); lcd.print(now.second(), DEC); lcd.print(" "); lcd.setCursor(0,1); lcd.print("Date: "); lcd.print(now.day(), DEC); lcd.print('/'); lcd.print(now.month(), DEC); lcd.print('/'); lcd.print(now.year(), DEC); lcd.print(" "); delay(500); int result=getFingerprintIDez(); if(result>0) { digitalWrite(indFinger, LOW); digitalWrite(buzzer, HIGH); delay(100); digitalWrite(buzzer, LOW); lcd.clear(); lcd.print("ID:"); lcd.print(result); lcd.setCursor(0,1); lcd.print("Please Wait...."); delay(1000); attendance(result); lcd.clear(); lcd.print("Attendance "); lcd.setCursor(0,1); lcd.print("Registered"); delay(1000); digitalWrite(indFinger, HIGH); return; } checkKeys(); delay(300); } // dmyyhms - 7 bytes void attendance(int id) { int user=0,eepLoc=0; if(id == 1) { eepLoc=0; user=user1++; } else if(id == 2) { eepLoc=210; user=user2++; } else if(id == 3) { eepLoc=420; user=user3++; } else if(id == 4) { eepLoc=630; user=user4++; } else if(id == 5) { eepLoc=0; user=user5++; } else if(id == 6) { eepLoc=840; user=user5++; } else if(id == 7) { eepLoc=1050; user=user7++; } else if(id == 8) { eepLoc=1260; user=user8++; } else if(id == 9) { eepLoc=1470; user=user9++; } else if(id == 10) { eepLoc=1680; user=user8++; } /*else if(id == 5) // fifth user { eepLoc=840; user=user5++; }*/ else return; int eepIndex=(user*7)+eepLoc; EEPROM.write(eepIndex++, now.hour()); EEPROM.write(eepIndex++, now.minute()); EEPROM.write(eepIndex++, now.second()); EEPROM.write(eepIndex++, now.day()); EEPROM.write(eepIndex++, now.month()); EEPROM.write(eepIndex++, now.year()>>8 ); EEPROM.write(eepIndex++, now.year()); EEPROM.write(1000,user1); EEPROM.write(1001,user2); EEPROM.write(1002,user3); EEPROM.write(1003,user4); // EEPROM.write(4,user5); // figth user } void checkKeys() { if(digitalRead(register_back) == 0) { lcd.clear(); lcd.print("Please Wait"); delay(1000); while(digitalRead(register_back) == 0); Enroll(); } else if(digitalRead(delete_ok) == 0) { lcd.clear(); lcd.print("Please Wait"); delay(1000); delet(); } } void Enroll() { int count=1; lcd.clear(); lcd.print("Enter Finger ID:"); while(1) { lcd.setCursor(0,1); lcd.print(count); if(digitalRead(forward) == 0) { count++; if(count>records) count=1; delay(500); } else if(digitalRead(reverse) == 0) { count--; if(count<1) count=records; delay(500); } else if(digitalRead(delete_ok) == 0) { id=count; getFingerprintEnroll(); for(int i=0;i<records;i++) { if(EEPROM.read(i) != 0xff) { EEPROM.write(i, id); break; } } return; } else if(digitalRead(register_back) == 0) { return; } } } void delet() { int count=1; lcd.clear(); lcd.print("Enter Finger ID"); while(1) { lcd.setCursor(0,1); lcd.print(count); if(digitalRead(forward) == 0) { count++; if(count>records) count=1; delay(500); } else if(digitalRead(reverse) == 0) { count--; if(count<1) count=records; delay(500); } else if(digitalRead(delete_ok) == 0) { id=count; deleteFingerprint(id); for(int i=0;i<records;i++) { if(EEPROM.read(i) == id) { EEPROM.write(i, 0xff); break; } } return; } else if(digitalRead(register_back) == 0) { return; } } } 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(); switch (p) { case FINGERPRINT_OK: Serial.println("Image taken"); lcd.clear(); lcd.print("Image taken"); break; case FINGERPRINT_NOFINGER: Serial.println("No Finger"); lcd.clear(); lcd.print("No Finger Found"); break; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); lcd.clear(); lcd.print("Comm Error"); break; case FINGERPRINT_IMAGEFAIL: Serial.println("Imaging error"); lcd.clear(); lcd.print("Imaging Error"); break; default: Serial.println("Unknown error"); lcd.clear(); lcd.print("Unknown Error"); break; } } // OK success! p = finger.image2Tz(1); switch (p) { case FINGERPRINT_OK: Serial.println("Image converted"); lcd.clear(); lcd.print("Image converted"); break; case FINGERPRINT_IMAGEMESS: Serial.println("Image too messy"); lcd.clear(); lcd.print("Image too messy"); return p; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); lcd.clear(); lcd.print("Comm Error"); return p; case FINGERPRINT_FEATUREFAIL: Serial.println("Could not find fingerprint features"); lcd.clear(); lcd.print("Feature Not Found"); return p; case FINGERPRINT_INVALIDIMAGE: Serial.println("Could not find fingerprint features"); lcd.clear(); lcd.print("Feature Not Found"); return p; default: Serial.println("Unknown error"); lcd.clear(); lcd.print("Unknown Error"); return p; } Serial.println("Remove finger"); lcd.clear(); lcd.print("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"); lcd.clear(); lcd.print("Place Finger"); lcd.setCursor(0,1); lcd.print(" 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"); return; } } // 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!"); lcd.clear(); lcd.print(" Finger Stored!"); delay(2000); } 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; } } 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) { lcd.clear(); lcd.print("Finger Not Found"); lcd.setCursor(0,1); lcd.print("Try Later"); delay(2000); return -1; } // found a match! Serial.print("Found ID #"); Serial.print(finger.fingerID); return finger.fingerID; } 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("Finger 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; } } void download(int eepIndex) { if(EEPROM.read(eepIndex) != 0xff) { Serial.print("T->"); if(EEPROM.read(eepIndex)<10) Serial.print('0'); Serial.print(EEPROM.read(eepIndex++)); Serial.print(':'); if(EEPROM.read(eepIndex)<10) Serial.print('0'); Serial.print(EEPROM.read(eepIndex++)); Serial.print(':'); if(EEPROM.read(eepIndex)<10) Serial.print('0'); Serial.print(EEPROM.read(eepIndex++)); Serial.print(" D->"); if(EEPROM.read(eepIndex)<10) Serial.print('0'); Serial.print(EEPROM.read(eepIndex++)); Serial.print('/'); if(EEPROM.read(eepIndex)<10) Serial.print('0'); Serial.print(EEPROM.read(eepIndex++)); Serial.print('/'); Serial.print(EEPROM.read(eepIndex++)<<8 | EEPROM.read(eepIndex++)); } else { Serial.print("---------------------------"); } Serial.print(" "); } |
Working Explanation:
The working of the Fingerprint Sensor Based Biometric Attendance System. In this project, we have used a DS3231 RTC Module for time & date display. We used 1 LED for power indication, and 1 buzzer for different function indications. We have interfaced 16*2 LCD which displays everything whenever the finger is placed or removed, or registering attendance or downloading data.
We have used 4 push buttons which are used to control the entire system. The functions of each button are:
1. Register/Back Button – Used for enrolling new fingerprints as well as reversing the back process or going back
2. Delete/OK Button – This Button is used for deleting the earlier stored fingerprint system as well as granting access as an OK selection.
3. Forward Button – Used for moving forward while selecting the memory location for storing or deleting fingerprints.
4. Reverse Button – Used for moving backward while selecting memory location for storing or deleting fingerprints.
Enrolling New Fingerprint
To enroll New Fingerprint Click on the Enroll button. Then select the memory location where you want to store your fingerprint using the UP/DOWN button. Then click on OK. Put your finger and remove your finger as the LCD instructs. Put your finger again. So finally your fingerprint gets stored.
Deleting Stored Fingerprint
To delete the fingerprint which is already clicked on DEL Button. Then select the memory location where your fingerprint was stored earlier using the UP/DOWN button. Then click on OK. So finally your fingerprint is deleted.
Downloading Data:
Simply click on Register/Back Button and reset the button together. At this movement, the serial monitor should be opened.
77 Comments
‘RTC_DS3231’ does not name a type
why this error occur…????
Can u help out..????
You might have used incorrect library.
what is the type of log file?
can i download the log as CSV file?
How can i download data as a attendance data sheet?
How to expand the storage for enrolling more than 100 students attendance for one month.
it can store 200 fingerprint.
i downloaded the library file from this link, but ‘RTC_DS3231’ does not name a type
why this error occur…????
Can i use an sd card instead of an eeprom?
You can add additional sd card. EEPROM is used for R305 Finger image storage.
Hellooo
Can any one please provide code for GSM module interface with above project code
I need code for above project with GSM sim900 module for my final year project
Please can anyone help to me
[email protected]
can you provide the code to connect this project to iot plzz…or any webpage
The uploading is error due to high size of programme. How to overcome that?
Can anyone say why the eeprom is incremented by 210?
When I entered the code, the lcd blinks alternatively with the fingerprint scanner and it does not show any characters. I already checked the wirings and the code, still not fixed. Someone help me.
i downloaded the library file from your link, but shows ……‘RTC_DS3231’ does not name a type
Hey,
It shows nothing after “Attendance System” on the LCD and ” sensor found” on serial monitor. Also, I am using Mega 2560 board instead of Uno.
Did you check your software serial pin of Mega. All the pins doesn’t support interrupt. Assign correct software serial pin.
Nothing is displaying on the LCD please help
when i push enroll button and arduino reset button at the same time, it always takes reset, not downloading the data, what can i do now pease help…
hello I got error code like this:
C:\Users\Hieupham\Desktop\sketch_apr08a\sketch_apr12a\sketch_apr12a\sketch_apr12a\sketch_apr12a\sketch_apr13a\sketch_apr13a.ino: In function ‘uint8_t getFingerprintEnroll()’:
C:\Users\Hieupham\Desktop\sketch_apr08a\sketch_apr12a\sketch_apr12a\sketch_apr12a\sketch_apr12a\sketch_apr13a\sketch_apr13a.ino:527:1: warning: return-statement with no value, in function returning ‘uint8_t {aka unsigned char}’ [-fpermissive]
return;
^
Pls Help the code is not okay
I need code for above project with arduino uno software for my semister(4yr) project.
Please can anyone help to me,
[email protected]
if anyone is having prob with RTC_DS3231/1307 then just remove the space between RTC_DS3231/1307 and rtc and then the line will look like this:
RTC_DS1307rtc;
Why does your diagram circuit doesnt same with your real project….and what wire did u use. With head or just wire?
Its the same circuit diagram. The circuit depends upon coding and pin assignment. If you are making this project, go with the same circuit.
hello sir, may i ask u for the coding i want to ask you something. i have download the zip.file for fingerprint and rtc module. how to include that zip file…..help me
Through library manager
can i use other fingerprinit module? also a adafruitfingerprint
Yes R305, R307 or Adafruit Fingerprint Senspr can be used.
Sir,Nothing is displaying in lcd lcd screen.pls help
Check lcd connection with arduino and also recheck with program code. Also use 10k potentiometer at pin 3 of lcd to adjust the contrast.
no data in serial!
Check baud rate. Set it to 9600.
I press the register and reset button at the same time, but cant download the data.
I press the register and reset button at the same time, but cant download the data.
why i cannot downloading the data??
If you are unable to download the data, then try this code. https://drive.google.com/open?id=13JE8boYp-cXQltzA6UmHC7J5ILtOX2d5
Don’t forget to change the pin assignment according to this code and your hardware pin mapping.
already can download but when download data, data of user 5 will shown the time and date although i have not taking attendance of user 5
Modify the code according to num of users.
sir when i change time and date in coding but in LCD not change.
Hey, can you please tell me how many students can i enroll by this fingerprint based attendance system bcz in one website i saw that only 4 persons could be enrolled bcz arduino has only 1024 bytes & i want to enroll at least 60 students so is it possible? Please reply ASAP. Thanks!
200 fingerprints can be stored. Fingerprints data get stored in FIngerprint Sensor EEPROM not in Arduino Memory.
Why does it not download data when I press the register and reset button at the same time? It only resets every time.
Those who are having the problem of downloading fingerprint data. Please try with this code https://drive.google.com/open?id=1YVyGnCoR3KfHjFFrMdyf7a63Z-fED4Wy.
Note: Modify code or the circuit according to pin assignment.
shorturl.at/anvJY
Can I use this fingerprint module.Please check this module and let me know.I need to do this project.Please reply me as soon as possible.
shorturl.at/ltxR2 Can I use this sensor module instead of using R305. Please reply me as soon as you can. Because I need to do this as my project.
You can try
When I try to download the data to the serial monitor, I get the attendance logs, but say if I scanned my finger (User 1) only say 5 times, I should get only those date and times. But alongwith it a fixed value for all the records until 30 which I didn’t use.
What needs to be corrected? Please help.
I am able to download the data to the serial monitor. But alongwith the records where the fingers have actually been scanned, a fixed unrelated value is also being displayed, instead of dashes. What needs to be corrected here? Please help.
Please, when I verify it, it says
“download not declared in this scope”
“I not declared in this scope”
Please how can I come about it
Please is urgent.
Hello sir if on the display said module not found check connection what i need to d0
Check connection of fingerprint sensor.
Check whether you have reversed the tx rx connection.
I given connection correctly but it’s coming finger print module does not found give suggestions for it
I also face this same problem how to fix it plz tell sir
I will also use a second code which you can provide us but in it the lcd error is occur and can’t download data plz tell us
Plz tell sir now what I can do I made all project but when I get data I can’t download it plz tell some solution
Hello sir…once…i did message you for help…now can you help me in completing this circuit…i did buy things that needed for this fingerprint…but some are not exactly same as yours…my old teacher said even the component is diffrent…..the usage of that things still same….but because of differences make me headache to choose wether to follow the diagram or needed to change a little bit…also about the coding…when the items is diffrent…does i need to change a little bit the coding….and the important one….does you have heart to help me completing this project until it done 100%? I have the skills to loop…but in coding i was weak actually….so if you can teach and guide me…i would love that 100%….i hope i can finish back this project that have been let go for long time…..😊
still cant get it
you should add the RTC lib not this one only that mentioned
hi bro!
Arduino is not downloading the data
please help
you get the solution of your problem?
because i have a same problem.
Is it possible to add seperate download button to this system bcs, the arduino is resetting when we click reset button
Me too need help
I need a visual studio code for combating crime in a rural area.crime like sea parite,arm robering
Is there a way to set a name for each ID/finger registered?
Like if someone puts their finger to be scanned, can it say “welcome, student (name)”?
Can I buy this project
can you provide proteus model for this project please?
I’m getting an error in the code
How do i go further
We are getting the error in uploading the code only 85% is getting uploaded
when I try to use the code you provided, I get an error message saying: available memory is low, errors may occur…
what is the solution to this problem
DO you sell already constructed one.
is it possible to appear the recorded data at exel
Hello have you tried using this with TFT LCD Touch Screen?
guys how i can download the source code
I have used a biometric attendance system of my organization, can you please share the list of best attendance system.
I have used i2c module in attendance system and rtc as 1307 how i can get the output?