bclose

Ejemplo práctico con lector de huellas

Activando salidas mediante el lector de huellas dactilares

Objetivos

 

 

    • Jugar con el sensor de huellas dactilares.
    • Modificar el programa ejemplo.
    • Crear un programa base que sirva para accionar un rele al reconocer una huella.
 

 

Material requerido.

 

  Tienda España Tienda Mexico
Vista principal de un arduino uno Arduino UNO Arduino UNO
Vista principal lector de huellas dactilares

 

Lector de huellas y caso practico

 

Estamos tan acostumbrado a que el teléfono se abra simplemente plantando el dedo en el lector de huellas que no nos damos cuenta de la maravilla tecnológica que esto supone.

Cuando lo comentas, a todo el mundo le sorprende que los lectores de huellas dactilares funcionen y encima de forma poco menos que instantánea con una fiabilidad muy, pero que muy alta.

Por eso no es raro que nos hagáis consultas del tipo… ¿Podría usar ese reconocedor de huellas que tenéis en la tienda con mi Arduino para abrir XXXX?

La respuesta es invariablemente sí y de hecho tenemos un par de tutos en la web describiendo cómo usarlos pero parece que seguimos recibiendo consultas de si se podrían usar para abrir una puerta o un cajón con llave o en algún caso… para abrir el coche sin llave.

Parece que el personal menos experto se pierde mucho al revisar los ejemplos oficiales de Adafruit y  como andaba haciendo una cosita de estas por aquí para un amigo se me ha ocurrido documentarlo por si os sirve a alguno más y para que podáis usarlo como base para vuestros propios proyectos.

En principio voy a usar el lector de huellas y un led más un módulo de 2 relés de modo que se pueda abrir algo activado por los relés (Puede ser la puerta del coche o un cerrojo eléctrico) y usaremos el de dos porque puede servir para que se abra una caja u otra, dependiendo de quién pone la huella.

 

Diagrama de conexión.

 

Vamos a empezar con un único led que se ilumine durante un breve intervalo, cuando el lector reconoce una huella digital. La conexión va a ser bastante sencilla:

esquema de conexion

La conexión es muy sencilla y el único cuidado es conectar bien los cables TX y RX del sensor de huella dactilar.

Tenéis que aseguraros de que habéis instalado la librería y los ejemplos del lector de huellas y para eso, recordad que ya tenemos una sesión que os describe como descargar e instalar la librería de Adafruit para el sensor de huellas dactilares.

Ahí verás que tienes que instalar la librería y luego correr un par de programas de los ejemplos que vienen. El primero Enroll, simplemente graba las huellas que queremos que acepte, y un segundo programa fingerprint, que es quien reconoce las huellas archivadas.

Para conseguir que el LED se ilumine al validar na huella necesitamos modificar un poco el programa original de ejemplo de la librería, y parece que es aquí donde tenéis las dificultades

 

Modificando el programa original de la librería.

 

Cargad el programa de ejemplo fingerprint de la librería de ejemplo del lector y vamos a modificarlo un poco.

El programa original es básicamente un control de errores que son el 90% del código y unos mensajes que envía a la consola cuando reconoce una huella.

Si buscas hacia final del programa, tras los controles de errores, y cuando valida la huella encontrarás unas líneas como estas

// found a match!

Serial.print("Found ID #"); Serial.print(finger.fingerID);
Serial.print(" with confidence of "); Serial.println(finger.confidence);

return finger.fingerID;

Es aquí donde vamos a hacer un par de cambios. Crearemos un par de variables globales que vamos a llamar ID1 y C1 para almacenar el ID de la huella y la confianza que le merece el reconocimiento, y cambiaremos esas líneas de arriba  por estas otras:

// found a match!

ID1 = finger.fingerID;
C1 =  finger.confidence ;

Serial.print("Found ID #"); Serial.print(ID1);
Serial.print(" with confidence of "); Serial.println(C1);

return ID1;

El problema para más de uno que nos habéis preguntado por este tema, es que hay dos ocurrencias de esas líneas y tenéis que hacer el cambio por dos veces o no va a funcionar ¿Vale?

Y no os olvidéis de añadir la declaración de las  variables globales al principio del programa

int ID1 ;
int C1  ;

Añadimos en el setup la declaración del pin 6 para el led:

pinMode(6, OUTPUT);

Y ya solo nos queda tocar en el loop() lo que queremos que haga nuestro programa cuando se reconozca la huella, pero antes un comentario importante:

El lector de huellas nos devuelve la huella que ha reconocido y un valor que indica el grado de confianza que le merece el reconocimiento. Tened en cuenta que el lector comprueba la huella leída contra las huellas almacenadas y en muchas ocasiones no encuentra la huella completa sino solo partes de ella que es lo que ha reconocido.

Por eso devuelve un valor entre 0 y 255 indicando que porcentaje de la huella ha reconocido. En nuestro programa vamos a fijar un mínimo de confianza del 100 para asegurarnos pero podéis modificar este valor a voluntad si encuentras difícil el reconocimiento

Así pues, tenemos:

void loop()
{ getFingerprintIDez();
  delay(50);            //don't ned to run this at full speed.

  if ( ID1 >= 0 && C1 >100)
     { digitalWrite(6, HIGH);    // Enciende
       delay(1000) ;
       digitalWrite(6, LOW);     // Apaga

       ID1 = -1;
     }
 }

Fíjate que lo único que hace el delay es el tiempo que queremos para activar la señal del LED antes de se apague.

 
  • Si os apetece hacer un ejercicio puedes modificar de nuevo el programa para que encienda la luz verde cuando reconoce la huella y encienda una luz roja cuando no lo la reconozca.
 

Puedes descargar el programa completo aquí:

Contenido solo disponible para suscriptores. ¡Accede al contenido!

 

Usando un relé de salida.

 

Encender una luz de salida siempre es simpático, pero suele ser más útil marcar la validación además de con el led, con una relé que pueda activar cualquier dispositivo de salida, como un motorcito, o encienda una luz ambiente, o active una cerradura electrónica, e incluso podríamos activar un cerrojo eléctrico para abrir un contenedor.

Si buscáis por ahí, encontrareis modelos de diferentes tipos y precios

Cerrojo activado por electricidad  

Para activar uno de estos cerrojos eléctricos,  nos sirve el mismo programa pero tenemos que conectar el módulo de relé. Vamos a usar uno de dos relés para el ejemplo:

esma de conexiones

Contenido solo disponible para suscriptores. ¡Accede al contenido!

Este programa podría abrir por huella dactilar las taquillas un buen número de personas en el gimnasio de una forma elegante y barata. Con una Mega podemos gestionar unas 60 taquillas. No está nada mal,¿ No os parece?

 

tamaño grande

 

 

Tienda y Tutoriales Arduino