Objetivos
Material requerido.
|
Arduino UNOTienda España |
---|---|
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.
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.
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.
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.
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:
- 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.
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.
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.
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: