Table des matières:

Machine de vote biométrique basée sur les empreintes digitales utilisant Arduino: 4 étapes (avec photos)
Machine de vote biométrique basée sur les empreintes digitales utilisant Arduino: 4 étapes (avec photos)

Vidéo: Machine de vote biométrique basée sur les empreintes digitales utilisant Arduino: 4 étapes (avec photos)

Vidéo: Machine de vote biométrique basée sur les empreintes digitales utilisant Arduino: 4 étapes (avec photos)
Vidéo: Système biométrique de pointage et contrôle d’accès PNI Finger 700 avec lecteur d'empreintes 2024, Juillet
Anonim
Machine de vote biométrique basée sur les empreintes digitales utilisant Arduino
Machine de vote biométrique basée sur les empreintes digitales utilisant Arduino

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

Schéma de circuit pour machine à voter biométrique utilisant Arduino
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é: