Un système de contrôle d'accès est un dispositif permettant de gérer et restreindre l’entrée à un espace physique (bâtiments, bureaux, maisons) ou numérique (réseaux, ordinateurs). Il assure que seules les personnes autorisées peuvent accéder à une zone ou une ressource.
Types de Systèmes de Contrôle d’Accès
1- Contrôle d’Accès Physique
Permet de réguler l’entrée dans des bâtiments, des salles sécurisées, des zones restreintes.
Utilisé dans les entreprises, hôtels, banques, parkings.
Exemples :
Cartes RFID / Badges
Claviers à codes PIN
Systèmes biométriques (empreintes digitales, reconnaissance faciale, iris)
Serrures connectées et Bluetooth
2- Contrôle d’Accès Logique
Restreint l’accès aux données numériques et aux systèmes informatiques.
Utilisé pour protéger les informations sensibles dans les entreprises et administrations.
Exemples :
Mots de passe et authentification multi-facteurs (MFA)
Cartes à puce et certificats numériques
Systèmes biométriques pour connexion aux ordinateurs
Un système de contrôle d'accès RFID permet de restreindre l'entrée d'un lieu en utilisant des cartes ou badges RFID. Ce projet basé sur Arduino utilise le module RFID-RC522, un afficheur LCD I2C, un buzzer et un module LED RGB pour fournir un accès sécurisé avec retour visuel et sonore.
Fonctionnement détaillé
1- Mise sous tension et affichage initial
- Lorsqu’on allume le système, l’Arduino initialise tous les composants (RFID, LCD, Buzzer, LED).
- Le message "Système prêt, scannez votre carte" s'affiche sur l’écran LCD.
- La LED RGB est éteinte en attente d’un scan.
2- Détection d’une carte RFID
- L’utilisateur approche une carte ou un badge RFID du lecteur RFID-RC522.
- Le module RFID lit l’UID de la carte et envoie cette donnée à l’Arduino.
- L’UID est converti en texte et affiché brièvement sur le LCD.
- L’Arduino compare l’UID lu avec une liste d’UID pré-enregistrés dans le programme.
- Si l’UID est dans la liste (Utilisateur autorisé) : Accès accordé
Si l’UID est inconnu (Utilisateur non autorisé) :
4- Réinitialisation et attente
Après quelques secondes, le système revient à l’état initial et attend une nouvelle carte.
Arduino UNO
C'est le cerveau du système. Il gère la communication entre le module RFID, l’afficheur LCD, le buzzer et la LED RGB. Il compare l'UID de la carte scannée avec une base de données enregistrée pour autoriser ou refuser l’accès.
Module RFID-RC522
Ce module utilise la technologie Radio Frequency Identification (RFID) pour lire l’UID des cartes RFID. Il fonctionne avec une fréquence de 13.56 MHz et communique avec l’Arduino via le protocole SPI.
Carte ou badge RFID
C'est un identifiant unique (UID) sous forme de carte ou de badge. Lorsqu'il est présenté devant le lecteur RFID, l’UID est lu et comparé à une liste d’UID enregistrés.
Afficheur LCD I2C (16x2 ou 20x4)
Cet écran affiche des messages comme "Scannez votre carte", "Accès autorisé" ou "Accès refusé". L'interface I2C permet une connexion simplifiée avec seulement deux fils (SDA et SCL).
Buzzer
Il fournit un feedback sonore : un bip long signale un accès refusé.
Module LED RGB
Le module LED RGB indique visuellement l’état du contrôle d’accès :
Connexion du module RFID-RC522 à l'Arduino
RFID-RC522 | Arduino UNO | Description |
VCC | 3.3V | Power supply |
GND | GND | Ground |
SDA (SS) | Pin 10 | Slave Select (SS) |
SCK | Pin 13 | SPI Clock (SCK) |
MOSI | Pin 11 | Master Out Slave In (MOSI) |
MISO | Pin 12 | Master In Slave Out (MISO) |
RST | Pin 9 | Reset |
Connexion de l'afficheur LCD I2C à l'Arduino
LCD I2C Display Pin | Arduino Pin |
GND | GND |
VCC | 5V |
SDA | A4 |
SCL | A5 |
Connexion du Buzzer à l'Arduino
Buzzer pin | Arduino pin |
(-) pin | GND |
(+) pin | D4 |
Connexion du module RGB LED à l'Arduino
LED RGB pin | Arduino pin |
Red pin | D2 |
Green pin | D3 |
GND | GND |
Voici un programme complet pour un système de contrôle d'accès RFID utilisant un Arduino, un module RFID-RC522, un écran LCD I2C, un buzzer, et une LED RGB.
Ce code utilise les bibliothèques MFRC522 et LiquidCrystal_I2C. Assure-toi de les installer dans l'IDE Arduino en suivant ces étapes :
Allez dans Sketch > Inclure une bibliothèque > Gérer les bibliothèques et recherchez MFRC522 et LiquidCrystal_I2C.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
#include <LiquidCrystal_I2C.h> #include <SPI.h> #include <MFRC522.h> // RFID module pins #define SS_PIN 10 #define RST_PIN 9 // Initialize LCD (40x4) with I2C address 0x27 LiquidCrystal_I2C lcd(0x27, 40, 4); MFRC522 rfid(SS_PIN, RST_PIN); const int PinRed = 2; // for Red color of RGB LED const int PinGreen = 3; // for Green color of RGB LED const int buzzerPin = 4; // for bool cardDetected = false; // Track card status void setup() { Serial.begin(9600); lcd.init(); lcd.backlight(); SPI.begin(); rfid.PCD_Init(); lcd.setCursor(1, 1); lcd.print("Scan your card"); pinMode(buzzerPin, OUTPUT); pinMode(PinRed, OUTPUT); pinMode(PinGreen, OUTPUT); digitalWrite(PinRed, LOW); // Eteindre la couleur rouge du LEDRGB digitalWrite(PinGreen, LOW); // Eteindre la couleur rouge du LEDRGB } void loop() { if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) { if (cardDetected) { // Only update LCD if the message changes lcd.clear(); lcd.setCursor(1, 1); lcd.print("Scan your card"); cardDetected = false; // Reset status } return; } cardDetected = true; // Read and display UID String uid = ""; for (byte i = 0; i < rfid.uid.size; i++) { Serial.print(rfid.uid.uidByte[i], HEX); uid += String(rfid.uid.uidByte[i], HEX); if (i < rfid.uid.size - 1) { uid += ":"; } } lcd.clear(); lcd.setCursor(1, 1); if (uid=="a9:f0:e8:b8") { // If the UID matches a pre-authorized list lcd.print("Authorized access"); // Green LED ON digitalWrite(PinGreen, HIGH); } else { // If the UID is not recognized lcd.print("Access denied"); // warning beep with Buzzer digitalWrite(buzzerPin, HIGH); // // Red LED ON digitalWrite(PinRed, HIGH); } delay(5000); // Stop the Buzzer digitalWrite(buzzerPin, LOW); // Red LED OFF, Green LED OFF digitalWrite(PinRed, LOW); digitalWrite(PinGreen, LOW); rfid.PICC_HaltA(); rfid.PCD_StopCrypto1(); } |
Explication du code :
1- Lecture de l’UID de la carte :
L'UID est converti en une chaîne de caractères.
Il est affiché dans le moniteur série.
2- Vérification de l'UID :
Si la carte est enregistrée, un message d'accès autorisé s'affiche, la LED devient verte.
Sinon, un message d'accès refusé apparaît, la LED devient rouge et un bip long est émis.
3- Réinitialisation après 2 secondes :
L'écran affiche à nouveau "Scan ta carte".
La LED et le buzzer sont désactivés.
La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.
Zaouiet Kontech-Jemmel-Monastir-Tunisie
+216 92 886 231
medaliprof@gmail.com
Site robotique réalisé par Mohamed Ali-Prof Info