bclose

Sensor de huellas dactilares

Leer, guardar y comparar huellas dactilares
tienda online prometec

Objetivos

 

 

    • Presentar el sensor de huellas dactilares.
    • Aprender a conectarlo y programarlo.
 

Material requerido.

Imagen de Arduino UNOArduino UNO o equivalente
Vista principalUn lector de huellas dactilares

 

LOS LECTORES DE HUELLAS DACTILARES

 

Los sensores de huellas dactilares son unos dispositivos capaces de leer, guardar e identificar posteriormente las huellas de nuestros dedos. Las huellas de cada uno de nuestros dedos son diferentes entre sí, y diferentes de cualquier otra persona, incluso en el caso de los gemelos idénticos.

 
  • Todos hemos visto muchas veces en películas o series como los policías acaban pillando al malvado de turno (que casi siempre se lo merece) por haber dejado la impresión de alguno de sus dedos en el lugar del crimen.
 
huellas dactilares

En los últimos tiempos estos sensores se han hecho muy populares gracias a los smartphones. Primero fue Apple (corregidnos si nos equivocamos) quien popularizó su utilización, y ahora ya son muchos los fabricantes que implementan este tipo de lectores en sus teléfonos. Y es que, en una época en la que tenemos que memorizar decenas de contraseñas para el móvil, las tarjetas, el ordenador y demás; parece bastante sensato sustituirlas por algún tipo de sensor biométrico.

 
  • Dentro de los sensores biométricos podemos encontrar diferentes técnicas: de huellas dactilares, de iris de los ojos, de ADN, de rasgos faciales, de escritura, etc…
 

Además estas técnicas  tienen la virtud de que no se pueden falsificar, o al menos parece difícil conseguirlo. Aunque seguro que a alguno se le pasa por la cabeza el prota de turno de alguna peli “pidiendo prestada” alguna parte del cuerpo de alguien para abrir una puerta o algo por el estilo…

 

LECTOR DE HUELLAS PARA ARDUINO

 

La comunidad de Arduino no ha tardado en aprovechar esta técnica de identificación y por eso tenemos a nuestra disposición un módulo que tiene todo lo necesario para poder trabajar con ello.  Este módulo de reconocimiento de huellas dactilares almacena las huellas en su memoria interna para compararlas y reconocerlas posteriormente.

Vista principal

El módulo se comunica con nuestro Arduino a través de un puerto serie, y le basta con menos de un segundo para escanear una huella. Para utilizarlo, basta con escanear la huella en cuestión y almacenarla en la memoria del lector (hasta 162 en su FLASH interna). Después el podremos comprobar cualquier lectura nueva contra las huellas ya almacenadas.

 

CONEXIÓN Y PROGRAMACIÓN

 

El módulo es muy sencillo de conectar, dos cables para alimentación y dos para la comunicación serie. En uno de los extremos tienen un conector que nos facilita la conexión con el módulo lector, y que sólo encaja en una posición, así que no tiene perdida.  Un pequeño inconveniente es que en el otro extremo no tienen ningún tipo de conector, así que os recomendamos que les soldéis unos pines, ya que sino no hacen bien contacto en los pines de Arduino ni en la protoboard.

sensor de huellas dactilares para arduino

Normalmente hay dos modelos, con 4 y 6 cables, aunque funcionan de la misma forma. En caso de que sea de 4, los cables rojo y negro se conectan a 5V y GND respectivamente para alimentar el módulo, y los otros dos son los encargados de la transmisión serie. El problema es que estos dos cables pueden tener varios colores y, por lo que hemos visto, también diferentes disposiciones.

Teniendo en cuenta que vamos a usar la librería Software Serial para no ocupar el puerto serie del UNO y dejarlo libre para la programación,  esta sería la conexión con los colores más frecuentes.

montaje lector de huellas ararduino

También puede ser que el modelo tenga 6 cables, todos de color rojo. Esos dos cables extra nos dan otras funcionalidades que ya intentaremos explorar. Pero la manera de conectarlo, igual que hemos descrito arriba es la siguiente:

fingerprint
 
  • Si vuestros cables son de otro color, no os preocupéis, poned los dos de la transmisión serie aleatoriamente y más adelante veremos cómo saber si están bien o no.
  • Si utilizáis otro Arduino diferente del UNO, comprobad qué pines puede usar la librería Software Serial.
  • Si usáis un Arduino con varios puertos serie (como el MEGA) podéis usar cualquiera de ellos, dejando el puerto 0 libre para programarlo.
 

La programación no tiene ningún misterio gracias a la librería que pone a nuestra disposición Adafruit https://github.com/adafruit/Adafruit-Fingerprint-Sensor-Library, que hay que descargar e instalar como hemos hecho en otras ocasiones.

Una vez descargado abrimos el ejemplo “enroll” de la librería y lo cargamos en el Arduino. Este ejemplo sirve para escanear y guardar las queramos reconocer más adelante. Depende del Arduinio que estéis utilizando puede ser que tengáis que cambiar los pines para la librería Software Serial en esta línea:

SoftwareSerial mySerial(2, 3);

Una vez cargado, abrimos el monitor serie y seleccionamos como velocidad de transmisión 9600 baudios. Si no os encuentra el sensor os dará un mensaje como este. En ese caso lo más seguro es que tengáis los cables de la transmisión serie al revés.

error detección lector de huellas

Si lo hemos conectado correctamente nos dirá que ha encontrado el sensor y nos pedirá un número de ID para guardar la huella que queramos. Sólo hay que darle un número, por ejemplo el 0 y guardará la huella con esa ID. Podéis guardar hasta 162.

guardar huellas ID

Cuando hayamos guardo las huellas que queramos, abrimos y cargamos otro de los programas de ejemplo de la librería, “fingerprint”. Este programa se encarga de escanear las huellas que pongamos en el sensor y compararlas con las que hemos guardado. Si hay alguna coincidencia nos informará por el puerto serie y nos dirá que número de ID le corresponde, además de otorgarles un nivel de confianza. SI no la hay, no mostrará nada.

 
  • No estamos muy seguros del valor de confianza máximo. Por nuestra parte el mayor que hemos visto ha sido de 323.
 
Comparación de huellas

Y para terminar os dejamos un pequeño vídeo con el resultado de la sesión:

 

Resumen de la sesión

 

En esta sesión hemos aprendido varias cosas importantes:

 
    • Cómo funciona el módulo de reconocimiento de huellas dactilares.
    • Cómo conectarlo y programarlo gracias a los ejemplos de la librería.
 
 
 

(26) Comments

    • LUPITA14

    se conecta de la misma manera si es una raspberry pi 3 & SE USA LA MISMA LIBRERIA ¿?

    • Hola Lupita, no he lo he probado con la Raspberry, pero desde luego la conexión será diferente y tanto la librería como el programa también.

    • Kevin Castro

    Una pregunta, ¿Como podría mostrar un mensaje en el monitor serie al poner el dedo sobre el sensor y que la imagen que tome no coincida con alguna huella registrada? Es decir, que me diga algo como “no se encontraron coincidencias”

    • Hola Kevin, la verdad es que no lo he probado pero ya sois bastantes los que lo preguntáis. Quizás podríamos puentear el cable de transmisión y así saber cuando transmite para saber si se ha puesto el dedo.

  • Hola por que no me guarda las huellas me pide el ID pero luego dise que hubo un error tomando la imagen de la huella

    • Hola Daniel, la verdad es que ni idea, nunca me ha dado error… A ver si alguien puede echarte una mano.

    • Diego

    hola necesito tu ayuda.
    Primero, como podría conectar arduino uno + esp8266 + lector de huella, el lector será controlado por el arduino uno pero este recibirá comandos del esp8266 que a su vez está conectada a una aplicacion movil.
    Segundo, es recomendable subir a 115200 la tasa de baudios en la comunicacion serial?

    • Hablo de memoria, pero en principio no deberia haber dificultad en controlar el sensor de huellas desde el esp2866, pero si no fuera asi, bastaria con conectar arduino uno y el esp8266, por una puerta serie puedes dedicar la puerta serie del arduino uno al lector y montar una segunda puerta serie con #include que te cre mas puertas serie en los pines que te vengan bien

    • Hola Diego, no lo he probado pero deberías poder usar un puerto serie para leer el sensor de huellas y otro para comunicar el esp.

  • Hola prometec, excelente tutorial, lastimosamente no dimensione bien mi proyecto y creo que con el numero de usuarios que puedo alojar en el lector no se adapta a mi requerimiento porque necesito mis usuarios en una base de datos remota y luego comparar, la cosa esta en que … tienes algún otro tutorial en el que se exporten estos datos, o conoces una plataforma en la cual tengas tutorial o pueda investigar para poder exportar e importar los datos?
    La verdad llevo rato leyendo los ejemplos y tratando de entender la librería del dispositivo pero ninguna de sus funciones o comandos me permiten recorrer la base de datos para administrarla desde arduino.

    Muchas gracias por tu atención.

    • Hola Juan, no lo he probado porque no he tenido ese problema, pero sois ya varios los que me lo comentáis. A ver si podemos probarlo y deciros algo. Un slaudo.

      • Gustavo V.

      Hola Juan, has encontrado una solucion a tu proyecto? Estoy en algo parecido, pero mi base de datos remota es de una aplicacion web que aun no esta terminada. He buscado hace dias la manera de utilizar una memoria externa y poder comparar las huellas por fuera. Pero nada.

      Saludos,
      Gustavo.

    • Edgar Venegas

    hola, mi sensor es detectado, pero el problema que me se me presento es que no esta guardando las huellas, en su lugar en el monitor serial me aparece “unknown error”, y me vuelve a pedir numero de ID, pero nunca guarda las huellas, espero me puedan ayudar

    • Hola Edgar, nunca he tenido ese error, y la verdad es que no da nada de información, así que no sé muy bien qué puede ser. Vigila bien las conexiones por si acaso.

    • Andres felipe escobar

    hola amigos de prometec, muy buen tutorial, pero quisiera saber como hago para poder activar un relé despues de colocar mi huella, se activa alguna salida del arduino o debo agragar un codigo o algo? muchas gracias

    • Ulises

    Yo necesito poder agrandar la capacidad a unas 500 personas.
    Se puede pasar a una base de datos externa al detector? Es decir a una sql o similar en una pc

    • Hola Ulises, me parece difícil, pero no tengo ni idea la verdad.

    • Camilo herrera

    hola me gusto el aporte pero tengo una dudo mejor varias
    la primera es si es posible hacer con mi arduino pero ejemplo oprimir el botón y al mismo tiempo poner la huella para que habrá la puerta?
    la segunda es como guardar una huella y eliminarla desde una pantalla táctil con el arduino y el lector de huella óptico?

    • Hola Camilo, poner el botón no tendía mucho misterio me parece. Con in un if más antes de abrir la puerta deberías solucionarlo.
      La parte de la pantalla la verdad es que no tengo ni idea, a ver si me pongo con él y para ver qué posibilidades hay de hacer cosas como esa. Un saludo.

  • Hola chicos. Estoy utilizando este dispositivo para un control del presencia en mi centro de trabajo.
    Todo funciona correctamente, pero…¿que sucede si se avería el sensor?, ¿puedo extraer del sensor la base de datos de huellas para grabarla en otro sensor? Somos 100 personas y no quiero molestar de nuevo a todo el mundo volviendo a registrar las huellas.
    He probado exportando la base de datos con Synodemo, a un fichero “mb”, que tiene 40 KB, pero cuando lo recupero a otro sensor no me reconoce las huellas.
    Gracias,

    • Hola Manuel, pues no se me ocurre cómo hacerlo de forma sencilla. Si descubrimos algo te aviso. Un saludo.

  • Hola necesito ayuda, cuando ingreso un numero de huella este se almacena en el ID 0 sin importar cual ponga, y despues no me funciona nada mas

    • Hola Marco, la verdad es que no hemos tenido ninguna vez ese problema, así que no sé muy bien qué decirte. Recuerda que el monitor serie tiene que estar a la misma velocidad que lo configures en el programa y revisa bien las conexiones. Un saludo.

  • Hola prometec, buen tutorial, me gustaría que hicieran en tutorial para los otros diferentes tipos de sensores, hay algunos que son parecidos pero no se conectan o no funcionan igual. Seria bueno ya que no todos contamos con el mismo modelo.

    me puede ayudar con esta duda?
    lo que pasa es que deseo hacer un programa en Visual Studio, donde al poner mi huella en el sensor, me abra una ventana de visual studio y me muestre todos los datos que yo desee, por visual studio no hay problema, lo que tengo duda es que pasa o como puedo enviar los datos a visual studio, me comentaron que no puedo hacerlo por el puerto serial y la verdad es que es un modulo muy nuevo y no tengo mucho conocimiento, me gustaría saber si puedo recibir un asesoramiento o ayuda de Prometec.

    Muchas gracias Prometec, sigue creciendo!!

    • Hola Misael, no sé qué tipo de sensor estas usando pero este como ves envía los datos por un puerto serie, que leemos fácilmente en el monitor serie del IDE de Arduino. La verdad es que no he usado apenas el Visual Studio, así que no sé muy bien qué decirte. A ver si hay alguien que pueda ayudarte. Un saludo.

Give a Reply

WordPress Anti-Spam by WP-SpamShield