Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Serrure de porte à clavier avec code modifiable

Composants et fournitures

Arduino UNO
× 1
Matrice de clavier 4x4
× 1
Bouton poussoir générique
× 1
LCD i²c
× 1
Serrure solénoïde linéaire
× 1
MOSFET IRF510N
× 1
Relais 1 canal
× 1

Outils et machines nécessaires

Planche à pain, 170 broches
10 pc. Kit de fils de liaison, 5 cm de long

À propos de ce projet

Salut, et bienvenue dans ce tuto (oui c'est vieux mais classique), aujourd'hui je fais un projet de serrure de porte basé sur une carte Arduino, un clavier, un écran LCD i²c, et j'utiliserai pour la serrure un solénoïde et un relais, vous pouvez consulter mon tutoriel sur la serrure de porte à empreinte digitale où j'ai utilisé une serrure qui utilise un moteur à courant continu, donc cela dépend de votre système de serrure, vous devrez choisir un câblage, des codes et les adapter.

N.B :Pour un vrai projet, je ne recommande pas du tout d'utiliser un solénoïde, mais plutôt de pirater une serrure qui peut être ouverte à la fois par serrure électronique et mécanique et d'adapter votre projet pour cela.

Pièces

Donc, pour ce projet, nous aurons besoin de ces composants, ainsi que de quelques câbles de connexion et d'une alimentation de 12 V Désolé, je ne l'ai pas ajouté ici :

Le bouton poussoir est destiné à ouvrir le verrou de l'intérieur, vous pouvez le retirer si vous le souhaitez, la résistance est pour le rebond.

J'ai utilisé un clavier 4 × 4, vous pouvez utiliser 3 × 4, mais vous devrez modifier des éléments dans le code, par exemple pour confirmer que j'utilise 'A', vous pouvez le changer en '*' ou '#'.

Le solénoïde est alimenté par une alimentation externe 12V et piloté par le transistor MOSFET IRF510N.

Le transistor est utilisé comme un interrupteur et il est préférable d'utiliser un canal N, l'IRF510N est assez populaire lorsqu'il est utilisé avec un Arduino, lorsque vous appliquez une tension de 5V entre la porte et la source, le transistor devient comme un interrupteur fermé entre le Drain et la Source, et il n'a besoin d'aucune résistance comme les bipolaires.

Et s'il n'y a pas de tension appliquée, le transistor agit comme un interrupteur ouvert, et c'est ainsi que nous contrôlons le solénoïde.

Pour l'autre exemple, j'utilise un module relais à 1 canal, il fonctionne avec 3,3 V, et nous contrôlons son entrée comme contrôler le transistor, la seule différence est qu'ils sont inversés (nous verrons dans le code).

Organigramme de l'algorithme

Pour faciliter la compréhension, voici l'organigramme, il n'est pas complètement détaillé mais c'est un aperçu du code.

N.B :Vous pouvez utiliser le relais pour contrôler n'importe quelle serrure électrique jusqu'à 250VAC, vous pouvez également l'utiliser pour contrôler le solénoïde…

Les codes sont exactement les mêmes, la seule chose est que vous basculez entre (LOW et HIGH) pour ouvrir la serrure.

N'oubliez pas que la première fois, vous devez télécharger le code et modifier le code d'accès, puis décommentez certaines lignes (lisez le code pour les trouver (elles sont en cours de configuration)) et téléchargez à nouveau le code afin qu'il puisse lire le code d'accès à partir de l'EEPROM. C'EST FAIT UNE SEULE FOIS .

Vous pouvez également modifier la longueur du code, j'ai d'abord fait quatre chiffres, vous pouvez le modifier par rapport au code par défaut, car j'ai utilisé dans le code la "taille de (code)" au lieu de "4". Vous ne pouvez pas changer un code à 4 chiffres en un code à 6 chiffres, modifiez d'abord le code d'accès initial à partir de la source du code.

Tester

Vous trouverez le test en images ci-dessous, parcourez-les

Bon ça a été le test du projet, c'est pareil pour le solénoïde ou le relais, et le bouton poussoir s'ouvre de l'intérieur si tu veux ou tu peux l'enlever.

J'espère que c'est utile et si vous avez un problème ou une question, laissez un commentaire.

Code

  • Keypad_doorlock_solenoid.ino
  • Keypad_doorlock_relay.ino
Keypad_doorlock_solenoid.inoArduino
N'oubliez pas de télécharger d'abord le code puis de décommenter les lignes 62 à 64 et de re-télécharger, c'est fait une seule fois.
/* Ce code fonctionne avec 4x4 Keypad Matrix, LCD ic, transistor IRF510N et un bouton poussoir une serrure électromagnétique que vous pouvez ouvrir soit avec le code correct * soit par le bouton poussoir de l'intérieur * Le code peut être modifié directement par le clavier et ne nécessite pas de télécharger à nouveau le code * Le code est stocké dans l'EEPROM * Reportez-vous à www.surtrtech.com pour plus de détails */#include #include #include #define Solenoid 11 //En fait la Gate du transistor qui contrôle le solénoïde#define O_Button 10 //Push Button #define I2C_ADDR 0x27 //Adresse I2C, vous devez d'abord utiliser le code pour scanner l'adresse (0x27) ici#define BACKLIGHT_PIN 3 // Déclaration des broches LCD#define En_pin 2#define Rw_pin 1#define Rs_pin 0#define D4_pin 4#define D5_pin 5#define D6_pin 6#define D7_pin 7const byte numRows=4; //nombre de lignes sur le clavierconst byte numCols=4; //nombre de colonnes sur le keymap du clavier[numRows][numCols]={{'1', '2', '3', 'A'}, {'4', '5', '6', 'B '}, {'7', '8', '9', 'C'},{'*', '0', '#', 'D'}};touche char enfoncée ; //L'endroit où les clés sont stockées change très souventchar code[]={'6','6','0','1'}; //Le code par défaut, vous pouvez le changer ou en faire un 'n' chiffres onechar code_buff1[sizeof(code)]; //Où la nouvelle clé est stockéechar code_buff2[sizeof(code)] ; //Où la nouvelle clé est à nouveau stockée afin qu'elle soit comparée à la précédenteshort a=0,i=0,s=0,j=0; //Variables utilisées laterbyte rowPins[numRows] ={9,8,7,6}; //Lignes 0 à 3 //si vous modifiez vos broches, vous devez modifier cet octet colPins[numCols]={5,4,3,2} ; //Colonnes 0 à 3LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);Keypad myKeypad=Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols); .commencer (16,2) ; lcd.setBacklightPin(BACKLIGHT_PIN,POSITIF); lcd.setBacklight(HIGH); // Rétroéclairage lcd.home (); lcd.print("Veille"); //Ce qui est écrit sur l'écran LCD, vous pouvez changer pinMode(Solenoid,OUTPUT); pinMode(O_Button, INPUT); // for(i=0; i 
Keypad_doorlock_relay.inoArduino
N'oubliez pas de télécharger le code d'abord, puis de décommenter les lignes 62 à 64 et de recharger, c'est fait une seule fois. contrôler une serrure que vous pouvez ouvrir soit avec le code correct * soit par le bouton poussoir de l'intérieur * Le code peut être modifié directement par le clavier et ne nécessite pas de télécharger à nouveau le code * Le code est stocké dans l'EEPROM * Consultez www.surtrtech.com pour plus de détails */#include #include #include #define Relay 11 //Contrôle le Relay#define O_Button 10 //Push Button#define I2C_ADDR 0x27 //I2C adresse, vous devez d'abord utiliser le code pour scanner l'adresse (0x27) ici#define BACKLIGHT_PIN 3 // Déclaration des broches LCD#define En_pin 2#define Rw_pin 1#define Rs_pin 0#define D4_pin 4#define D5_pin 5#define D6_pin 6# définir D7_pin 7const octet numRows=4 ; //nombre de lignes sur le clavierconst byte numCols=4; //nombre de colonnes sur le keymap du clavier[numRows][numCols]={{'1', '2', '3', 'A'}, {'4', '5', '6', 'B '}, {'7', '8', '9', 'C'},{'*', '0', '#', 'D'}};touche char enfoncée ; //L'endroit où les clés sont stockées change très souventchar code[]={'6','6','0','1'}; //Le code par défaut, vous pouvez le changer ou en faire un 'n' chiffres onechar code_buff1[sizeof(code)]; //Où la nouvelle clé est stockéechar code_buff2[sizeof(code)] ; //Où la nouvelle clé est à nouveau stockée afin qu'elle soit comparée à la précédenteshort a=0,i=0,s=0,j=0; //Variables utilisées laterbyte rowPins[numRows] ={9,8,7,6}; //Lignes 0 à 3 //si vous modifiez vos broches, vous devez modifier cet octet colPins[numCols]={5,4,3,2} ; //Colonnes 0 à 3LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);Keypad myKeypad=Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols); .commencer (16,2) ; lcd.setBacklightPin(BACKLIGHT_PIN,POSITIF); lcd.setBacklight(HIGH); // Rétroéclairage lcd.home (); lcd.print("Veille"); //Ce qui est écrit sur l'écran LCD, vous pouvez changer pinMode(Relay,OUTPUT); pinMode(O_Button, INPUT); // for(i=0; i

Schémas


Processus de fabrication

  1. Coffre bancaire
  2. Créer une porte de bureau à verrouillage automatique avec capteur de proximité pour smartphone
  3. Capteur de température multiple
  4. MotionSense
  5. Sécurité incendie des imprimantes 3D
  6. Serrure de porte basée sur un mot de passe
  7. Jauge IoT avec Arduino, Yaler et IFTTT
  8. Lévitation électromagnétique répulsive Arduino
  9. CoroFence - Détecteur thermique🖖