Table des matières:
- Étape 1: Composants requis pour construire une machine à voter biométrique
- Étape 2: Schéma de circuit pour machine à voter biométrique utilisant Arduino
- Étape 3: Code source et explication du code étape par étape
- Étape 4: Test du système de vote par empreinte digitale à l'aide d'Arduino
Vidéo: Machine de vote biométrique basée sur les empreintes digitales utilisant Arduino: 4 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
Nous connaissons tous la machine de vote électronique existante où l'utilisateur doit appuyer sur un bouton pour voter. Mais ces machines ont été critiquées pour leur tempérament depuis le début. Ainsi, le gouvernement envisage d'introduire une machine à voter basée sur les empreintes digitales où les utilisateurs peuvent voter en fonction de leur empreinte digitale. Ce système supprimera non seulement la possibilité de votes en double mais empêchera également tout type de manipulation.
Donc, dans ce projet, nous allons construire un prototype d'une machine à voter biométrique utilisant l'Arduino Uno, l'écran TFT et le capteur d'empreintes digitales. Nous avons précédemment utilisé le capteur d'empreintes digitales R305 avec NodeMCU pour créer un système de présence biométrique, mais ici, nous utiliserons le capteur d'empreintes digitales avancé GT-511C3 avec Arduino.
Étape 1: Composants requis pour construire une machine à voter biométrique
- Arduino Uno
- Écran LCD TFT 2,4"
- Capteur d'empreintes digitales GT-511C3
Cet écran TFT de 2,4 pouces est précédemment utilisé avec Arduino pour créer un système de commande de menus de restaurant basé sur l'IoT.
Étape 2: Schéma de circuit pour machine à voter biométrique utilisant Arduino
Le schéma de circuit de ce projet est très simple car nous ne connectons que l'écran TFT et le module de capteur d'empreintes digitales à Arduino Uno. Les broches VCC et GND du capteur d'empreintes digitales sont connectées aux broches 5V et GND d'Arduino tandis que les broches TX et RX sont connectées aux broches numériques 11 et 12 d'Arduino Uno.
L'écran LCD TFT 2,4 est un Arduino Shield et peut être directement monté sur Arduino Uno, comme indiqué dans l'image ci-dessous. L'écran TFT a 28 broches qui s'intègrent parfaitement dans Arduino Uno, j'ai donc dû souder le capteur d'empreintes digitales à l'arrière d'Arduino.
Étape 3: Code source et explication du code étape par étape
Le code complet de ce projet de système de vote par empreinte digitale utilisant Arduino est donné à la fin de l'article; nous expliquons ici quelques fonctions importantes du code.
Le code utilise les bibliothèques SPFD5408, Software Serial et FPS_GT511C3. La bibliothèque SPFD5408 est la version modifiée de la bibliothèque Adafruit originale. Ces fichiers de bibliothèque peuvent être téléchargés à partir des liens ci-dessous:
- Bibliothèque SPFD5408
- Logiciel série
- FPS_GT511C3
Après avoir inclus les bibliothèques et défini quelques paramètres importants, nous pouvons entrer dans la partie programmation. Il y a trois sections impliquées dans ce programme. La première consiste à créer une interface utilisateur d'une machine à voter, la seconde consiste à obtenir les points de contact pour les boutons et à détecter les boutons en fonction du toucher et enfin à calculer les résultats et à les enregistrer dans la mémoire d'Arduino.
1. Création de l'interface utilisateur:
J'ai créé une interface utilisateur simple avec trois boutons et le nom du projet. La bibliothèque d'affichage TFT vous permet de dessiner des lignes, des rectangles, des cercles, des caractères, des chaînes et bien plus de n'importe quelle couleur et taille préférée. Ici, deux boutons rectangulaires sont créés à l'aide des fonctions fillRoundRect et drawRoundRect. La syntaxe de la fonction tft.drawRoundRect est donnée ci-dessous:
tft.drawRoundRect(int16_t x0, int16_t y0, int16_t w, int16_th, rayon int16_t, couleur uint16_t)
Où:
x0= coordonnée X du point de départ du rectangle
y0= coordonnée Y du point de départ du rectangle
w = Largeur du rectangle
h = Hauteur du Rectangulaire
radius= Rayon du coin arrondi
color = Couleur du rect.
void drawHome()
{
tft.fillScreen(BLANC);
tft.drawRoundRect(0, 0, 319, 240, 8, BLANC); //Bordure de page
tft.fillRoundRect (10, 70, 220, 50, 8, OR);
tft.drawRoundRect (10, 70, 220, 50, 8, BLANC); //Voter
tft.fillRoundRect (10, 160, 220, 50, 8, OR);
tft.drawRoundRect (10, 160, 220, 50, 8, BLANC); //Inscrire
tft.fillRoundRect (10, 250, 220, 50, 8, OR); //Résultat
tft.drawRoundRect (10, 250, 220, 50, 8, BLANC);
tft.setCursor(65, 5);
tft.setTextSize(3);
tft.setTextColor(CYAN);
tft.print("Voter");
tft.setCursor(57, 29);
tft.print("Machine");
tft.setTextSize(3);
tft.setTextColor(BLANC);
tft.setCursor (25, 82);
tft.print("Candidat 1");
tft.setCursor (25, 172);
tft.print("Candidat 2");
tft.setCursor (25, 262);
tft.print("Candidat 3");
}
2. Obtenir les points de contact et détecter les boutons:
Maintenant, dans la deuxième section du code, nous allons détecter les points de contact des boutons, puis utiliser ces points pour prédire le bouton. La fonction ts.getPoint() est utilisée pour détecter le toucher de l'utilisateur sur l'écran TFT. ts.getPoint donne les valeurs ADC brutes pour la zone touchée. Ces valeurs RAW ADC sont ensuite converties en coordonnées en pixels à l'aide de la fonction de carte.
TSPoint p = ts.getPoint();
if (p.z > ts.pressureThreshhold)
{
p.x = map(p.x, TS_MAXX, TS_MINX, 0, 320);
p.y = map(p.y, TS_MAXY, TS_MINY, 0, 240);
//Série.print("X:");
//Série.print(p.x);
//Série.print("Y:");
//Série.print(p.y);
Maintenant, puisque nous connaissons les coordonnées X et Y de chaque bouton, nous pouvons prédire où l'utilisateur a touché en utilisant l'instruction "if".
si (p.x > 70 && p.x 10 && p.y PRESSION MIN && p.z < PRESSION MAX)
{
Serial.println("Candidat 1");
Lorsqu'un électeur appuie sur le bouton candidat, il lui sera demandé de scanner le doigt sur le capteur d'empreintes digitales. Si l'identification par doigt est autorisée, l'électeur est autorisé à voter. Si un utilisateur non enregistré souhaite voter, le module d'empreintes digitales ne détectera pas son identifiant dans le système et l'écran affichera « Désolé, vous ne pouvez pas voter ».
si (fps. IsPressFinger())
{
fps. CaptureFinger(false);
int id = fps. Identify1_N();
si (identifiant <200)
{
msg = "Candidat 1";
vote1++;
EEPROM.write(0, vote1);
tft.setCursor(42, 170);
tft.print("Merci");
retard(3000);
drawHome();
3. Résultat:
La dernière étape consiste à obtenir le décompte des votes à partir de la mémoire EEPROM et à comparer les votes des trois candidats. Un candidat avec les votes les plus élevés l'emporte. Le résultat n'est accessible qu'à partir du moniteur série et ne sera pas affiché sur l'écran TFT.
vote1=EEPROM.read(0);
vote2=EEPROM.read(1);
vote3=EEPROM.read(2);
si (voter)
{
if((vote1 > vote2 && vote1 > vote3))
{
Serial.print("Can1 gagne");
retard (2000);
}
Étape 4: Test du système de vote par empreinte digitale à l'aide d'Arduino
Pour tester le projet, connectez l'Arduino Uno à l'ordinateur portable et téléchargez le code donné. Une fois le code téléchargé, l'écran TFT doit afficher le nom du candidat. Lorsque quelqu'un tape sur un nom de candidat, la machine demandera de scanner le scanner d'empreintes digitales. Si l'empreinte digitale est valide, le vote de l'utilisateur sera compté, mais au cas où le modèle ne correspondrait pas aux enregistrements de la base de données, l'accès pour voter sera refusé. Le nombre total de votes pour chaque candidat sera stocké dans l'EEPROM et un candidat ayant le plus grand nombre de votes gagnera.
J'espère que vous avez apprécié le tutoriel et appris quelque chose d'utile. Si vous avez des questions, veuillez nous en informer dans la section commentaires ci-dessous et suivez-nous également sur Instructable pour d'autres projets aussi intéressants.
Conseillé:
Système de présence basé sur les empreintes digitales et RFID utilisant Raspberry Pi et la base de données MySQL : 5 étapes
Système de présence basé sur les empreintes digitales et RFID utilisant Raspberry Pi et la base de données MySQL : vidéo de ce projet
Serrure de porte électrique avec lecteur d'empreintes digitales et lecteur RFID : 11 étapes (avec photos)
Serrure de porte électrique avec lecteur d'empreintes digitales et lecteur RFID : le projet a été conçu pour éviter la nécessité d'utiliser des clés. Pour atteindre notre objectif, nous avons utilisé un capteur optique d'empreintes digitales et un Arduino. Cependant, il y a des individus qui ont une empreinte digitale illisible et le capteur ne la reconnaîtra pas. Puis penser à un
Flipper de table utilisant Evive - Plateforme intégrée basée sur Arduino: 18 étapes (avec photos)
Flipper de table utilisant Evive - Plateforme embarquée basée sur Arduino : Un autre week-end, un autre jeu passionnant ! Et cette fois, ce n'est autre que le jeu d'arcade préféré de tous : Pinball ! Ce projet vous montrera comment fabriquer facilement votre propre flipper à la maison. Tout ce dont vous avez besoin, ce sont des composants de l'Evive
Tutoriel sur le capteur d'empreintes digitales Arduino : 6 étapes (avec photos)
Tutoriel sur le capteur d'empreintes digitales Arduino : Chers amis, bienvenue dans un autre tutoriel ! Aujourd'hui, nous allons construire un projet Arduino intéressant qui utilise un module de capteur d'empreintes digitales. Sans plus tarder, commençons ! J'ai toujours voulu essayer un module de capteur d'empreintes digitales dans
Comment tromper un système de sécurité d'empreintes digitales aussi simple qu'ABC : 12 étapes (avec photos)
Comment tromper un système de sécurité par empreinte digitale aussi facilement qu'ABC : Cette instruction vous montrera comment tromper un système de sécurité par empreinte digitale aussi facilement qu'ABC. IBM ne veut jamais que vous soyez au courant. cela fonctionne également pour la plupart des systèmes de sécurité d'empreintes digitales. Par exemple : ex. porte, téléphone portable…. Cette instruction est livrée avec v