Un système d’ouverture de porte avec carte est un dispositif de contrôle d’accès qui permet de déverrouiller une porte automatiquement lorsqu’un utilisateur présente une carte d’identification (comme une carte magnétique, RFID, ou à puce) devant un lecteur prévu à cet effet. Ce système remplace ou complète les serrures traditionnelles à clé et est largement utilisé dans les bâtiments sécurisés, les hôtels, les bureaux, ou encore les logements connectés.
Composants typiques :
- Carte d’accès : contient un identifiant unique.
- Lecteur de carte : capte les informations de la carte.
- Unité de contrôle : vérifie si l’accès est autorisé (souvent un microcontrôleur).
- Système d’actionnement : déverrouille la porte (par exemple un électroaimant ou un servomoteur).
- Alimentation : permet au système de fonctionner.
Avantages :
- Sécurité renforcée (car chaque carte est unique)
- Traçabilité des accès (possibilité de journaliser les entrées)
- Confort d’utilisation (pas besoin de clé)
- Possibilité d’accès multiple et personnalisable
Le projet consiste à créer un système de contrôle d’accès sécurisé qui permet de déverrouiller une porte à l’aide d’une carte RFID autorisée. L’identification est effectuée grâce au module RFID-RC522, un Arduino sert de cerveau au système, un servomoteur actionne la serrure, et un écran LCD I2C affiche les messages d’état (comme "Accès autorisé", "Carte non reconnue", etc.).
Principe de fonctionnement :
1- Lorsque le système est sous tension, l’écran LCD affiche un message d’accueil : "Présentez votre carte".
2- L’utilisateur approche une carte RFID du lecteur RC522.
3- Le module lit l’identifiant unique (UID) de la carte.
4- L’Arduino compare ce UID à une liste de cartes autorisées enregistrée dans son programme.
5- Si la carte est reconnue : le servomoteur s’active (ouvrant la porte) et l’écran affiche "La porte s'ouvre".
6- L’utilisateur approche une autre fois la carte RFID du lecteur RC522, le servomoteur revient à 85° pour refermer la porte.
7- Si la carte est inconnue : l’écran affiche "Accès refusé" et le servomoteur ne bouge pas.
1. Arduino UNO
La carte Arduino UNO est le cerveau du projet. Il reçoit les données du module RFID, les analyse, et commande le servomoteur selon que l’accès est autorisé ou non.
2. Module RFID-RC522
Le module RFID-RC522 sert à lire les cartes ou badges RFID (13,56 MHz). Lorsqu’une carte est présentée, il envoie son identifiant (UID) à l’Arduino via une liaison SPI.
3. Afficheur LCD I2C
L'afficheur LCD I2C sert à afficher les messages du système : état du système, message d’invitation, confirmation ou refus d’accès.
4. Servomoteur (SG90 ou autre)
Le servomoteur simule l’ouverture et la fermeture de la porte. Lorsqu’un accès est autorisé, il tourne de 0° à 90° (ou autre angle défini) puis revient à
sa position initiale.
5. Carte RFID (ou porte-clé RFID)
La carte RFID sert de clé électronique. Chaque carte a un identifiant unique (UID) utilisé pour reconnaître l’utilisateur.
6. Breadboard (Plaque d’essai)
Le breadboard facilite les connexions sans soudure et permet d’alimenter le servomoteur et d’organiser les connexions GPIO.
7. Fils de connexion (Dupont)
Les fils de connexion relient les composants entre eux (Micro:bit, servomoteur, carte d’extension) et permettent de transférer les signaux et l’alimentation.
8. Prototype de maison en bois
Le prototype de maison en bois simule une vraie maison avec une porte mobile.
Il constitue un support pour fixer le servomoteur et la porte.
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 servomoteur à l'Arduino
Servomoteur | Arduino UNO |
Fil marron (-) | GND |
Fil rouge (+) | 5V |
Fil jaune | Broche numérique N°2 |
Ce code utilise les bibliothèques LiquidCrystal_I2C et MFRC522. 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 LiquidCrystal_I2C et MFRC522.
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 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
#include <LiquidCrystal_I2C.h> #include <SPI.h> #include <MFRC522.h> #include<Servo.h> //include the servo library // 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); Servo servo; //create a servo object int position_servo = 85; //initial position of the servo bool cardDetected = false; // Track card status void setup() { servo.attach(2); //pin used by the servo servo.write(85); Serial.begin(9600); lcd.init(); lcd.backlight(); SPI.begin(); rfid.PCD_Init(); lcd.setCursor(0, 1); lcd.print("Scanner votre carte"); lcd.setCursor(0, 2); lcd.print("pour ouvrir la porte"); } void loop() { if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) { // Vérifier si une carte est présente if (cardDetected) { // Only update LCD if the message changes cardDetected = false; // Reset status } return; } cardDetected = true; // Afficher l'UID dans le moniteur série 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); // Vérifier si l'UID correspond à une carte autorisee if ((uid=="a9:f0:e8:b8") || (uid=="23:34:a7:3")) { lcd.print("carte validee"); if (position_servo==85) { // Si la porte est fermee lcd.clear(); lcd.setCursor(1, 1); lcd.print("La porte s'ouvre"); for (int i=85; i>20 ; i--) { servo.write(i); // faire tourner le servomoteur pour ouvrir la porte delay(100); } lcd.clear(); lcd.setCursor(1, 2); lcd.print("Porte ouverte"); delay(3000); position_servo=20; lcd.clear(); lcd.setCursor(0, 1); lcd.print("Scanner votre carte"); lcd.setCursor(0, 2); lcd.print("pour fermer la porte"); } else { lcd.clear(); lcd.setCursor(1, 1); lcd.print("La porte se ferme"); if (position_servo==20) { // Si la porte est ouverte for (int i=20; i<85 ; i++) { servo.write(i); // faire tourner le servomoteur pour fermer la porte delay(100); } lcd.clear(); lcd.setCursor(1, 1); lcd.print("La porte fermee"); delay(3000); lcd.clear(); lcd.setCursor(0, 1); lcd.print("Scanner votre carte"); lcd.setCursor(0, 2); lcd.print("pour ouvrir la porte"); position_servo=85; } } } else { // Si la carte est non acceptee lcd.clear(); lcd.setCursor(1, 1); lcd.print("Carte non validee"); delay(5000); lcd.clear(); lcd.setCursor(0, 1); lcd.print("Scanner votre carte"); lcd.setCursor(0, 2); lcd.print("pour ouvrir la porte"); } rfid.PICC_HaltA(); rfid.PCD_StopCrypto1(); } |
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