MVONGO SERVICESMVONGO SERVICES
Retour aux cours Cours d'électronique · Intermédiaire

Arduino RFID Door Lock System with LCD Display and Servo Motor

Une serrure de porte intelligente : un lecteur RFID, un écran LCD, un servomoteur et des voyants pour contrôler qui peut entrer. Tout est piloté par un Arduino UNO.

Résumé du projet

Ce circuit est un système de serrure de porte basé sur la RFID utilisant un Arduino UNO. Le système comprend un lecteur RFID, un écran LCD, un servomoteur qui sert à verrouiller et déverrouiller, des LEDs pour indiquer l'état, et un buzzer pour signaler un accès non valide.

L'Arduino UNO contrôle tous les composants et traite les tags RFID pour déterminer si l'accès doit être autorisé ou refusé.

Déverrouillage

Par servomoteur

Verrouillage

Automatique

Sécurité

Accès contrôlé

Alerte

Buzzer + LED rouge

Schéma de câblage du Arduino RFID Door Lock System

Schéma de câblage : Arduino UNO — RFID-RC522 — LCD 16x2 I2C — Servo — LEDs — Buzzer.

Fonctionnement

Comment fonctionne la serrure ?

1. Verrouillée

Au repos, la porte est fermée. Le servo maintient la serrure en position fermée (0°).

2. Lecture du badge

Une personne présente son badge devant le lecteur RFID-RC522. Le module lit l'UID unique de la carte.

3. Vérification

L'Arduino UNO compare l'UID lu avec les tags autorisés en mémoire.

4. Accès autorisé ou refusé

Si le badge correspond : LED verte + déverrouillage par le servo. Sinon : LED rouge + buzzer pour alerter.

Liste des composants

De quoi as-tu besoin ?

Arduino UNO

Carte microcontrôleur basée sur le ATmega328P. C'est le cerveau du circuit : il contrôle tous les composants et traite les tags RFID pour autoriser ou refuser l'accès.

RFID-RC522

Module de lecteur RFID. Il détecte et lit les badges ou cartes RFID à proximité pour identifier la personne qui cherche à ouvrir la porte.

16x2 I2C LCD

Écran à cristaux liquides de 16 colonnes sur 2 lignes avec interface I2C (4 fils seulement). Il affiche l'état du système, par exemple "ACCÈS AUTORISÉ" ou "ACCÈS REFUSÉ".

Servo

Servomoteur qui bloque ou débloque la serrure. En tournant à une certaine position, il ouvre la porte ; en revenant, il la verrouille.

LED rouge

Indique un accès refusé. Si le badge n'est pas reconnu, la LED rouge s'allume (avec le buzzer).

LED bleue

LED d'état complémentaire, utilisée pour signaler le système en cours de lecture ou d'attente d'un badge.

LED verte

Indique un accès autorisé. Quand le bon badge est présenté, la LED verte s'allume et la porte se déverrouille.

Résistances 220 Ω

Protègent les LEDs en limitant le courant qui les traverse. Sans elles, les LEDs risquent de griller.

Buzzer

Avertisseur sonore. Il émet un son lors d'un accès refusé pour alerter qu'un badge non valide a été présenté.

Câblage

Branchements sur l'Arduino UNO

Broches de l'Arduino
D2

Résistance 220 Ω n°3 (LED verte) — broche 2

D3

Résistance 220 Ω n°2 (LED bleue) — broche 2

D4

Résistance 220 Ω n°1 (LED rouge) — broche 2

D5

Pin PIN (signal) du buzzer

D6

Broche pulse (signal) du servo

D9

RST du RFID-RC522

D10

SDA (CS) du RFID-RC522

D11

MOSI du RFID-RC522

D12

MISO du RFID-RC522

D13

SCK du RFID-RC522

A4

SDA du 16x2 I2C LCD

A5

SCL du 16x2 I2C LCD

3.3V

VCC (3.3 V) du RFID-RC522

5V

VCC du 16x2 I2C LCD et broche vcc du servo

GND

Cathodes de toutes les LEDs, GND du buzzer, GND du 16x2 I2C LCD, broche gnd du servo et GND du RFID-RC522

Les LEDs

LED rouge

Anode ( +) : Broche 1 de sa résistance 220 Ω · Cathode (−) : GND · Contrôlée par la broche D4 (via sa résistance 220 Ω).

LED bleue

Anode ( +) : Broche 1 de sa résistance 220 Ω · Cathode (−) : GND · Contrôlée par la broche D3 (via sa résistance 220 Ω).

LED verte

Anode ( +) : Broche 1 de sa résistance 220 Ω · Cathode (−) : GND · Contrôlée par la broche D2 (via sa résistance 220 Ω).

LED verte (D2)

Accès autorisé → porte déverrouillée.

LED rouge (D4)

Accès refusé → badge inconnu.

LED bleue (D3)

LED d'état du système.

Buzzer (D5)

Alerte sonore sur accès refusé.

Connexions détaillées composant par composant

Servo
gndGND de l'Arduino UNO
vcc5V de l'Arduino UNO
pulseD6
16x2 I2C LCD
GNDGND de l'Arduino UNO
VCC5V de l'Arduino UNO
SDAA4
SCLA5
RFID-RC522
VCC (3.3 V)3.3V de l'Arduino UNO
RSTD9
GNDGND de l'Arduino UNO
SCKD13
MISOD12
MOSID11
SDA (CS)D10
Buzzer
PIND5
GNDGND de l'Arduino UNO
Programmation

Le code Arduino

Voici un point de départ complet. Copie-le dans l'Arduino IDE, installe les bibliothèquesMFRC522,LiquidCrystal_I2C etServo, puis remplace tagAutorise par l'UID de ta carte.

#include <SPI.h>
#include <MFRC522.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>

#define RST_PIN 9
#define SS_PIN 10

#define LED_ROUGE 4
#define LED_BLEUE 3
#define LED_VERTE 2
#define BUZZER 5
#define SERVO_PIN 6

MFRC522 mfrc522(SS_PIN, RST_PIN);
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo serrure;

String tagAutorise = "A1B2C3D4"; // UID de ta carte autorisée

void setup() {
  Serial.begin(9600);
  SPI.begin();
  mfrc522.PCD_Init();

  pinMode(LED_ROUGE, OUTPUT);
  pinMode(LED_BLEUE, OUTPUT);
  pinMode(LED_VERTE, OUTPUT);
  pinMode(BUZZER, OUTPUT);

  serrure.attach(SERVO_PIN);
  serrure.write(0); // porte verrouillée

  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("Badgez pour");
  lcd.setCursor(0, 1);
  lcd.print("ouvrir la porte");
}

void loop() {
  if (!mfrc522.PICC_IsNewCardPresent()) return;
  if (!mfrc522.PICC_ReadCardSerial()) return;

  String uid = "";
  for (byte i = 0; i < mfrc522.uid.size; i++) {
    if (mfrc522.uid.uidByte[i] < 0x10) uid += "0";
    uid += String(mfrc522.uid.uidByte[i], HEX);
  }
  uid.toUpperCase();

  if (uid == tagAutorise) {
    // ACCÈS AUTORISÉ
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("ACCES AUTORISE");
    lcd.setCursor(0, 1);
    lcd.print("Bienvenue !");

    digitalWrite(LED_VERTE, HIGH);
    digitalWrite(LED_ROUGE, LOW);
    serrure.write(90); // déverrouille la porte
    delay(3000);
    serrure.write(0);
    digitalWrite(LED_VERTE, LOW);
  } else {
    // ACCÈS REFUSÉ
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("ACCES REFUSE");
    lcd.setCursor(0, 1);
    lcd.print("Badge inconnu");

    digitalWrite(LED_ROUGE, HIGH);
    digitalWrite(LED_VERTE, LOW);
    digitalWrite(BUZZER, HIGH);
    delay(1000);
    digitalWrite(BUZZER, LOW);
    digitalWrite(LED_ROUGE, LOW);
  }

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Badgez pour");
  lcd.setCursor(0, 1);
  lcd.print("ouvrir la porte");
}

Astuce sécurité : pour l'UID de ton tag, ouvre leMoniteur Série de l'Arduino IDE (9600 bauds) après avoir flashé le code, puis badgé ta carte pour lire la valeur à recopier.

Prêt à construire ta serrure RFID ?

Rassemble les composants, suis le schéma de câblage, téléverse le code et teste ton système d'accès sécurisé.