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

Système de verrouillage de porte sans clé Arduino avec clavier et écran LCD

Composants et fournitures

Arduino UNO
× 1
SparkFun Button Pad 4x4 - Compatible LED
× 1
Adafruit Standard LCD - 16x2 Blanc sur Bleu
× 1
Relais (générique)
× 1
Batterie 9V (générique)
× 1
Potentiomètre à un tour - 10k ohms
× 1
Résistance 10k ohm
× 1

Applications et services en ligne

Arduino IDE

À propos de ce projet

Système de verrouillage de porte sans clé Arduino avec clavier et écran LCD

  0

0

Par Ali Hamza

Dans ce projet, nous allons créer un système de serrure de porte sans clé qui utilise un clavier 4X4 pour entrer les clés et une serrure CC pour ouvrir ou fermer la porte. Un écran LCD 16X2 sera utilisé pour l'affichage.

Composants requis

Les composants requis pour ce projet sont les suivants

  • Arduino
  • Clavier 4X4
  • LCD
  • Verrou DC
  • Relais
  • Batterie 9 V
  • potentiomètre 10k
  • Résistance de 220 ohms

Comment ça marche ?

Chaque fois que les touches sont enfoncées, elles sont mises en correspondance avec les touches déjà stockées. Si les touches enfoncées correspondent au mot de passe initial stocké dans l'EEPROM qui est « 1234 », alors la serrure s'ouvrira. Si le mot de passe ne correspond pas, il imprimera « accès refusé » sur l'écran LCD.

Si vous appuyez sur la touche « # », il vous demandera d'entrer le mot de passe actuel et s'il correspond, il vous demandera d'entrer le nouveau mot de passe et le mot de passe sera modifié.

Schéma de circuit

Tout d'abord, connectez le clavier 4X4 à l'Arduino ; connectez les six premières broches du clavier 4X4 aux broches A0 et A5 de l'Arduino. Connectez ensuite les deux dernières broches du module clavier 4X4 aux broches numériques 3 et 2 de l'Arduino.

Après cela, connectez l'écran LCD à l'Arduino. Les connexions pour connecter l'écran LCD à l'Arduino sont les suivantes

  • Connectez la broche 1 sur l'écran LCD, qui est la broche VSS, à GND sur l'Arduino
  • Connectez la broche 2, qui est la broche VDD, à la broche 5V de l'Arduino
  • Connectez la broche 3, qui est le V0, au milieu du potentiomètre 10k et connectez les deux autres broches du potentiomètre à 5V et GND sur l'Arduino. Cette broche sert à régler le contraste de l'écran LCD.
  • Connectez la broche 4, qui est la broche RS, à la broche 7 de l'Arduino
  • Connectez la broche 5, qui est la broche R/W, à la broche GND sur l'Arduino
  • Connectez la broche 6, qui est la broche Activer, à la broche 6 sur l'Arduino
  • Connectez les broches 11, 12, 13 et 14 qui sont les broches de données, aux broches 5, 4, 3 et 2 sur l'Arduino
  • Connectez la broche 15, qui est la broche de rétroéclairage de l'écran LCD, à 5 V sur l'Arduino via la résistance de 220 ohms
  • Connectez la broche 16 sur l'Arduino, qui est la broche négative du rétroéclairage, à GND sur l'Arduino

Enfin, nous allons connecter le verrou DC avec l'Arduino. Le Lock fonctionne sur une tension de 7 à 12V, nous ne pouvons donc pas le connecter directement à l'Arduino. Pour le connecter à l'Arduino, nous aurons besoin d'un relais et d'une batterie.

Connectez la broche de signal du relais à la broche 10 sur l'Arduino et le VCC et GND de la serrure à 5V et GND sur l'Arduino. Ensuite, à l'autre extrémité du relais, connectez le négatif de la batterie au commun du relais et le NO (normalement ouvert) du relais d'un côté de la serrure. Connectez ensuite l'autre côté de la serrure à la borne positive de la batterie.

Code de verrouillage du clavier Arduino

Le mot de passe initial est 1234.

#include #include#includeLiquidCrystal liquid_crystal_display(9,8,7,6,5,4,);char password[4] ; char initial_password[4],new_password[4];int i=0;int relay_pin =10;char key_pressed=0;const byte rows =4; colonnes d'octets const =4 ; char hexaKeys[lignes][colonnes] ={{'1','2','3','A'},{'4','5','6','B'},{'7' ,'8','9','C'},{'*','0','#','D'}};byte row_pins[rows] ={A0,A1,A2,A3};byte colonne_pins[colonnes] ={A4,A5,3,2} ; Clavier keyboard_key =Keypad( makeKeymap(hexaKeys), row_pins, column_pins, rows, column);void setup(){  pinMode(relay_pin, OUTPUT); liquid_crystal_display.begin (16,2) ; liquid_crystal_display.print(" DIYhacking.com "); liquid_crystal_display.setCursor(0,1) ; liquid_crystal_display.print("Serrure électronique "); retard (2000); liquid_crystal_display.clear(); liquid_crystal_display.print("Entrez le mot de passe"); liquid_crystal_display.setCursor(0,1) ; initialpassword();}void loop(){  digitalWrite(relay_pin, HIGH); key_pressed =key_key.getKey(); if(key_pressed=='#')    change(); if (key_pressed)  {    password[i++]=key_pressed ; liquid_crystal_display.print(key_pressed); }  if(i==4)  {    delay(200); for(int j=0;j<4;j++)      initial_password[j]=EEPROM.read(j); if(!(strncmp(password, initial_password,4)))    {      liquid_crystal_display.clear(); liquid_crystal_display.print("Pass Accepted"); digitalWrite(relay_pin, LOW); retard (2000); liquid_crystal_display.setCursor(0,1) ; liquid_crystal_display.print("Pres # pour changer"); retard (2000); liquid_crystal_display.clear(); liquid_crystal_display.print("Entrez le mot de passe :"); liquid_crystal_display.setCursor(0,1) ; i=0 ; }    else    {      digitalWrite(relay_pin, HIGH); liquid_crystal_display.clear(); liquid_crystal_display.print("Mauvais mot de passe"); liquid_crystal_display.setCursor(0,1) ; liquid_crystal_display.print("Pres # to Change"); retard (2000); liquid_crystal_display.clear(); liquid_crystal_display.print("Entrez le mot de passe"); liquid_crystal_display.setCursor(0,1) ; i=0 ; }  }}changement nul(){  int j=0 ; liquid_crystal_display.clear(); liquid_crystal_display.print("Mot de passe actuel"); liquid_crystal_display.setCursor(0,1) ; while(j<4)  {    char key=keypad_key.getKey(); if(clé)    {      new_password[j++]=clé ; liquid_crystal_display.print(clé); }    clé=0 ; }  retard(500); if((strncmp(new_password, initial_password, 4)))  {    liquid_crystal_display.clear(); liquid_crystal_display.print("Mauvais mot de passe"); liquid_crystal_display.setCursor(0,1) ; liquid_crystal_display.print("Réessayez"); retard(1000); }  else  {    j=0 ; liquid_crystal_display.clear(); liquid_crystal_display.print("Nouveau mot de passe :"); liquid_crystal_display.setCursor(0,1) ; while(j<4)    {      char key=keypad_key.getKey(); if(key)      {        initial_password[j]=key ; liquid_crystal_display.print(clé); EEPROM.write(j,clé); j++; }    }    liquid_crystal_display.print("Pass Changed"); retard(1000); }  liquid_crystal_display.clear(); liquid_crystal_display.print("Entrez le mot de passe"); liquid_crystal_display.setCursor(0,1) ; key_pressed=0;}void initialpassword(){  for(int j=0;j<4;j++)    EEPROM.write(j, j+49); for(int j=0;j<4;j++)    initial_password[j]=EEPROM.read(j);}  

Explication du code

Tout d'abord, nous inclurons les bibliothèques pour le clavier 4X4, l'écran LCD et une bibliothèque pour stocker le mot de passe. La bibliothèque EEPROM est utilisée pour stocker le mot de passe. Le mot de passe par défaut qui y est stocké est « 1234 ».

#include #include#include  

Dans la fonction de boucle, la touche enfoncée sera stockée dans le « key_pressed ’ et elle sera comparée aux autres clés. Si la touche enfoncée est '#', alors la fonction de changement sera appelée et elle demandera le nouveau mot de passe.

key_pressed =keyboard_key.getKey(); if(key_pressed=='#')    change(); 

Les touches enfoncées sont stockées dans le « mot de passe ’ et ceux-ci sont affichés sur l'écran LCD lorsque les touches sont enfoncées. Ensuite, ces clés seront associées au mot de passe initial stocké dans l'EEPROM. Si les touches qui ont été enfoncées correspondent au mot de passe initial, la serrure s'ouvrira et « Pass accepté » sera imprimé sur l'écran LCD. Si le mot de passe ne correspond pas, il vous demandera de saisir à nouveau le mot de passe.

if (key_pressed)  {    password[i++]=key_pressed ; liquid_crystal_display.print(key_pressed); }if(i==4)  {    delay(200); for(int j=0;j<4;j++)      initial_password[j]=EEPROM.read(j); if(!(strncmp(password, initial_password,4)))    {      liquid_crystal_display.clear(); liquid_crystal_display.print("Pass Accepted"); digitalWrite(relay_pin, LOW); retard (2000); 

Si la touche '#' est enfoncée, elle appellera le 'change() ' une fonction. Dans la fonction de modification, il vous demandera d'entrer le mot de passe actuel. Si le mot de passe actuel est correct, il vous demandera d'entrer le nouveau mot de passe. Lors de la saisie du nouveau mot de passe, le mot de passe sera modifié.

void change(){  int j=0 ; liquid_crystal_display.clear(); liquid_crystal_display.print("Mot de passe actuel"); liquid_crystal_display.setCursor(0,1) ; while(j<4)  {    char key=keypad_key.getKey(); if(clé)    {      new_password[j++]=clé ; liquid_crystal_display.print(clé); }    clé=0 ; }  delay(500); 

Mots clés : Clavier 4x4, Arduino, Verrou DC, Verrouillage, Clavier, lcd, Verrou

Publications recommandées

Réveil Arduino utilisant une horloge en temps réel et un écran LCD

Comment construire un robot à équilibrage automatique Arduino

Utilisez un Arduino et un solénoïde pour faire une danse du grille-pain

Faire un système d'irrigation automatique bricolage avec Arduino

Code

  • Extrait de code n° 1
  • Extrait de code 2
  • Extrait de code 3
  • Extrait de code n° 4
  • Extrait de code n°5
Extrait de code n°1Texte brut
#include #include#includeLiquidCrystal liquid_crystal_display(9,8,7,6,5,4,);char password[4];char initial_password[ 4],new_password[4];int i=0;int relay_pin =10;char key_pressed=0;const byte rows =4; colonnes d'octets const =4 ; char hexaKeys[lignes][colonnes] ={{'1','2','3','A'},{'4','5','6','B'},{'7' ,'8','9','C'},{'*','0','#','D'}};byte row_pins[rows] ={A0,A1,A2,A3};byte colonne_pins[colonnes] ={A4,A5,3,2} ; Clavier keyboard_key =Keypad( makeKeymap(hexaKeys), row_pins, column_pins, rows, column);void setup(){  pinMode(relay_pin, OUTPUT); liquid_crystal_display.begin (16,2) ; liquid_crystal_display.print(" DIYhacking.com "); liquid_crystal_display.setCursor(0,1) ; liquid_crystal_display.print("Serrure électronique "); retard (2000); liquid_crystal_display.clear(); liquid_crystal_display.print("Entrez le mot de passe"); liquid_crystal_display.setCursor(0,1) ; initialpassword();}void loop(){  digitalWrite(relay_pin, HIGH); key_pressed =key_key.getKey(); if(key_pressed=='#')    change(); if (key_pressed)  {    password[i++]=key_pressed ; liquid_crystal_display.print(key_pressed); }  if(i==4)  {    delay(200); for(int j=0;j<4;j++)      initial_password[j]=EEPROM.read(j); if(!(strncmp(password, initial_password,4)))    {      liquid_crystal_display.clear(); liquid_crystal_display.print("Pass Accepted"); digitalWrite(relay_pin, LOW); retard (2000); liquid_crystal_display.setCursor(0,1) ; liquid_crystal_display.print("Pres # pour changer"); retard (2000); liquid_crystal_display.clear(); liquid_crystal_display.print("Entrez le mot de passe :"); liquid_crystal_display.setCursor(0,1) ; i=0 ; }    else    {      digitalWrite(relay_pin, HIGH); liquid_crystal_display.clear(); liquid_crystal_display.print("Mauvais mot de passe"); liquid_crystal_display.setCursor(0,1) ; liquid_crystal_display.print("Pres # to Change"); retard (2000); liquid_crystal_display.clear(); liquid_crystal_display.print("Entrez le mot de passe"); liquid_crystal_display.setCursor(0,1) ; i=0 ; }  }}changement nul(){  int j=0 ; liquid_crystal_display.clear(); liquid_crystal_display.print("Mot de passe actuel"); liquid_crystal_display.setCursor(0,1) ; while(j<4)  {    char key=keypad_key.getKey(); if(clé)    {      new_password[j++]=clé ; liquid_crystal_display.print(clé); }    clé=0 ; }  retard(500); if((strncmp(new_password, initial_password, 4)))  {    liquid_crystal_display.clear(); liquid_crystal_display.print("Mauvais mot de passe"); liquid_crystal_display.setCursor(0,1) ; liquid_crystal_display.print("Réessayez"); retard(1000); }  else  {    j=0 ; liquid_crystal_display.clear(); liquid_crystal_display.print("Nouveau mot de passe :"); liquid_crystal_display.setCursor(0,1) ; while(j<4)    {      char key=keypad_key.getKey(); if(key)      {        initial_password[j]=key ; liquid_crystal_display.print(clé); EEPROM.write(j,clé); j++; }    }    liquid_crystal_display.print("Pass Changed"); retard(1000); }  liquid_crystal_display.clear(); liquid_crystal_display.print("Entrez le mot de passe"); liquid_crystal_display.setCursor(0,1) ; key_pressed=0;}void initialpassword(){  for(int j=0;j<4;j++)    EEPROM.write(j, j+49); for(int j=0;j<4;j++)    initial_password[j]=EEPROM.read(j);}
Extrait de code #2Texte brut
#include #include#include
Extrait de code n°3Texte brut
key_pressed =keyboard_key.getKey(); if(key_pressed=='#')    change();
Extrait de code n°4Texte brut
if (key_pressed)  {    password[i++]=key_pressed ; liquid_crystal_display.print(key_pressed); }if(i==4)  {    delay(200); for(int j=0;j<4;j++)      initial_password[j]=EEPROM.read(j); if(!(strncmp(password, initial_password,4)))    {      liquid_crystal_display.clear(); liquid_crystal_display.print("Pass Accepted"); digitalWrite(relay_pin, LOW); retard (2000);
Extrait de code n°5Texte brut
changement nul (){  int j=0 ; liquid_crystal_display.clear(); liquid_crystal_display.print("Mot de passe actuel"); liquid_crystal_display.setCursor(0,1) ; while(j<4)  {    char key=keypad_key.getKey(); if(clé)    {      new_password[j++]=clé ; liquid_crystal_display.print(clé); }    clé=0 ; }  retard (500 );

Schémas

Utilisez un Arduino pour contrôler une serrure de porte à solénoïde qui peut être ouverte avec la bonne combinaison de touches.

Processus de fabrication

  1. Jeu de gyroscope Arduino avec MPU-6050
  2. Système de présence utilisant Arduino et RFID avec Python
  3. Capteur DHT11 avec LED et haut-parleur piézo
  4. Animation LCD et jeux
  5. Unopad - Contrôleur MIDI Arduino avec Ableton
  6. Enregistreur de données de température et d'humidité
  7. Capteur d'obstacles simple avec Arduino
  8. cube LED 4x4x4 avec Arduino Uno et 1sheeld
  9. Compteur RPM basé sur Arduino avec un nouvel algorithme plus rapide