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 : Arduino UNO — RFID-RC522 — LCD 16x2 I2C — Servo — LEDs — Buzzer.
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.
De quoi as-tu besoin ?
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.
Module de lecteur RFID. Il détecte et lit les badges ou cartes RFID à proximité pour identifier la personne qui cherche à ouvrir la porte.
É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É".
Servomoteur qui bloque ou débloque la serrure. En tournant à une certaine position, il ouvre la porte ; en revenant, il la verrouille.
Indique un accès refusé. Si le badge n'est pas reconnu, la LED rouge s'allume (avec le buzzer).
LED d'état complémentaire, utilisée pour signaler le système en cours de lecture ou d'attente d'un badge.
Indique un accès autorisé. Quand le bon badge est présenté, la LED verte s'allume et la porte se déverrouille.
Protègent les LEDs en limitant le courant qui les traverse. Sans elles, les LEDs risquent de griller.
Avertisseur sonore. Il émet un son lors d'un accès refusé pour alerter qu'un badge non valide a été présenté.
Branchements sur l'Arduino UNO
Résistance 220 Ω n°3 (LED verte) — broche 2
Résistance 220 Ω n°2 (LED bleue) — broche 2
Résistance 220 Ω n°1 (LED rouge) — broche 2
Pin PIN (signal) du buzzer
Broche pulse (signal) du servo
RST du RFID-RC522
SDA (CS) du RFID-RC522
MOSI du RFID-RC522
MISO du RFID-RC522
SCK du RFID-RC522
SDA du 16x2 I2C LCD
SCL du 16x2 I2C LCD
VCC (3.3 V) du RFID-RC522
VCC du 16x2 I2C LCD et broche vcc du servo
Cathodes de toutes les LEDs, GND du buzzer, GND du 16x2 I2C LCD, broche gnd du servo et GND du RFID-RC522
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
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é.
