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 Sans Clé Sécurisée Basée sur Arduino avec Écran LCD et Clavier 4×4

Composants et fournitures

Arduino UNO ×1
Plaque de boutons 4×4 compatible LED (SparkFun) ×1
Écran LCD standard 16×2 (blanc sur bleu, Adafruit) ×1
Relais (générique) ×1
Batterie 9V (générique) ×1
Potentiomètre mono-tour 10 kΩ ×1
Résistance 10 kΩ ×1

Applications et services en ligne

À propos du projet

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

Par Ali Hamza

Dans ce projet, nous allons réaliser un système de verrouillage de porte sans clé utilisant un clavier 4×4 pour saisir le code et une serrure DC pour ouvrir/fermer la porte. Un écran LCD 16×2 servira d'affichage.

Composants requis

Comment ça marche ?

Lorsque des touches sont pressées, elles sont comparées au code déjà stocké. Si le code saisi correspond au mot de passe initial stocké dans l'EEPROM (« 1234 »), la serrure s'ouvre. Sinon, « Accès refusé » s'affiche sur le LCD.

Si la touche « # » est pressée, le système demande le mot de passe actuel ; s'il correspond, il demande le nouveau mot de passe et le change.

Schéma de câblage

D'abord, connectez le clavier 4×4 à l'Arduino : les 6 premières broches du clavier aux broches A0–A5 de l'Arduino. Les 2 dernières broches du clavier aux broches numériques 3 et 2.

Ensuite, connectez le LCD à l'Arduino :

Enfin, connectez la serrure DC avec l'Arduino. La serrure fonctionne sur 7–12V, donc on ne peut pas la connecter directement. Il faut un relais et une batterie.

Connectez la broche de signal du relais à l'Arduino pin 10, et le VCC/GND de la serrure aux 5V/GND Arduino. De l'autre côté du relais : borne négative de la batterie sur le commun du relais, borne NO (normalement ouverte) sur un côté de la serrure. L'autre côté de la serrure au + de la batterie.

Serrure de Porte Sans Clé Sécurisée Basée sur Arduino avec Écran LCD et Clavier 4×4

Code Arduino pour serrure à clavier

Le mot de passe initial est 1234.

#include <Keypad.h>
#include <LiquidCrystal.h>
#include <EEPROM.h>

LiquidCrystal lcd(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;
const byte columns = 4;
char hexaKeys[rows][columns] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
byte row_pins[rows] = {A0, A1, A2, A3};
byte column_pins[columns] = {A4, A5, 3, 2};

Keypad keypad_key = Keypad(makeKeymap(hexaKeys), row_pins, column_pins, rows, columns);

void setup() {
  pinMode(relay_pin, OUTPUT);
  lcd.begin(16, 2);
  lcd.print(" DIYhacking.com");
  lcd.setCursor(0, 1);
  lcd.print("Serrure Electronique");
  delay(2000);
  lcd.clear();
  lcd.print("Entrez Mot de Passe");
  lcd.setCursor(0, 1);
  initialpassword();
}

void loop() {
  digitalWrite(relay_pin, HIGH);
  key_pressed = keypad_key.getKey();
  if(key_pressed == '#') change();
  
  if (key_pressed) {
    password[i++] = key_pressed;
    lcd.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))) {
      lcd.clear();
      lcd.print("Mot de Passe Accepte");
      digitalWrite(relay_pin, LOW);
      delay(2000);
      lcd.setCursor(0, 1);
      lcd.print("Appuyez # pour changer");
      delay(2000);
      lcd.clear();
      lcd.print("Entrez Mot de Passe:");
      lcd.setCursor(0, 1);
      i = 0;
    } else {
      digitalWrite(relay_pin, HIGH);
      lcd.clear();
      lcd.print("Mot de Passe Incorrect");
      lcd.setCursor(0, 1);
      lcd.print("Appuyez # pour Changer");
      delay(2000);
      lcd.clear();
      lcd.print("Entrez Mot de Passe");
      lcd.setCursor(0, 1);
      i = 0;
    }
  }
}

void change() {
  int j = 0;
  lcd.clear();
  lcd.print("Mot de Passe Actuel");
  lcd.setCursor(0, 1);
  while(j < 4) {
    char key = keypad_key.getKey();
    if(key) {
      new_password[j++] = key;
      lcd.print(key);
    }
    key = 0;
  }
  delay(500);
  if((strncmp(new_password, initial_password, 4))) {
    lcd.clear();
    lcd.print("Mot de Passe Incorrect");
    lcd.setCursor(0, 1);
    lcd.print("Reessayez");
    delay(1000);
  } else {
    j = 0;
    lcd.clear();
    lcd.print("Nouveau Mot de Passe:");
    lcd.setCursor(0, 1);
    while(j < 4) {
      char key = keypad_key.getKey();
      if(key) {
        initial_password[j] = key;
        lcd.print(key);
        EEPROM.write(j, key);
        j++;
      }
    }
    lcd.print("Mot de Passe Change");
    delay(1000);
  }
  lcd.clear();
  lcd.print("Entrez Mot de Passe");
  lcd.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

D'abord, on inclut les bibliothèques pour le clavier 4×4, le LCD, et le stockage du mot de passe. La bibliothèque EEPROM stocke le mot de passe (par défaut « 1234 »).

#include <Keypad.h>
#include <LiquidCrystal.h>
#include <EEPROM.h>

Dans la boucle, la touche pressée est stockée dans key_pressed et comparée. Si c'est « # », la fonction change() est appelée pour demander le nouveau mot de passe.

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

Les touches pressées sont stockées dans password et affichées sur le LCD. Puis comparées au mot de passe initial dans l'EEPROM. Si correspondance, la serrure s'ouvre et « Mot de passe accepté » s'affiche. Sinon, on redemande le code.

if (key_pressed) {
  password[i++] = key_pressed;
  lcd.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))) {
    lcd.clear();
    lcd.print("Mot de Passe Accepte");
    digitalWrite(relay_pin, LOW);
    delay(2000);

Si « # » est pressé, la fonction change() demande le mot de passe actuel. S'il est correct, elle demande le nouveau et le sauvegarde.

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

Mots-clés

Clavier 4×4, Arduino, Serrure DC, Verrouillage, Clavier, LCD, Serrure

Schémas

Utiliser un Arduino pour contrôler une serrure à solénoïde ouvrable par la bonne combinaison de touches.

Serrure de Porte Sans Clé Sécurisée Basée sur Arduino avec Écran LCD et Clavier 4×4

Processus de fabrication

  1. Construire un jeu gyroscopique temps réel avec Arduino Nano et capteur MPU-6050
  2. Système de pointage RFID fiable avec Arduino et Python (base de données phpMyAdmin)
  3. Projet capteur DHT11 température/humidité avec indicateurs LED et buzzer piézo
  4. Créer des animations et jeux sur LCD avec Arduino UNO
  5. Unopad : contrôleur MIDI Arduino fluide pour Ableton Live
  6. Enregistreur de Température et Humidité Arduino avec DHT11 et Shield Ethernet
  7. Capteur d'obstacle IR simple avec Arduino — LED IR + Photodiode
  8. Construire un Cube LED 4x4x4 avec Arduino Uno et 1Sheeld – Projet LED Interactif
  9. Compteur RPM Haute Vitesse Arduino – Algorithme « Single Shot » Novelty