
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.
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.
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) :
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:
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 |
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 :
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.
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.
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
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 !
Voici le schéma de câblage que vous devez suivre pour réaliser le circuit de ce projet.
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.
3. Après avoir installé la bibliothèque SSD1306 d'Adafruit, tapez " GFX " dans la zone de recherche et installez la bibliothèque.
4. Après avoir installé les bibliothèques, redémarrez votre IDE Arduino.
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;
}
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;
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