Table des matières:

Coffre-fort Arduino High Tech : 6 étapes
Coffre-fort Arduino High Tech : 6 étapes

Vidéo: Coffre-fort Arduino High Tech : 6 étapes

Vidéo: Coffre-fort Arduino High Tech : 6 étapes
Vidéo: DIY Ideas That Will Take Your Home To The Next Level ▶6 2024, Juillet
Anonim
Coffre-fort de haute technologie Arduino
Coffre-fort de haute technologie Arduino

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

Construire une boîte
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

Câblage !
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é: