Tabla de contenido:
- Paso 1: Componentes necesarios para construir una máquina de votación biométrica
- Paso 2: Diagrama de circuito para la máquina de votación biométrica con Arduino
- Paso 3: Código fuente y explicación del código paso a paso
- Paso 4: Probar el sistema de votación por huellas dactilares con Arduino
Video: Máquina de votación biométrica basada en huellas dactilares con Arduino: 4 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
Todos conocemos la máquina de votación electrónica existente donde el usuario debe presionar un botón para emitir el voto. Pero estas máquinas han sido criticadas por templar desde el principio. Por lo tanto, el gobierno planea introducir una máquina de votación basada en huellas dactilares donde los usuarios pueden emitir el voto en función de su impresión de huellas dactilares. Este sistema no solo eliminará la posibilidad de votos duplicados, sino que también evitará cualquier tipo de manipulación.
Entonces, en este proyecto, vamos a construir un prototipo de máquina de votación biométrica usando Arduino Uno, pantalla TFT y sensor de huellas dactilares. Anteriormente usamos el sensor de huellas digitales R305 con NodeMCU para construir un sistema de asistencia basado en biometría, pero aquí usaremos el sensor de huellas digitales avanzado GT-511C3 con Arduino.
Paso 1: Componentes necesarios para construir una máquina de votación biométrica
- Arduino Uno
- Protector de pantalla LCD TFT de 2,4"
- Sensor de huellas dactilares GT-511C3
Esta pantalla TFT de 2,4 pulgadas se utilizaba anteriormente con Arduino para crear un sistema de pedidos de menús de restaurantes basado en IoT.
Paso 2: Diagrama de circuito para la máquina de votación biométrica con Arduino
El diagrama de circuito para este proyecto es muy simple ya que solo estamos conectando la pantalla TFT y el módulo del sensor de huellas dactilares con Arduino Uno. Los pines VCC y GND del sensor de huellas dactilares están conectados a los pines 5V y GND de Arduino, mientras que los pines TX y RX están conectados a los pines digitales 11 y 12 de Arduino Uno.
La pantalla LCD TFT de 2.4”es un Arduino Shield y se puede montar directamente en Arduino Uno, como se muestra en la imagen de abajo. La pantalla TFT tiene 28 pines que encajan perfectamente en Arduino Uno, así que tuve que soldar el sensor de huellas dactilares en la parte trasera de Arduino.
Paso 3: Código fuente y explicación del código paso a paso
El código completo para este proyecto de sistema de votación por huellas dactilares que utiliza Arduino se proporciona al final del artículo; aquí estamos explicando algunas funciones importantes del código.
El código utiliza las bibliotecas SPFD5408, Software Serial y FPS_GT511C3. La biblioteca SPFD5408 es la versión modificada de la biblioteca Adafruit original. Estos archivos de biblioteca se pueden descargar desde los enlaces que se proporcionan a continuación:
- Biblioteca SPFD5408
- Serie de software
- FPS_GT511C3
Después de incluir las bibliotecas y definir algunos parámetros importantes, podemos pasar a la parte de programación. Hay tres secciones involucradas en este programa. Uno es crear una interfaz de usuario de una máquina de votación, el segundo es obtener los puntos de contacto para los botones y detectar los botones en función del tacto y, finalmente, calcular los resultados y guardarlos en la memoria de Arduino.
1. Creación de interfaz de usuario:
He creado una interfaz de usuario simple con tres botones y el nombre del proyecto. La biblioteca de pantallas TFT le permite dibujar líneas, rectángulos, círculos, caracteres, cadenas y mucho más de cualquier color y tamaño preferido. Aquí se crean dos botones rectangulares usando las funciones fillRoundRect y drawRoundRect. La sintaxis de la función tft.drawRoundRect se proporciona a continuación:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radio, uint16_t color)
Dónde:
x0 = Coordenada X del punto inicial de rectangular
y0 = Coordenada Y del punto inicial de rectangular
w = Ancho de la rectangular
h = Altura del Rectangular
radio = Radio de la esquina redondeada
color = Color del Rect.
vacío drawHome ()
{
tft.fillScreen (BLANCO);
tft.drawRoundRect (0, 0, 319, 240, 8, BLANCO); //Borde de página
tft.fillRoundRect (10, 70, 220, 50, 8, ORO);
tft.drawRoundRect (10, 70, 220, 50, 8, BLANCO); //Votar
tft.fillRoundRect (10, 160, 220, 50, 8, ORO);
tft.drawRoundRect (10, 160, 220, 50, 8, BLANCO); //Inscribirse
tft.fillRoundRect (10, 250, 220, 50, 8, ORO); //Resultado
tft.drawRoundRect (10, 250, 220, 50, 8, BLANCO);
tft.setCursor (65, 5);
tft.setTextSize (3);
tft.setTextColor (CYAN);
tft.print ("Votación");
tft.setCursor (57, 29);
tft.print ("Máquina");
tft.setTextSize (3);
tft.setTextColor (BLANCO);
tft.setCursor (25, 82);
tft.print ("Candidato 1");
tft.setCursor (25, 172);
tft.print ("Candidato 2");
tft.setCursor (25, 262);
tft.print ("Candidato 3");
}
2. Obtener los puntos de contacto y los botones de detección:
Ahora, en la segunda sección del código, detectaremos los puntos de contacto del botón y luego usaremos estos puntos para predecir el botón. La función ts.getPoint () se utiliza para detectar el toque del usuario en la pantalla TFT. ts.getPoint proporciona los valores de ADC sin procesar para el área tocada. Estos valores RAW ADC luego se convierten en coordenadas de píxeles usando la función de mapa.
TSPoint p = ts.getPoint ();
if (p.z> ts.pressureThreshhold)
{
p.x = mapa (p.x, TS_MAXX, TS_MINX, 0, 320);
p.y = mapa (p.y, TS_MAXY, TS_MINY, 0, 240);
//Serial.print("X: ");
//Serial.print(p.x);
//Serial.print("Y: ");
//Serial.print(p.y);
Ahora, dado que conocemos las coordenadas X e Y de cada botón, podemos predecir dónde ha tocado el usuario utilizando la declaración "si".
si (p.x> 70 && p.x 10 && p.y MINPRESSURE && p.z <MAXPRESSURE)
{
Serial.println ("Candidato 1");
Cuando un votante presiona el botón de candidato, se le pedirá que escanee el dedo en el sensor de huellas dactilares. Si se autoriza la identificación del dedo, el votante puede votar. Si algún usuario no registrado desea votar, el módulo de huellas dactilares no detectará su ID en el sistema y la pantalla mostrará "Lo siento, no puede votar".
si (fps. IsPressFinger ())
{
fps. CaptureFinger (falso);
int id = fps. Identify1_N ();
si (id <200)
{
msg = "Candidato 1";
vote1 ++;
EEPROM.write (0, vote1);
tft.setCursor (42, 170);
tft.print ("Gracias");
retraso (3000);
drawHome ();
3. Resultado:
El último paso es obtener el recuento de votos de la memoria EEPROM y comparar los votos de los tres candidatos. Un candidato con la mayor cantidad de votos gana. Solo se puede acceder al resultado desde el monitor en serie y no se mostrará en la pantalla TFT.
vote1 = EEPROM.read (0);
vote2 = EEPROM.read (1);
vote3 = EEPROM.read (2);
si (votar)
{
si ((vote1> vote2 && vote1> vote3))
{
Serial.print ("Can1 gana");
retraso (2000);
}
Paso 4: Probar el sistema de votación por huellas dactilares con Arduino
Para probar el proyecto, conecte el Arduino Uno a la computadora portátil y cargue el código dado. Una vez que se carga el código, la pantalla TFT debe mostrar el nombre del candidato. Cuando alguien toca el nombre de un candidato, la máquina le pedirá que escanee el escáner de huellas dactilares. Si la huella digital es válida, se contará el voto del usuario, pero en caso de que el patrón no coincida con los registros de la base de datos, se denegará el acceso para emitir un voto. El número total de votos de cada candidato se almacenará en EEPROM y ganará el candidato que tenga el mayor número de votos.
Espero que hayas disfrutado del tutorial y hayas aprendido algo útil. Si tiene alguna pregunta, háganoslo saber en la sección de comentarios a continuación, y también síganos en Instructable para más proyectos interesantes.
Recomendado:
Cerradura de puerta eléctrica con escáner de huellas dactilares y lector RFID: 11 pasos (con imágenes)
Cerradura de Puerta Eléctrica con Escáner de Huellas y Lector RFID: El proyecto fue diseñado para evitar la necesidad de usar llaves, para alcanzar nuestro objetivo usamos un sensor óptico de huellas y un Arduino. Sin embargo, hay personas que tienen una huella dactilar ilegible y el sensor no la reconoce. Entonces pensando en
Sistema en línea de votación por huellas dactilares (FVOS): 5 pasos
Sistema de votación por huella digital (FVOS): El sistema de votación por huella digital en línea permite a los votantes emitir sus votos de manera totalmente digitalizada al recopilar y confirmar su información escaneando la huella digital a través del dispositivo y guardando los datos en un servidor. Tiene G fácil de usar
Uso del sensor de huellas dactilares para el tiempo de asistencia en combinación con la solución XAMP: 6 pasos (con imágenes)
Uso del sensor de huellas dactilares para el tiempo de asistencia en combinación con la solución XAMP: para un proyecto escolar, buscábamos una solución sobre cómo realizar un seguimiento de la asistencia de los estudiantes. Muchos de nuestros estudiantes llegan tarde. Es un trabajo tedioso comprobar su presencia. Por otro lado, hay mucha discusión porque los estudiantes a menudo dirán
Tutorial del sensor de huellas dactilares Arduino: 6 pasos (con imágenes)
Tutorial del sensor de huellas dactilares Arduino: Queridos amigos, ¡bienvenidos a otro tutorial! Hoy vamos a construir un interesante proyecto Arduino que utiliza un módulo sensor de huellas dactilares. Sin más demora, ¡comencemos! Siempre quise probar un módulo de sensor de huellas dactilares en
Cómo engañar a un sistema de seguridad de huellas dactilares tan fácil como ABC: 12 pasos (con imágenes)
Cómo engañar a un sistema de seguridad de huellas dactilares tan fácil como ABC: esta instrucción le mostrará cómo engañar a un sistema de seguridad de huellas dactilares tan fácil como ABC. IBM nunca quiere que sepas. también funciona para la mayoría de los sistemas de seguridad de huellas dactilares. Por ejemplo: ej. puerta, teléfono móvil … Estas instrucciones vienen con v