
Reference: RBD-0152
Banner
R503 Fingerprint Sensor is a device that allows you to read and save up to 200 fingerprints through a touch panel, it also contains a configurable LED light indicator. This sensor is small and easy to use, it has a wide detection range, a nut so you can install it easily and it has 6 pins, 2 for power, 1 for the finger detection signal, another for the touch power and 2 for communication via serial protocol (Tx, Rx) so you can use it with Arduino, ESP 32, PIC and other microcontroller development boards.
R503 Fingerprint Sensor can be used in security, access control and attendance applications, you can use the LED colors to indicate errors in the census, fingerprints found in the records, fingerprints not registered, among other things.
(edit with the Customer Reassurance module)
(edit with the Customer Reassurance module)
(edit with the Customer Reassurance module)
R503 Fingerprint Sensor is a device that allows you to read and save up to 200 fingerprints through a touch panel, it also contains a configurable LED light indicator. This sensor is small and easy to use, it has a wide detection range, a nut so you can install it easily and it has 6 pins, 2 for power, 1 for the finger detection signal, another for the touch power and 2 for communication via serial protocol (Tx, Rx) so you can use it with Arduino, ESP 32, PIC and other microcontroller development boards.
R503 Fingerprint Sensor can be used in security, access control and attendance applications, you can use the LED colors to indicate errors in the census, fingerprints found in the records, fingerprints not registered, among other things.
When registering, the user must place their finger twice so that the module can process both images and generate a template to save it. In reader mode the system will generate another template and make a comparison with those already saved. The module works with a half-duplex serial protocol, so through a serial monitor you can send commands to change the color of the LED indicator, delete saved fingerprints, choose the record where to save, among others.
In order to test the module, you need to install the library in the Arduino IDE Adafruit_Fingerprint,
We will make the following connections on our Arduino Uno development board:
Cables:
Later we will use the following code in our IDE to program our Arduino, this code records and saves the fingerprints detected by the sensor:
#include <Adafruit_Fingerprint.h> #if (defined(__AVR__) || defined(ESP8266)) && !defined(__AVR_ATmega2560__) // For Arduino Uno or other devices without serial hardware, we must use serial software... // pin #2 is sensor input (Yellow Wire) // pin #3 is arduino output (Brown Wire) SoftwareSerial mySerial(2, 3); //Serial port configuration for serial software #else // For Leonardo/M0/etc, others with serial hardware, use serial hardware! // #0 is the yellow wire, #1 is brown #define mySerial Serial1 #endif Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial); uint8_t id; void setup() { Serial.begin(9600); while (!Serial); // Para Yun/Leo/Micro/Zero/... delay(100); Serial.println("nnAdafruit Fingerprint Registro de Huellas"); // Configuring data transmission for the serial port finger.begin(57600); // Check connection with the sensor if (finger.verifyPassword()) { Serial.println(" Sensor encontrado!"); } else { Serial.println("No se encontró sensor de huellas :("); while (1) { delay(1); } } // Reading sensor parameters Serial.println(F("Leyendo parámetros del sensor")); finger.getParameters(); Serial.print(F("Estatus: 0x")); Serial.println(finger.status_reg, HEX); Serial.print(F("Sys ID: 0x")); Serial.println(finger.system_id, HEX); Serial.print(F("Capacidad: ")); Serial.println(finger.capacity); Serial.print(F("Nivel de Seguridad: ")); Serial.println(finger.security_level); Serial.print(F("Dirección del Dispositivo: ")); Serial.println(finger.device_addr, HEX); Serial.print(F("Longitud del paquete: ")); Serial.println(finger.packet_len); Serial.print(F("Rango de Baudios: ")); 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() //Repeat over and over again { // Fingerprint registration address choice Serial.println("Ready to register fingerprint!"< a i=4>); Serial.println("Please write the ID # (of the 1 to 127) in which you want to register your fingerprint..."); id = readnumber(); if (id == 0) {// ID #0 not allowed, try again! return; } Serial.print("Registrando ID #"); Serial.println(id); while (! getFingerprintEnroll() ); } // Fingerprint registration uint8_t getFingerprintEnroll() { int p = -1; Serial.print("Esperando una huella valida para registrar en #"); Serial.println(id); while (p != FINGERPRINT_OK) { p = finger.getImage(); switch (p) { case FINGERPRINT_OK: Serial.println("Imagen obtenida"); break; case FINGERPRINT_NOFINGER: Serial.println("."); break; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Error de comunicación"); break; case FINGERPRINT_IMAGEFAIL: Serial.println("Error de Imagen"); break; default: Serial.println("Error desconocido"); break; } } // OK Success! p = finger.image2Tz(1); switch (p) { case FINGERPRINT_OK: Serial.println("Imagen Convertida"); break; case FINGERPRINT_IMAGEMESS: Serial.println("Imagen muy confusa"); return p; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Error de comunicación"); return p; case FINGERPRINT_FEATUREFAIL: Serial.println("No se pueden encontrar las caracteristicas de la huella"); return p; case FINGERPRINT_INVALIDIMAGE: Serial.println("No se pueden encontrar las caracteristicas de la huella"); return p; default: Serial.println("Error desconocido"); return p; } // Get second fingerprint image Serial.println("Retira el dedo"); delay(2000); p = 0; while (p != FINGERPRINT_NOFINGER) { p = finger.getImage(); } Serial.print("ID "); Serial.println(id); p = -1; Serial.println("Coloca el mismo dedo otra vez"); while (p != FINGERPRINT_OK) { p = finger.getImage(); switch (p) { case FINGERPRINT_OK: Serial.println("Imagen obtenida"); break; case FINGERPRINT_NOFINGER: Serial.print("."); break; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Error de comunicación"); break; case FINGERPRINT_IMAGEFAIL: Serial.println("Error de imagen"); break; default: Serial.println("Error desconocido"); break; } } // OK Success! p = finger.image2Tz(2); switch (p) { case FINGERPRINT_OK: Serial.println("Imagen convertida"); break; case FINGERPRINT_IMAGEMESS: Serial.println("Imagen muy confusa"); return p; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Error de comunicación"); return p; case FINGERPRINT_FEATUREFAIL: Serial.println("No se pueden encontrar las características de la huella"); return p; case FINGERPRINT_INVALIDIMAGE: Serial.println("No se pueden encontrar las características de la huella"); return p; default: Serial.println("Error desconocido"); return p; } // OK converted! Serial.print("Creando el modelo para #"); Serial.println(id); p = finger.createModel(); if (p == FINGERPRINT_OK) { Serial.println("Han coincidido las huellas!"); } else if (p == FINGERPRINT_PACKETRECIEVEERR) { Serial.println("Error de comunicación"); return p; } else if (p == FINGERPRINT_ENROLLMISMATCH) { Serial.println("Las huellas no coinciden"); return p; } else { Serial.println("Error desconocido"); return p; } Serial.print("ID "); Serial.println(id); p = finger.storeModel(id); if (p == FINGERPRINT_OK) { Serial.println("Guardado!"); } else if (p == FINGERPRINT_PACKETRECIEVEERR) { Serial.println("Error de comunicación"); return p; } else if (p == FINGERPRINT_BADLOCATION) { Serial.println("No se puede guardar en esa ubicación"); return p; } else if (p == FINGERPRINT_FLASHERR) { Serial.println("Error de escritura en la memoria flash"); return p; } else { Serial.println("Error desconocido"); return p; } return true; }
Remember that in order to view the operation of the code you must open the serial monitor:
If you require more examples of use, for example to detect if the fingerprints are already saved, configure the LED indicator or delete fingerprint records, you can access the examples that the library has from here or from the Arduino IDE:
Specific References
Your review appreciation cannot be sent
Report comment
Report sent
Your report cannot be sent
Write your review
Review sent
Your review cannot be sent
Reference: RBD-0152
Reference: RBD-1858
Reference: RBD-0671
Reference: RBD-2351
Reference: RBD-1178
Reference: RBD-0523
Reference: RBD-2088
Reference: RBD-1227
Reference: RBD-0355
Reference: RBD-0665
Reference: RBD-0664
Reference: RBD-2236
Reference: RBD-1934
Reference: RBD-1946
Reference: RBD-0163
Reference: RBD-2094
R503 Fingerprint Sensor is a device that allows you to read and save up to 200 fingerprints through a touch panel, it also contains a configurable LED light indicator. This sensor is small and easy to use, it has a wide detection range, a nut so you can install it easily and it has 6 pins, 2 for power, 1 for the finger detection signal, another for the touch power and 2 for communication via serial protocol (Tx, Rx) so you can use it with Arduino, ESP 32, PIC and other microcontroller development boards.
R503 Fingerprint Sensor can be used in security, access control and attendance applications, you can use the LED colors to indicate errors in the census, fingerprints found in the records, fingerprints not registered, among other things.
check_circle
check_circle