capteur d'empreintes digitales (FPM10A)

capteur d'empreintes digitales (FPM10A) avec Arduino uno

Publish by : arielk The : 22/02/2021 at 10h 02min 07s
0

Cet article est un guide d'introduction sur l'utilisation du module de capteur d'empreintes digitales avec l'Arduino. Nous vous montrerons comment enregistrer un nouvel identifiant d'empreinte digitale et comment trouver une correspondance d'empreinte digitale.

Regardez la démonstration vidéo

Présentation du module de capteur d'empreintes digitales

Les modules de capteur d'empreintes digitales , comme celui de la figure suivante, ont rendu la reconnaissance d'empreintes digitales plus accessible et facile à ajouter à vos projets. Cela signifie qu'il est très facile de collecter, d'enregistrer, de comparer et de rechercher des empreintes digitales.

Ces modules sont livrés avec une mémoire FLASH pour stocker les empreintes digitales et fonctionnent avec n'importe quel microcontrôleur ou système avec série TTL. Ces modules peuvent être ajoutés aux systèmes de sécurité, aux serrures de porte, aux systèmes de pointage et bien plus encore.

Caractéristiques

Voici les spécifications du module de capteur d'empreintes digitales que nous utilisons (vous devriez vérifier la fiche technique de votre capteur ou les spécifications fournies par votre fournisseur - elles ne devraient pas être très différentes de celles-ci) :

  • Alimentation en tension : DC 3,6 à 6,0 V
  • Alimentation en courant : <120mA
  • Couleur du rétroéclairage : vert
  • Interface : UART
  • Mauvais taux : 9600
  • Niveau de sécurité : cinq (de faible à élevé : 1,2,3,4,5)
  • Taux de fausses acceptations (FAR) : <0,001 % (niveau de sécurité 3)
  • Taux de faux rejets (FRR) : <1,0 % (niveau de sécurité 3)
  • Capable de stocker 127 empreintes digitales différentes

Brochage du capteur

Le capteur a six broches qui sont étiquetées dans la figure ci-dessous.

Le module de capteur d'empreintes digitales utilisé dans ce projet était livré avec des fils très fins, il était donc nécessaire de souder des fils compatibles avec la planche à pain. Nous vous recommandons d'utiliser différentes couleurs selon la fonction de la broche. Dans notre cas:

  • DNC – fils blancs
  • VCC – fil rouge
  • TX – fil bleu
  • RX – fil vert
  • GND – fil noir

Le tableau suivant montre comment câbler le capteur à l'Arduino.

Détecteur d'empreintes digitales Arduino
VCC 5V (ça marche aussi avec 3.3V)
Émission Réception (broche numérique 2, série logicielle)
Réception Émission (broche numérique 3, série logicielle)
GND GND

Installation de la bibliothèque de capteurs d'empreintes digitales Adafruit

Le moyen le plus simple de contrôler le module de capteur d'empreintes digitales avec l'Arduino consiste à utiliser la bibliothèque Adafruit pour ce capteur. Suivez les instructions suivantes pour installer la bibliothèque :

  1. Cliquez ici pour télécharger la bibliothèque du capteur d'empreintes digitales Adafruit . Vous devriez avoir un dossier .zip dans votre dossier Téléchargements
  2. Décompressez le dossier .zip et vous devriez obtenir le dossier Adafruit-Fingerprint-Sensor-Library-master
  3. Renommez votre dossier de  Adafruit-Fingerprint-Sensor-Library-masterdossier dans le  dossier Adafruit_Fingerprint_Sensor_Library
  4. Déplacez le dossier vers votre dossier de bibliothèques d'installation Arduino IDE
  5. Enfin, rouvrez votre IDE Arduino

Enregistrer une nouvelle empreinte digitale

Après avoir connecté le module de capteur d'empreintes digitales à l'Arduino, suivez les étapes suivantes pour enregistrer une nouvelle empreinte digitale. Assurez-vous d'avoir déjà installé la bibliothèque Adafruit Fingerprint Sensor.

1. Dans l'IDE Arduino, accédez à Fichier > Exemples > Bibliothèque de capteurs d' empreintes digitales Adafruit > Enroll .

2. Téléchargez le code et ouvrez le moniteur série à un débit en bauds de 9600.

3. Vous devez saisir un identifiant pour l'empreinte digitale. Comme il s'agit de votre première empreinte digitale, tapez 1 dans le coin supérieur gauche, puis cliquez sur le bouton Envoyer .

4. Placez votre doigt sur le scanner et suivez les instructions sur le moniteur série.

Il vous sera demandé de placer deux fois le même doigt sur le scanner. Si vous obtenez les « impressions assorties ! ", comme indiqué ci-dessous, votre empreinte digitale a été enregistrée avec succès. Sinon, répétez le processus jusqu'à ce que vous réussissiez.

Stockez autant d'empreintes digitales que vous le souhaitez en utilisant cette méthode.

Trouver une correspondance

Vous devriez maintenant avoir plusieurs empreintes digitales enregistrées sur différents identifiants. Pour trouver une correspondance avec le capteur d'empreintes digitales, suivez les instructions suivantes.

1. Dans l'IDE Arduino, accédez à Fichier > Exemples > Bibliothèque de capteurs d' empreintes digitales Adafruit > Empreinte digitale et téléchargez le code sur votre carte Arduino.

2.  Ouvrez le moniteur série à une vitesse de transmission de 9600. Vous devriez voir le message suivant :

3.  Placez le doigt à identifier sur le scan.

4. Sur le moniteur série, vous pouvez voir l'ID qui correspond à l'empreinte digitale. Il montre également la confiance - plus la confiance est élevée, plus l'empreinte digitale est similaire à l'empreinte digitale stockée.

Exemple de projet - Afficher la correspondance des empreintes digitales sur l'écran OLED

Dans cet exemple de projet, nous allons enregistrer deux empreintes digitales de deux personnes différentes. Ensuite, nous afficherons un message d'accueil en fonction de la correspondance trouvée, sur un écran OLED.

Pour en savoir plus sur l'écran OLED, lisez : Guide pour l'écran OLED avec Arduino

Pièces requises

Pour cet exemple, vous aurez besoin des pièces suivantes :

Vous pouvez utiliser les liens précédents ou vous rendre directement sur www.sosprojets/shop.com pour trouver toutes les pièces pour vos projets au meilleur prix !

Schémas

Voici le schéma de câblage que vous devez suivre pour réaliser le circuit de ce projet.

Installation des bibliothèques OLED de 0,96 pouces

Pour contrôler l'écran OLED, vous avez besoin des  bibliothèques adafruit_SSD1306.h  et  adafruit_GFX.h  . Suivez les instructions suivantes pour installer ces bibliothèques.

1. Ouvrez votre IDE Arduino et accédez à  Sketch  >  Inclure la bibliothèque  >  Gérer les bibliothèques . Le gestionnaire de bibliothèque devrait s'ouvrir.

2. Tapez « SSD1306 » dans la zone de recherche et installez la bibliothèque SSD1306 d'Adafruit.

Installation de la bibliothèque SSD1306 OLED ESP8266 ESP32 Arduino

3. Après avoir installé la bibliothèque SSD1306 d'Adafruit, tapez " GFX " dans la zone de recherche et installez la bibliothèque.

Installation de la bibliothèque GFX ESP8266 ESP32 Arduino

4. Après avoir installé les bibliothèques, redémarrez votre IDE Arduino.

Code

Avant de télécharger le code, vous devez enregistrer différentes empreintes digitales de différentes personnes. Accédez à la section « Inscrire une nouvelle empreinte digitale » ci-dessus, téléchargez le code donné et suivez les instructions pour enregistrer deux empreintes digitales.

Ensuite, modifiez le code afin que les identifiants d'empreintes digitales correspondent au nom des personnes inscrites - faites défiler jusqu'à la page pour une explication du code. Enfin, vous pouvez télécharger le code fourni.



#include 
#include 
#include 
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

#include 
#include 
SoftwareSerial mySerial(2, 3);

Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
int fingerprintID = 0;
String IDname;

void setup(){
  //Fingerprint sensor module setup
  Serial.begin(9600);
  // set the data rate for the sensor serial port
  finger.begin(57600);
  
  if (finger.verifyPassword()) {
    Serial.println("Found fingerprint sensor!");
  } 
  else {
    Serial.println("Did not find fingerprint sensor :(");
    while (1) { delay(1); }
  }

  //OLED display setup
  Wire.begin();
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  //displays main screen
  displayMainScreen();
}

void loop(){
  displayMainScreen();
  fingerprintID = getFingerprintIDez();
  delay(50);
  if(fingerprintID == 1 || fingerprintID == 3 || fingerprintID == 4 || fingerprintID == 5){
    IDname = "Sara";
    displayUserGreeting(IDname);            
  }  
  else if(fingerprintID == 2){
    IDname = "Rui";  
    displayUserGreeting(IDname);            
  }
}

// returns -1 if failed, otherwise returns ID #
int getFingerprintIDez() {
  uint8_t p = finger.getImage();
  if (p != FINGERPRINT_OK)  return -1;

  p = finger.image2Tz();
  if (p != FINGERPRINT_OK)  return -1;

  p = finger.fingerFastSearch();
  if (p != FINGERPRINT_OK)  return -1;
  
  // found a match!
  Serial.print("Found ID #"); 
  Serial.print(finger.fingerID); 
  Serial.print(" with confidence of "); 
  Serial.println(finger.confidence);
  return finger.fingerID; 
}

void displayMainScreen(){
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(7,5);
  display.println("Waiting fingerprint");
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(52,20);
  display.println("...");  
  display.display();
  delay(2000);
}

void displayUserGreeting(String Name){
  display.clearDisplay();
  display.setTextColor(WHITE);
  display.setTextSize(2);
  display.setCursor(0,0);
  display.print("Hello");
  display.setCursor(0,15);
  display.print(Name); 
  display.display();
  delay(5000);
  fingerprintID = 0; 
}

Afficher le code brut

Importation de bibliothèques

Le code commence par importer les bibliothèques nécessaires à écrire dans l'écran OLED et crée un Adafruit_SSD1306 objet appelé affichage.

#include 
#include 
#include 
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

Nous devons également importer les bibliothèques nécessaires au capteur d'empreintes digitales : Adafruit_Fingerprint.h et SoftwareSerial.h.

#include 
#include 

La ligne suivante définit la série logicielle sur les broches 2 et 3. Broche 2 comme RX, et Broche 3 comme TX.

SoftwareSerial mySerial(2, 3);

Ensuite, nous créons un Adafruit_Fingerprint objet appelé doigt sur les broches série que nous avons définies précédemment.

Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

Les deux lignes suivantes créent des variables pour contenir l'ID d'empreinte digitale et le nom d'ID.

int fingerprintID = 0;
String IDname;

setup()

Dans le mettre en place(), le capteur d'empreintes digitales et l'écran OLED sont initialisés. Nous imprimons également un message sur le moniteur série afin que nous sachions si le capteur d'empreintes digitales a été trouvé avec succès.

void setup(){
 //Fingerprint sensor module setup
 Serial.begin(9600);
 // set the data rate for the sensor serial port
 finger.begin(57600);
 
 if (finger.verifyPassword()) {
   Serial.println("Found fingerprint sensor!");
 } 
 else {
   Serial.println("Did not find fingerprint sensor :(");
   while (1) { delay(1); }
 }

//OLED display setup
 Wire.begin();
 display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
 //displays main screen
 displayMainScreen();
}

Dans le boucle(), le code affiche l'écran principal