Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-23 14:45
C'est mon coffre-fort de haute technologie arduino. Vous devez scanner votre doigt, scanner votre carte, puis entrer un mot de passe à 4 chiffres pour déverrouiller le tiroir. Ce projet n'est pas recommandé pour les débutants car il est très avancé. Le code est long, mais je le partagerai dans ce projet. Le coût est d'environ 75 $ si vous construisez le même coffre-fort que moi. Ce projet pourrait également prendre 1-3 jours pour terminer. Alors, commençons!
Fournitures
Pour construire le même coffre-fort que le mien, vous aurez besoin de:
Arduino (Uno recommandé car je n'ai pas d'étapes pour arduino mega ou nano. Mais vous pouvez toujours les utiliser)
planche à pain
servomoteur
fils de liaison
manette
20*4 (vous pouvez utiliser 16*4, mais vous devrez changer le code)
lecteur d'empreintes digitales
scanner de carte rfid mfrc522
un seau de legos
Étape 1: Construire une boîte
Vous aurez d'abord besoin d'une boîte pour ranger vos appareils électroniques. Vous pouvez utiliser des legos, une boîte imprimée en 3D ou même du carton ! (Bien que cela puisse être plus difficile) N'oubliez pas de faire des trous pour un tiroir et vos appareils électroniques. Si vous utilisez le scanner de carte rfid, vous n'avez pas besoin de faire un trou pour cela si vos murs sont fins. Les cartes fonctionnent toujours, mais il faut fermer les porte-clés pour que le senor de la carte rfid puisse les lire. Laissez également de la place pour votre arduino et vos fils à l'intérieur. REMARQUE: lorsque vous construisez le tiroir, laissez un trou dedans pour que votre servo puisse tourner et verrouiller le tiroir.
Étape 2: câblage
Cette étape peut être compliquée car vous devez brancher les fils à l'endroit exact ou l'électronique ne fonctionnera pas. Je n'ai pas de schéma de câblage, mais je vous dirai que chacun ira. Le câblage est uniquement pour arduino uno. Vous devrez rechercher où mettre les fils si vous utilisez un arduino mega ou nano. Si vous n'utilisez pas tous les électrons dont je dispose, vous pouvez simplement ignorer ce câblage.
Lecteur d'empreintes digitales: fil vert: D2 fil blanc: D3 fil noir: GND fil rouge: 5V
Joystick: 5V = 3.3V GND = GND X = A2 Y = A3 Commutateur = D4
Scanner de carte rfid: 3,3 V = 3,3 V rst = D9 GND = GND miso = D12 mosi = D11 sck = D13 sda = D10
écran lcd: 5V = 5V GND = GND sda = A4 sck = A5
Servo: fil rouge: 5V Fil marron: GND fil jaune: D6
REMARQUE: NE BRANCHEZ PAS LE SCANNER DE CARTES RFID SUR 5V. SI VOUS LE FAITES, IL VA BRISER !!!
Vous vous demandez peut-être pourquoi j'ai dit de brancher l'alimentation du joystick à 3,3 V alors qu'il est indiqué 5 V sur le côté. C'est parce que le servo, l'écran et le scanner d'empreintes digitales ont besoin de 5V. Si vous ajoutez le joystick à cela, l'électronique risque de ne pas fonctionner car tout a besoin de 5V. Le joystick fonctionnera toujours avec 3.3V. C'est juste que la valeur maximale ne sera pas 1023, ce sera ~ 670.
Étape 3: Téléchargement des bibliothèques
Dans ce projet, vous aurez besoin de 6 bibliothèques pour utiliser toute l'électronique. 1 pour le servo, 1 pour le capteur d'empreintes digitales, 2 pour le scanner de carte rfid et 2 pour l'écran. Le joystick n'a pas besoin de bibliothèque. Maintenant, qu'est-ce qu'une bibliothèque ? Il s'agit essentiellement d'un fichier contenant beaucoup de code que vous pouvez utiliser dans votre projet avec des commandes simples. Pour obtenir ces bibliothèques, vous devez vous rendre dans un endroit appelé GitHub. Si vous savez comment télécharger et décompresser des bibliothèques, accédez simplement aux liens ci-dessous pour les téléchargements. Si vous ne savez pas comment, vous pouvez accéder à mon instructable qui explique comment télécharger une bibliothèque à l'étape 3:
ou recherchez une vidéo youtube sur la façon de télécharger une bibliothèque arduino depuis GitHub
LIENS VERS LES BIBLIOTHÈQUES:
Servo
capteur d'empreintes digitales:
spi
capteur de carte rfid
bibliothèque d'écrans 1
bibliothèque d'écrans 2
Étape 4: Configuration du capteur d'empreintes digitales et du capteur de carte Rfid
Cette étape explique comment configurer le capteur d'empreintes digitales et le capteur de carte rfid. À moins que vous n'ayez déjà utilisé votre capteur d'empreintes digitales, vous devrez lui montrer à quoi ressemble votre empreinte digitale afin qu'il puisse l'enregistrer dans sa mémoire. Même si vous l'avez déjà utilisé, vous devriez probablement encore faire cette étape. Je vais vous dire comment le faire brièvement, mais si cela n'a pas de sens, accédez au même lien instructable à la dernière étape. Ça passe très bien. De base, il suffit d'ouvrir arduino ide. Allez dans fichier > exemples > capteur d'empreintes digitales adafruit > s'inscrire. Téléchargez le code sur arduino, ouvrez le moniteur série et suivez les étapes qu'il vous indique. Quand il vous dit de lui donner un numéro. Tapez 1#.
Maintenant pour la carte rfid, cette étape est assez simple. Ouvrez l'ide arduino. Allez dans fichier > exemples > mfrc522 > lire les données personnelles. Téléchargez sur arduino et ouvrez le moniteur série. Scannez la carte ou le trousseau que vous souhaitez utiliser et qui est fourni avec votre capteur. Ensuite, il vous donnera quelques informations. Recherchez l'ID de la carte ce sera 4 séries de 2 chiffres. Quelque chose comme ça: AB 45 2Y 45 mais votre code sera différent. Écrivez-le sur un morceau de papier. Vous en aurez encore besoin plus tard. Voilà pour cette étape.
Étape 5: LE CODE
Cela va être l'étape la plus difficile pour la plupart d'entre vous, mais c'est assez simple. Copiez et collez d'abord le code dans l'ide arduino ci-dessous. Deuxièmement, éditez les 2 sections où dit EDIT CODE. 1 section est pour le scanner de cartes, 1 est pour le joystick. Ces étapes ne peuvent pas être ignorées. Une fois cela fait, téléchargez le code sur arduino!
#include #include Empreinte digitale.h>
#comprendre
#comprendre
#comprendre
#comprendre
LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIF);
#définir RST_PIN 9
#définir SS_PIN 10
MFRC522 mfrc522(SS_PIN, RST_PIN);
SoftwareSerial mySerial(2, 3);
Adafruit_Fingerprint doigt = Adafruit_Fingerprint(&mySerial);
Servo servo;
caractère d1;
caractère d2;
char d3;
char d4;
void setup(){
attache.servo(6);
servo.write(170);
lcd.begin (20, 4);
Serial.begin(9600);
tandis que (!Série);
SPI.begin();
mfrc522. PCD_Init();
retard(4);
mfrc522. PCD_DumpVersionToSerial();
retard (100);
Serial.println("\n\nTest de détection de doigt Adafruit");
doigt.commencer (57600);
retard(5);
if (finger.verifyPassword()) {
Serial.println("Tous les systèmes fonctionnent, ");
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("Veuillez scanner votre doigt");
} autre {
Serial.println("ERREUR: capteur d'empreintes digitales introuvable !");
lcd.setCursor(0, 0);
lcd.print("ERREUR: empreinte digitale");
lcd.setCursor(1, 1);
lcd.print("capteur introuvable !");
while (1) { retard (1); }
}
finger.getTemplateCount();
Serial.print("Le capteur contient "); Serial.print(finger.templateCount); Serial.println(" modèles"); Serial.println("En attente d'un doigt valide…"); }
void(* resetFunc) (void) = 0;
boucle vide() {
getFingerprintIDez();
retard (50);
}
uint8_t getFingerprintID() {
uint8_t p = doigt.getImage();
commutateur (p) {
cas FINGERPRINT_OK:
Serial.println("Image prise");
Pause;
cas FINGERPRINT_NOFINGER:
Serial.println("Aucun doigt détecté");
retour p;
cas FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Erreur de communication");
retour p;
cas FINGERPRINT_IMAGEFAIL:
Serial.println("Erreur d'imagerie");
retour p;
défaut:
Serial.println("Erreur inconnue");
retour p;
}
p = doigt.image2Tz();
commutateur (p) {
cas FINGERPRINT_OK:
Serial.println("Image convertie");
Pause;
cas FINGERPRINT_IMAGEMESS:
Serial.println("Image trop en désordre");
retour p;
cas FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Erreur de communication");
retour p;
cas FINGERPRINT_FEATUREFAIL:
Serial.println("Impossible de trouver les fonctionnalités d'empreintes digitales");
retour p;
cas FINGERPRINT_INVALIDIMAGE:
Serial.println("Impossible de trouver les fonctionnalités d'empreintes digitales");
retour p;
défaut:
Serial.println("Erreur inconnue");
retour p;
}
p = doigt.fingerFastSearch();
si (p == EMPREINTE_DIGITALE_OK) {
Serial.println("A trouvé une correspondance d'impression !");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) { Serial.println("Erreur de communication");
retour p;
} else if (p == FINGERPRINT_NOTFOUND) {
Serial.println("N'a pas trouvé de correspondance");
retour p;
} autre {
Serial.println("Erreur inconnue");
retour p;
}
Serial.print("ID trouvé #"); Serial.print(finger.fingerID);
Serial.print(" avec confiance de "); Serial.println(finger.confidence);
retourner finger.fingerID;
}
int getFingerprintIDez() {
uint8_t p = doigt.getImage();
si (p != EMPREINTE_DIGITALE_OK) renvoie -1;
p = doigt.image2Tz();
si (p != EMPREINTE_DIGITALE_OK) renvoie -1;
p = doigt.fingerFastSearch();
si (p != EMPREINTE_DIGITALE_OK) renvoie -1;
Serial.print("ID trouvé #"); Serial.print(finger.fingerID);
Serial.print(" avec confiance de "); Serial.println(finger.confidence);
if(finger.fingerID == 1){
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("Doigt accepté, ");
lcd.setCursor(2, 0);
lcd.print("numérisez maintenant la carte…");
lcd.setCursor(0, 3);
lcd.print("===================>");
while(! mfrc522. PICC_IsNewCardPresent());
while(! mfrc522. PICC_ReadCardSerial());
if (mfrc522.uid.uidByte[0] == 0x92 && //========================EDIT CODE========= ==============
mfrc522.uid.uidByte[1] == 0xAB && //Prenez ce morceau de papier avec l'ID dessus, il y avait 4 séries de 2 chiffres
mfrc522.uid.uidByte[2] == 0x90 && //Regardez par le code, voyez où il est écrit 0x92, 0xAB, 0x90, 0x1c? Entrez chaque
mfrc522.uid.uidByte[3] == 0x1C) { //de la section à 2 chiffres après le 0x. Par exemple, la section de l'ID indique
lcd.clear(); //3E, puis entrez le 3E après le 0x pour faire 0x3E. Faites ceci pour chaque section
lcd.setCursor(3, 0);
lcd.print("Enfin, entrez");
lcd.setCursor(1, 1);
lcd.print("mot de passe du joystick");
while(analogRead(A2) >= 100 &&
lecture analogique(A2) <= 670 &&
lecture analogique(A3) >= 100 &&
lecture analogique(A3) <= 670){
}
lcd.setCursor(8, 4);
lcd.print("*"); if(analogRead(A2) <= 100){
d1 = L;
}
if(analogRead(A2) >= 670){
d1 = R;
}
if(analogRead(A3) <= 100){
d1 = U;
}
if(analogRead(A3) >= 670){
d1 = D;
}
retard (500);
while(analogRead(A2) >= 100 &&
lecture analogique(A2) <= 670 &&
lecture analogique(A3) >= 100 &&
lecture analogique(A3) <= 670){
}
lcd.print("*");
if(analogRead(A2) <= 100){
d2 = L;
}
if(analogRead(A2) >= 670){
d2 = R;
}
if(analogRead(A3) <= 100){
d2 = U;
}
if(analogRead(A3) >= 670){
d2 = D;
}
retard (500);
while(analogRead(A2) >= 100 &&
lecture analogique(A2) <= 670 &&
lecture analogique(A3) >= 100 &&
lecture analogique(A3) <= 670){
}
lcd.print("*");
if(analogRead(A2) <= 100){
d3 = L;
}
if(analogRead(A2) >= 670){
d3 = R;
}
if(analogRead(A3) <= 100){
d3 = U;
}
if(analogRead(A3) >= 670){
d3 = D;
}
retard (500);
while(analogRead(A2) >= 10 &&
lecture analogique(A2) <= 670 &&
lecture analogique(A3) >= 100 &&
lecture analogique(A3) <= 670){
}
lcd.print("*");
if(analogRead(A2) <= 100){
d4 = L;
}
if(analogRead(A2) >= 670){
d4 = R;
}
if(analogRead(A3) <= 100){
d4 = U;
}
if(analogRead(A3) >= 670){
d4 = D;
}
retard (500);
if(d1 == L && d2 == U && d3 == L && d4 == R){ //=================EDIT CODE====== =================
lcd.clear(); //Cette section est où vous pouvez modifier le mot de passe avec le joystick
lcd.setCursor(2, 0); //le mot de passe est défini à gauche, en haut à gauche, à droite. Si vous voulez changer
lcd.print("Accès accordé !"); //il, mettez un L pour la gauche, R pour la droite, U pour le haut ou D pour le bas dans l'un des
lcd.setCursor(2, 1); //4 sections avec une lettre après les signes ==.
lcd.print("Tiroir déverrouillé.");
lcd.setCursor(2, 2);
lcd.print("Une fois terminé, déplacez-vous");
lcd.setCursor(1, 3);
lcd.print("joystick pour reverrouiller");
servo.write(90);
while(analogRead(A2) >= 100 &&
lecture analogique(A2) <= 670 &&
lecture analogique(A3) >= 100 &&
analogiqueLecture(A3) <= 670);
servo.write(170);
lcd.setCursor(3, 0);
lcd.print("Tiroir verrouillé");
retard(3000);
resetFunc();
}autre{
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("ACCÈS REFUSÉ !!!");
lcd.setCursor(0, 2);
lcd.print("Redémarrage du système…");
retard(3000);
resetFunc();
}
}autre{
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("ACCÈS REFUSÉ !!!");
lcd.setCursor(0, 2);
lcd.print("Redémarrage du système…");
retard(3000);
resetFunc();
}
}autre{
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("ACCÈS REFUSÉ !!!");
lcd.setCursor(0, 2);
lcd.print("Redémarrage du système…");
retard(3000);
resetFunc();
}
retour finger.fingerID; }
Étape 6: Terminer
Une chose que j'ai oublié de vous dire, eh bien 2 choses, c'est que j'ai construit ça avant de prendre des photos, donc je ne pouvais pas vous montrer comment j'ai construit la boîte. L'autre est qu'il est recommandé de visser la partie servo sur la partie qui tourne. Si vous ne le faites pas, quelqu'un pourrait tirer le tiroir pendant qu'il est verrouillé et retirer la pièce. Mais avant de le visser, trouvez le bon endroit où le mettre car le servo tourne dans une certaine mesure. Ou vous pouvez simplement le modifier dans le code. Si certains appareils électroniques se comportent bizarrement, vous voudrez peut-être trouver un autre moyen d'obtenir 5V pour certains d'entre eux. J'ai remarqué que lorsque mon scanner d'empreintes digitales clignotait, l'écran clignotait légèrement avec lui et le servo faisait du bruit. Lorsque le servo bougeait, l'écran s'assombrissait. J'espère que le projet vous a plu ! Si vous avez des questions, laissez-les en commentaires. Je ne suis pas beaucoup sur instructables, mais je vais y répondre dès que je peux !
Conseillé:
Coffre au trésor lumineux : 4 étapes
Boîte au trésor lumineuse : il s'agit d'un projet que j'ai réalisé pour mon fils de 4 ans, qui a demandé une boîte spéciale pour garder et stocker de petits dinosaures, des bandes dessinées, des coquillages et des morceaux de bois et de papier aléatoires, alias "trésors". " Il s'agit essentiellement d'une simple boîte en bois avec un couvercle à charnière, m
Coffre englouti : 9 étapes (avec photos)
Sunken Chest : The Sunken Chest est un distributeur d'Halloween amusant qui fonctionne à l'aide d'une application et répond à des énigmes. L'idée de It est venue lors d'un défi lancé par ma présidente d'université où elle a demandé aux étudiants de concevoir un distributeur de bonbons pour Halloween cette année. L'inspiration
Coffre de téléphone : 5 étapes (avec photos)
Coffre du téléphone : Changement de : AlissahuangJe suis accro à mon téléphone, je ne peux pas me concentrer sur mes devoirs. Chaque jour, quand je rentre chez moi, je joue d'abord avec mon téléphone, puis vers 22 heures. J'ai commencé mes devoirs, ce qui est trop tard. Donc, chaque jour, je me couchais à 2 heures du matin, provoquant
Coffre à clés d'Angela : 5 étapes
Coffre-fort à clés d'Angela : Inspiré de : https://www.instructables.com/id/Key-Safe/Un coffre-fort à clés bien structuré pour ranger vos effets personnels. J'ai fait quelques ajustements en fonction de la version originale. En ajoutant 3 mots de passe supplémentaires, "A", "B", "C" et &
Ordinateur portable High-Tech Pine Needle Camo Painted: 5 étapes
Ordinateur portable peint High-Tech Pine Needle Camo: je venais de terminer la configuration de mon ancien ordinateur portable Toshiba avec Linux et je cherchais sur le site Instructable lorsque je suis tombé sur la publication de " murph38_99. Je ne cherchais vraiment pas une méthode pour peindre un pistolet avec, mais, j'ai eu une idée folle et