- Les matériaux utilisés
- Module de lecteur RFID EM18
- Découvrez le code unique à 12 chiffres de l'étiquette RFID en utilisant Arduino
- Schéma
- Module de capteur d'empreinte digitale
- Programmation pour l'allumage sans clé RFID
De nos jours, la plupart des voitures sont équipées d'un système d'entrée sans clé et d'allumage par bouton-poussoir, dans lequel il vous suffit de garder la clé dans votre poche et de mettre le doigt sur le capteur capacitif de la poignée de porte pour ouvrir la porte de la voiture. Ici, dans ce projet, nous ajoutons quelques fonctionnalités de sécurité supplémentaires à ce système en utilisant la RFID et le capteur d'empreintes digitales. Le capteur RFID validera la licence de l'utilisateur et le capteur d'empreintes digitales n'autorisera qu'une personne autorisée dans le véhicule.
Pour ce système d'allumage de voiture basé sur l'empreinte digitale, nous utilisons Arduino avec un capteur d'empreintes digitales R305 et un lecteur RFID EM18.
Les matériaux utilisés
- Arduino Nano
- Capteur d'empreintes digitales R305
- Lecteur RFID EM18
- LCD alphanumérique 16 * 2
- Moteurs à courant continu
- CI pilote de moteur L293D
- Veroboard ou Breadboard (selon la disponibilité)
- Fils de connexion
- Batterie 12V DC
Module de lecteur RFID EM18
RFID signifie identification par radiofréquence. Il s'agit d'une technologie dans laquelle les données numériques sont codées dans des étiquettes RFID et peuvent être décodées par un lecteur RFID à l'aide d'ondes radio. La RFID est similaire au code à barres dans lequel les données d'une étiquette sont décodées par un appareil. La technologie RFID est utilisée dans diverses applications telles que le système de sécurité, le système de présence des employés, la serrure de porte RFID, la machine de vote RFID, le système de perception des péages, etc.
EM18 Reader est un module qui peut lire les informations d'identification stockées dans les étiquettes RFID. Les étiquettes RFID stockent un numéro unique à 12 chiffres qui peut être décodé par un module lecteur EM18, lorsque l'étiquette arrive à portée du lecteur. Ce module fonctionne à une fréquence de 125 kHz, qui possède une antenne intégrée, et il fonctionne avec une alimentation 5 volts CC.
Il donne une sortie de données série, et il a une portée de 8 à 12 cm. Les paramètres de communication série sont 8 bits de données, 1 bit d'arrêt et un débit de 9600 bauds.
Caractéristiques de l'EM18:
- Tension de fonctionnement: + 4,5 V à + 5,5 V DC
- Consommation de courant: 50mA
- Fréquence de fonctionnement: 125 KHZ
- Température de fonctionnement: 0-80 degrés C
- Vitesse de communication en bauds: 9600
- Distance de lecture: 8-12 cm
- Antenne: intégrée
Brochage EM18:
Description de la broche:
VCC: entrée de tension DC 4.5-5 V
GND: broche de masse
Buzzer: Buzzer ou broche LED
TX: Broche émetteur de données série de EM18 pour RS232 (sortie)
SEL: Cela doit être HIGH pour utiliser RS232 (LOW si vous utilisez WEIGAND)
Données 0: données WEIGAND 0
Données 1: données WEIGAND 1
Pour en savoir plus sur la RFID et les étiquettes, consultez nos précédents projets basés sur la RFID.
Découvrez le code unique à 12 chiffres de l'étiquette RFID en utilisant Arduino
Avant de programmer le système d'allumage de voiture Arduino pour Arduino, nous devons d'abord connaître le code unique de l'étiquette RFID à 12 chiffres. Comme nous l'avons vu précédemment, les étiquettes RFID contiennent un code unique à 12 chiffres et peuvent être décodées à l'aide d'un lecteur RFID. Lorsque nous glissons l'étiquette RFID près du lecteur, le lecteur donnera les codes uniques via le port série de sortie. Tout d'abord, connectez l'Arduino au lecteur RFID selon le schéma de circuit, puis téléchargez le code ci-dessous sur Arduino.
nombre int = 0; char card_no; void setup () {Serial.begin (9600); } boucle void () {if (Serial.available ()) {count = 0; while (Serial.available () && count <12) {card_no = Serial.read (); count ++; retard (5); } Serial.print (card_no); }}
Après avoir téléchargé le code avec succès, ouvrez le moniteur série et réglez le débit en bauds sur 9600. Ensuite, faites glisser la carte près du Reader. Ensuite, le code à 12 chiffres commencera à s'afficher sur le moniteur série. Effectuez ce processus pour toutes les étiquettes RFID utilisées et notez-le pour de futures références.
Schéma
Le schéma de circuit de ce système d'allumage basé sur l'empreinte digitale est donné ci-dessous:
Dans mon cas, j'ai soudé le circuit complet sur la carte de performance comme indiqué ci-dessous:
Module de capteur d'empreinte digitale
Le module de capteur d'empreintes digitales ou scanner d'empreintes digitales est un module qui capture l'image de l'empreinte digitale, puis la convertit en modèle équivalent et les enregistre dans sa mémoire sur l'ID sélectionné (emplacement) par Arduino. Ici, tout le processus est commandé par Arduino comme prendre une image d'une empreinte digitale, la convertir en modèles, et stocker l'emplacement, etc.
Nous avons précédemment utilisé le même capteur R305 pour construire une machine à voter, un système de présence, un système de sécurité, etc. Vous pouvez vérifier tous les projets basés sur les empreintes digitales ici.
Enregistrement des empreintes digitales dans le capteur:
Avant de poursuivre le programme, nous devons installer les bibliothèques requises pour le capteur d'empreintes digitales. Ici, nous avons utilisé « Adafruit_Fingerprint.h » pour utiliser le capteur d'empreintes digitales R305. Alors tout d'abord téléchargez la bibliothèque en utilisant le lien ci-dessous:
- Bibliothèque de capteurs d'empreintes digitales Adafruit
Après le téléchargement réussi, dans l'IDE Arduino, accédez à Fichier > Outils> Inclure la bibliothèque> Ajouter une bibliothèque.zip , puis sélectionnez l'emplacement du fichier zip pour installer la bibliothèque.
Une fois l'installation de la bibliothèque réussie, suivez les étapes ci-dessous pour enregistrer une nouvelle empreinte digitale dans la mémoire du capteur.
1. Dans l'IDE Arduino, accédez à Fichier > Exemples > Bibliothèque de capteurs d' empreintes digitales Adafruit > Inscription.
2. Téléchargez le code sur l'Arduino et ouvrez le moniteur série à une vitesse de transmission de 9600 bauds.
Important: remplacez la broche série du logiciel dans le programme par SoftwareSerial mySerial (12, 11).
3. Vous devez entrer un identifiant pour l'empreinte digitale dans laquelle vous souhaitez stocker votre empreinte digitale. Comme il s'agit de ma première empreinte digitale, j'ai tapé 1 dans le coin supérieur gauche, puis cliquez sur le bouton Envoyer.
4. Ensuite, le voyant sur le capteur d'empreintes digitales clignote, ce qui indique que vous devez placer votre doigt sur le capteur et après cela, suivez les étapes affichées sur le moniteur série jusqu'à ce qu'il vous reconnaisse pour l'enregistrement réussi.
Programmation pour l'allumage sans clé RFID
Le code complet de ce système d'allumage biométrique est donné à la fin du didacticiel. Nous expliquons ici quelques parties importantes du code.
La première chose à faire est d'inclure toutes les bibliothèques requises. Ici, dans mon cas, j'ai inclus « Adafruit_Fingerprint.h » pour l'utilisation du capteur d'empreintes digitales R305. Configurez ensuite le port série sur lequel le capteur d'empreintes digitales sera connecté. Dans mon cas, j'ai déclaré 12 comme broche RX et 11 comme broche TX.
#include #include
Dans l'étape suivante, déclarez toutes les variables, qui seront utilisées dans tout le code. Définissez ensuite les broches de connexion LCD avec Arduino suivi de la déclaration d'un objet de classe LiquidCrystal .
entrée char; nombre int = 0; int a = 0; const int rs = 6, en = 7, d4 = 2, d5 = 3, d6 = 4, d7 = 5; LiquidCrystal LCD (rs, en, d4, d5, d6, d7);
Ensuite, à l'intérieur de la boucle (), le code est écrit pour obtenir les codes uniques à 12 chiffres des étiquettes RFID et ils sont stockés dans un tableau. Ici, les éléments du tableau seront mis en correspondance avec les codes uniques stockés dans la mémoire, pour obtenir les détails de la personne authentifiée.
compte = 0; while (Serial.available () && count <12) { input = Serial.read (); count ++; retard (5); }
Ensuite, le tableau reçu est comparé aux codes d'étiquette stockés. Si le code correspond, la licence est considérée comme valide, ce qui permet à l'utilisateur de mettre une empreinte digitale valide. Sinon, il affichera une licence invalide.
if ((strncmp (entrée, "3F009590566C", 12) == 0) && (a == 0)) { lcd.setCursor (0, 0); lcd.print ("Licence valide"); lcd.setCursor (0, 1); lcd.print ("Bienvenue"); retard (1000); a = 1; empreinte digitale(); }
À l'étape suivante, une fonction getFingerprintID est écrite qui renverra un ID d'empreinte digitale valide pour une empreinte digitale déjà enregistrée.
int getFingerprintID () { uint8_t p = finger.getImage (); if (p! = FINGERPRINT_OK) return -1; p = doigt.image2Tz (); if (p! = FINGERPRINT_OK) return -1; p = finger.fingerFastSearch (); if (p! = FINGERPRINT_OK) return -1; return finger.fingerID; }
À l'intérieur de la fonction fingerprint () , qui est appelée après une correspondance RFID réussie, la fonction getFingerprintID est appelée pour obtenir un ID d'empreinte digitale valide. Ensuite, il est comparé à l'aide de la boucle if-else pour obtenir les informations concernant les données de la personne authentifiée et si les données correspondent, le véhicule est allumé, sinon, il vous demandera la mauvaise empreinte digitale.
int fingerprintID = getFingerprintID (); retard (50); if (fingerprintID == 1) { lcd.setCursor (0, 0); lcd.print ("Accès accordé"); lcd.setCursor (0, 1); lcd.print ("Véhicule démarré"); digitalWrite (9, HIGH); digitalWrite (10, FAIBLE); tandis que (1); }
C'est ainsi que fonctionne ce système d'allumage de voiture RFID qui ajoute deux couches de sécurité à votre voiture.
Le code complet et la vidéo de démonstration sont donnés ci-dessous.