LECTOR DE HUELLA CON BASE DE DATOS TXT

Buenas gente soy nuevo en este foro, mi nivel con arduino no es muy grande por eso quiero pedir algo de ayuda, no pido que hagáis mi trabajo solo que me guiéis para lograrlo.
este es el sensor

Mi proyecto consta de un sensor biometrico (lector de huella), con el que debo hacer una especie de registro de usuarios y que quede guardado en una base de datos el usuario que utilice el lector, de ahí que cada huella tiene que tener el nombre de su dueño jejeje, este lector de huella activaría una pestillo electronico. Mi intencion es la de que cada usuario registre su huella y le ponga su nombre, entonces eso quedaria registrado en un txt para que cuando vallas a abrir la puerta te registre la hora y el usuario que la acciono y se guardase en una SD. Necesito un gran empujon :confused: :confused:
pero espero que pueda encontrar algo de ayuda, yo solo necesitaría saber como ponerle nombre a la huella lo demas creo que puedo hacerlo yo solo pero hasta que no consiga eso no avanzo y llevo dos semanas buscando informacion y no he encontrado nada util :cry: :sob: , toda ayuda sera bien recivida. Un saludo y gracias por leer.

1 Like

No vas a encontrar (o si) un programa para un detector de huella. No busques eso.
Busca una base de datos que almacene datos en ARduino. Luego modificas los campos almacenados en la SD para que guarden lo que tue quieres.
Pero ese es tu objetivo. Base de datos para arduino o Arduino Data base.
Tenemos un post que no hemos arrancado donde alguien estaba con este tema para un lector de tarjetas RFID.
Hizo todo, comparó datos, y le faltaba poco para terminarlo. Buscalo.

Bueno, espero que se ajuste a lo que buscan.
Este artículo está perfectamente explicado (en inglés por supuesto) pero reune las necesidades de lo que muchos buscan. Un completo sistema de detector de huella con inserción de Ids, busqueda, borrado, etc.
Interfacing Fingerprint Reader Integrated SM630 with Arduino Uno

Pues vas a dejar a unos cuantos con los dientes largos, surbyte :grin:
Revisa el link que has puesto, que no funciona :wink:

Dientes largos :money_mouth_face: :money_mouth_face: :smiley-money

Corregido, ahora si funciona. Por sierto Noter para los que siempre respondemos me llamo Ricardo.

surbyte:
Corregido, ahora si funciona. Por sierto Noter para los que siempre respondemos me llamo Ricardo.

Y yo Serafín. Un placer. Naiz tu mit yu :slight_smile:

jajaja el naiz tu mit u me matóooooooooooo!!!!!!

he hecho este codigo seguro k tiene miles de errores pero funcionar funciona jejeje ahora quiero añadirle que nos pida un numero y que nos guarde el numero con el nombre

/*
  SD card read/write
 
 This example shows how to read and write data to and from an SD card file 	
 The circuit:
 * SD card attached to SPI bus as follows:
 ** MOSI - pin 11
 ** MISO - pin 12
 ** CLK - pin 13
 ** CS - pin 4
 
 created   Nov 2010
 by David A. Mellis
 modified 9 Apr 2012
 by Tom Igoe
 
 This example code is in the public domain.
 	 
 */
  
char nombre[30]; //Creamos un array que almacenará los caracteres que escribiremos en la consola del PC. Le asignamos  un tope de caracteres, en este caso 30
byte posicion=0;  //Variable para cambiar la posición de los caracteres del array
int valor;  //Variable del valor entero
 
#include <SD.h>

File myFile;

void setup()
{
 // Open serial communications and wait for port to open:
  Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }


  Serial.print("Initializing SD card...");

   pinMode(10, OUTPUT);
   
  if (!SD.begin(4)) {
    Serial.println("initialization failed!");
    return;
  }
  Serial.println("initialization done.");
  
}
void loop()
{
	  while(Serial.available()) //Nos dice si hay datos dentro del buffer
  {
   
   // memset(cadena, 0,sizeof(cadena));//memset borra el contenido del array  "cadena" desde la posición 0 hasta el final sizeof

    while(Serial.available()>0) //Mientras haya datos en el buffer ejecuta la función
    {
      delay(5); //Poner un pequeño delay para mejorar la recepción de datos
      
      nombre[posicion]=Serial.read();//Lee un carácter del string "cadena" de la "posicion", luego lee el siguiente carácter con "posicion++"
      posicion++;
    }
 
   myFile = SD.open("nombre.txt", FILE_WRITE);
  
  // if the file opened okay, write to it:
  if (myFile) {
    Serial.println(nombre);//Imprimimos el valor sumandole un valor +2
     myFile.println(nombre);
   myFile.close();
  }
  }}

lo que quiero es algo asi:
como te llamas
guarda la contestacion en nombre
que id quieres
guarda la contestacion en id

y que pasó con el código que te pasé?

hay pone 5 huellas y no lo entiendo muy bien

Bueno me pareció haber leido un código mas completo pero no lo veo o fue una ilusión.
Me di cuenta que era un demo de 5 huellas pero como tenia completas ciertas funciones, dije es un buen comienzo.
Luego leí un comentario que tal vez me confundió que refería a 500 huellas y como almacenarlas. Fui al foro pero no encuentro mayor seguimiento al tema. Lo siento.

jajaja no te preocupes

esto lo he sacado de c ¿se podria hacer esto en arduino?

#include <stdio.h>
#include <string.h>
 
int main()
{
  char frase[80];
  int  cantidad;
  int  i;
 
  printf("Dime tu nombre: ");
  gets(frase);
 
  printf("Cuantas veces lo escribimos? ");
  scanf("%d", &cantidad);
 
  for(i=0; i < cantidad; i++)
    printf("%s\n",frase);
 
  return 0;
}

algo parecido a esto en arduino

Por supuesto que se puede hacer algo parecido, a través de serial por ejemplo. Echa un vistazo a la referencia de Serial, y las funciones que tiene.

se que con el Serial.read() se puede recoger un dato pero mas de uno?, no se como se haria

Creo que tu proyecto es demasiado para tus conocimientos pero veremos que podemos hacer para ayudarte.

Necesitas hacer un detector biométrico, con almacenamiento, borrado, busqueda de huellas.
Te di un ejemplo que pensaba te servía como modelo pero resultó ser un demo de 5 huellas fijas pero sigue siendo una buena guia para resolver tu problema

Que tiene de Bueno, pues, mas allá de que toma 5 valores y esta fijo en eso, puedes usarlo como una ejemplo de lo que tienes que hacer.

Por un lado leer la huella que supongo ya lo tienes.
Por otro lado guardar los datos en SD, no se como vas
por otro leer datos de la SD, borrarlo si se da de baja un usuario y buscar una huella en la SD.

Dime donde estas parado?

Yo haría lo siguiente:

  1. leer los datos del detector biométrico.
  2. saber guardarlos
  3. crear una estructura con la información a guardar en una SD
  4. aprender a guardar ese registro usando EDB (extenden data base library para arduino) Mira el proyecto de Noter.
  5. aprender a leer un registro de la DB
  6. aprender a borrar un registro de la DB
  7. buscar un registro de la DB
  8. Ya tienes todo, le agregas un menú para visualizar las cosas y resuelto.

Parece facil pero no lo es, al menos asi sabras que hacer y se simplifican las cosas.
si te pones a hacer todo de golpe no verás el avance.

Siempre debes pensar en las tareas menores que son necesarias para lograr tu objetivo.
Tal vez olvide algo. Sumalo a tus tareas a cumplir.

Acá tienes un programa para un RFID que graba en EEPROM obviamente estará limitado pero es un comienzo, puede ser complicado pero debes reemplazar las lecturas de RFID por tu lector biométrico.
Arduino RC522 RFID Access Control

Aca otro ejemplo usando EDB

Te recomiendo veas este ejemplo de EDB, es simple pero muy claro de como hacer todo.
EDB puede usarse con la EEPROM del Arduino, con una EEPROM externa o con SD.

la verdad esque mucho nivel no tengo me pondre manos a la obra y cualquier avanza lo posteare gracias

Te he dado las pautas. Mira los ejemplos de EDB que te di.
Luego que lo tengas verás que solo debes armar una estructura con los campos que sean de tu interés. Entonces podrás guardar, borrar, agregar, añadir registros.

Si sigues los pasos que te he indicado mas o menos irás resolviendo tus problemas. No intentes todo de golpe. Empieza por algo, lo entiendes y sigues.

sabes guardar los datos del detector biometrico a k te refieres?