INFORMACIÓN
R503 Sensor Dactilar es un dispositivo que permite leer y guardar hasta 200 huellas dactilares a través de un panel touch, también contiene un indicador configurable de luz LED. Este sensor es pequeño y de fácil uso, tiene un amplio rango de detección, una tuerca para que puedas instalarlo fácilmente y tiene 6 pines, 2 para alimentación, 1 para la señal de detección de dedo, otro para la alimentación del touch y 2 para comunicación por protocolo serial (Tx, Rx) para que puedas utilizarlo con tarjetas de desarrollo Arduino, ESP 32, PIC y otros microcontroladores.
R503 Sensor Dactilar puede ser utilizado en aplicaciones de seguridad, control de acceso y asistencia, puedes usar los colores del LED para indicar errores en el censado, huellas encontradas en los registros, huellas no registradas, entre otras cosas.
ESPECIFICACIONES Y CARACTERÍSTICAS
- Modelo: R503
- Voltaje:
- Entrada: 3.3 V
- Touch: 3-5 V
- Típico en modo de espera: 3.3V
- Corriente
- Funcionamiento: 20 mA
- Modo de espera (standby):
- Promedio: 2 uA
- A prueba de agua
- Contiene tuerca para instalación
- Resolución de imagen: 508 dpi
- Número de pines: 6
- Conector: SH1.0mm de 6 pines
- Longitud de cable: 24 cm
- Protocolos de comunicación: UART (Nivel lógico TTL 3.3V)
- Índice de baudios: (9600 × N) bps; N=1 ~ 12 (N = 6 predeterminado, es decir, 57600 bps)
- Tiempo de adquisición de imagen: <0.2s
- Matiz de censado: 192 x 192 píxeles
- Área de detección: 15 mm de diámetro
- Peso: 33 g
- Dimensiones:
- Diámetro de la parte superior: 27.8 mm
- Diámetro de la base: 25 mm
- Altura: 19 mm
DOCUMENTACIÓN Y RECURSOS
INFORMACIÓN ADICIONAL
¿Cómo funciona el R503 Sensor Dactilar?
- Registro de huellas
- Lector de huellas
Cuando se hace el registro, el usuario debe de colocar su dedo 2 veces para que el módulo pueda procesar ambas imágenes y generar una plantilla para guardarla. En el modo lector el sistema generará otra plantilla y hará una comparación con las que ya están guardadas. El modulo trabaja con protocolo serial semidúplex, por lo que a través de un monitor serial puedes enviar comandos para cambiar el color del indicador LED, borrar huellas guardadas, elegir el registro donde guardar, entre otras.
Prueba del R503 Sensor Dactilar
Para poder probar el módulo se necesita instalar en el IDE Arduino la librería Adafruit_Fingerprint,
Realizaremos las siguientes conexiones en nuestra tarjeta de desarrollo Arduino Uno:
Cables:
- Rojo: 3.3V
- Negro: GND
- Amarillo: Pin 2
- Café: Pin 3
- Azul: N/C
- Blanco: 3.3V
Posteriormente usaremos el siguiente código en nuestro IDE para programar nuestro Arduino, esté código registra y guarda las huellas detectadas por el sensor:
#include <Adafruit_Fingerprint.h> #if (defined(__AVR__) || defined(ESP8266)) && !defined(__AVR_ATmega2560__) // Para Arduino Uno u otros dispositivos sin hardware serial, debemos usar software serial... // pin #2 es entrada del sensor (Cable amarillo) // pin #3 es salida arduino (Cable Café) SoftwareSerial mySerial(2, 3); //Configuración del puerto serial para software serial #else // Para Leonardo/M0/etc, otros con hardware serial, usar hardware serial! // #0 es el cable amarillo, #1 es café #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("\n\nAdafruit Fingerprint Registro de Huellas"); // Configuración de la transmisión de datos para el puerto serial finger.begin(57600); // Comprobar conexión con el sensor if (finger.verifyPassword()) { Serial.println(" Sensor encontrado!"); } else { Serial.println("No se encontró sensor de huellas :("); while (1) { delay(1); } } // Lectura de parámetros del sensor 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() //Repetir una y otra vez { // Elección de dirección del registro de la huella Serial.println("Listo para registrar huella!"); Serial.println("Por favor escribe el ID # (del 1 al 127) en el que quieres registrar tu huella..."); id = readnumber(); if (id == 0) {// ID #0 no permitido, intenta otra vez! return; } Serial.print("Registrando ID #"); Serial.println(id); while (! getFingerprintEnroll() ); } // Registro de la huella 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 Exito! 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 convertida! 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; }
Recuerda que para poder visualizar el funcionamiento del código debes abrir el monitor serial:
Si requieres más ejemplos de uso, por ejemplo para detectar si las huellas ya están guardadas, configuración del indicador LED o borrar registros de huellas, puedes acceder a los ejemplos que tiene la librería desde aquí o desde el IDE de Arduino:
También como sugerencia de uso puedes utilizar: K202 Controlador Dactilar
Valoraciones
No hay valoraciones aún.