Citar (formato IEEE):
Microlab IoT, «Sensor de huellas dactilares DY50 con Arduino,» microlab.ec. https://microlab.ec/blog/sensor-de-huellas-dactilares-dy50-con-arduino/ (accessed: Feb. 6, 2023).
El sensor óptico de huellas dactilares DY50 hace que agregar detección y verificación de huellas dactilares con Arduino sea muy simple. Estos módulos se utilizan normalmente en cajas fuertes: hay un chip DSP de alta potencia que realiza la representación, el cálculo, la búsqueda de características y la búsqueda de imágenes. Se puede conectar a cualquier microcontrolador o sistema con TTL serial. También puede registrar nuevos dedos directamente: hasta 162 huellas dactilares se pueden almacenar en la memoria FLASH integrada.
Características del sensor DY50
- Supply voltage: 3.6 – 6.0VDC
- Operating current: 120mA max
- Peak current: 150mA max
- Fingerprint imaging time: <1.0 seconds
- Window area: 14mm x 18mm
- Signature file: 256 bytes
- Template file: 512 bytes
- Storage capacity: 162 templates
- Safety ratings (1-5 low to high safety)
- False Acceptance Rate: <0.001% (Security level 3)
- False Reject Rate: <1.0% (Security level 3)
- Interface: TTL Serial
- Baud rate: 9600, 19200, 28800, 38400, 57600 (default is 57600)
- Working temperature rating: -20C to +50C
- Working humidy: 40%-85% RH
- Full Dimensions: 56 x 20 x 21.5mm
- Exposed Dimensions (when placed in box): 21mm x 21mm x 21mm triangular
- Weight: 20 grams
Pines del sensor DY50
Diagrama de conexión
Instalación de la librería
Una de las librerías que se pueden utilizar para trabajar con el sensor DY50 es la de Adafruit. Para instalarla tenemos que abrir el administrador de librerías de Arduino IDE:
Buscar la librería Adafruit Fingerprint Sensor Library e instalarla:
Ejemplo de código del sensor DY50 para Arduino IDE
La librería viene acompañada de una variedad de ejemplos de código, éstos se encuentran en Archivo -> Ejemplos -> Adafruit Fingerprint Sensor Library.
El siguiente ejemplo fue construido a partir de los ejemplos de la librería:
#include <Adafruit_Fingerprint.h>
//CONFIGURACIONES BIOMÉTRICO
SoftwareSerial mySerial(2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
int id_finding;
int id;
int temp;
char resp;
void setup() {
Serial.begin(9600);
while (!Serial); // For Yun/Leo/Micro/Zero/...
//SETUP BIOMÉTRICO
finger.begin(57600);
if (finger.verifyPassword()) {
Serial.println("Sensor biometrico encontrado!");
} else {
Serial.println("No se encontro el sensor biometrico :(");
while (1) { delay(1); }
}
delay(1000);
}
void loop() {
//LOOP PARA BIOMéTRICO
//mensaje = "";
id_finding = getFingerprintIDez();
if(id_finding==0){
Serial.println("Usuario no identificado");
finger.getTemplateCount();
id = finger.templateCount +1;
Serial.print("Desea registrar enn el ID: ");
Serial.println(id);
while(!Serial.available());
if(Serial.readString()=="si"){
Serial.println("Registrando");
getFingerprintEnroll(id);
return;
}
Serial.println("Continua");
}else if(id_finding>0){
Serial.println("Usuario identificado");
Serial.println("ID: "+String(id_finding));
}
//Serial.println(id_finding);
delay(50);
}
//FUNCTION TO REGISTER A FINGERPRINT
uint8_t getFingerprintEnroll(int id_enroll) {
int p = -1;
//Serial.print("Registrando ID: ");
//Serial.println(id_enroll);
Serial.println("Coloque su dedo");
temp=0;
while(temp<5000){
temp++;
//Serial.println(temp);
p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Huella leida");
break;
default:
//Serial.println("Unknown error 1");
break;
}
if (p == FINGERPRINT_OK) {
break;//termina el while
}
}
if (temp>=5000){
Serial.println("Termino el tiempo");
return 0;
}
// OK success!
p = finger.image2Tz(1);
switch (p) {
case FINGERPRINT_OK:
Serial.println("Imagen convertida");
break;
default:
Serial.println("Error conviertiendo imagen");
return p;
}
Serial.println("Retire el dedo");
delay(2000);
Serial.println("Coloque el dedo nuevamente");
temp = 0;
while (temp<5000) {
temp++;
//Serial.println(temp);
p = finger.getImage();
if(p == FINGERPRINT_OK){
Serial.println("Huella leida");
break;
}
}
if (temp==5000){
Serial.println("Termino el tiempo");
return 0;
}
// OK success!
p = finger.image2Tz(2);
switch (p) {
case FINGERPRINT_OK:
Serial.println("Imagen convertida");
break;
default:
Serial.println("Error convirtiendo imagen");
return p;
}
// OK converted!
Serial.print("Creando modelo para el ID: ");
Serial.println(id_enroll);
p = finger.createModel();
if (p == FINGERPRINT_OK) {
Serial.println("Modelo correcto!");
} else {
Serial.println("Error creando modelo");
return p;
}
p = finger.storeModel(id_enroll);
if (p == FINGERPRINT_OK) {
Serial.println("Guardado!");
} else {
Serial.println("Error guardando");
return p;
}
return 1;
}
//FUNCIONES PARA EL BIOMÉTRICO
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) return 0;
return finger.fingerID;
}
Revisa todos los ejemplos de sensores con Arduino ->
Si necesitas asesoría en proyectos de Arduino, Raspberry, electrónica, estamos localizados en la ciudad de Quito Ecuador. Somos Microlab.
me gustaría cotizar el sensor
Mil disculpas no vendo los sensores. Pero puedes comprarlos por Amazon u otras tiendas.
Buenas noches necesito un sensor de huella el precio por favor necesito un número para poder llamar o que me.den asesoramiento gracias
Hola. No contamos contamos con el servicio de venta de productos por el momento.