Système de présence basé sur RFID Utilisation d’Arduino – Guide complet du projet

RFID-Based Attendance System Using Arduino

Project Aperçu rapide

Construire le temps: 4-6 heures | Coût: 25-35 $ | Difficulté: Débutant

Ce que vous apprendrez: Communication SPI / I2C, stockage EEPROM, programmation d’horloge en temps réel, gestion des cartes RFID

Applications: Assistance au bureau, suivi des étudiants, contrôle d’accès, gestion des visiteurs

Système de présence basé sur RFID complet à l'aide d'Arduino avec écran LCD et module MFRC522
Composants Arduino requis pour le système de fréquentation RFID, y compris le module MFRC522 et l'écran LCD

Schéma de câblage du diagramme de circuit pour le système de fréquentation basé sur RFID à l'aide d'Arduino Uno

Épingle arduino Composant Fonction Notes
PIN numérique 7 MFRC522 RST Réinitialisation RFID Contrôle le lecteur réinitialisé, facultatif
PIN numérique 8 Bouton de menu Navigation par menu Input_pullup activé
PIN numérique 9 Sélectionner le bouton Sélection / confirmation Input_pullup activé
PIN numérique 10 MFRC522 SS Sélection d’esclaves SPI Chip Select
PIN numérique 11 MFRC522 MOSI Données SPI Communication SPI
PIN numérique 12 MFRC522 MISO Données SPI dans Communication SPI
PIN numérique 13 MFRC522 SCK Horloge SPI Communication SPI
Pin analogique A4 SDA Données I2C LCD, RTC, EEPROM
Pin analogique A5 SCL Horloge i2c LCD, RTC, EEPROM

Systeme de presence base sur RFID Utilisation dArduino Guide

Système de fréquentation RFID assemblé montrant les connexions Arduino et le placement des composants

Libraries and Dependencies
#include                 
#include             
#include                 
#include "RTClib.h"             
#include     
#define RST_PIN 7  // optional
#define SS_PIN 10       
#define BUTTON_MENU 8   
#define BUTTON_SELECT 9
#define EEPROM_ADDR 0x50  
MFRC522 mfrc522(SS_PIN, RST_PIN);      
RTC_DS1307 rtc;                        
LiquidCrystal_I2C lcd(0x27, 16, 2);    
MFRC522::MIFARE_Key key;              
#define NAME_START_BLOCK 4  
#define ID_START_BLOCK 8    
#define NAME_LENGTH 32      
#define ID_LENGTH 8   
#define MAX_LOGS 30    
#define LOG_SIZE 80    
int logCount = 0;      
int insideCount = 0;   
enum MenuState {
 MENU_HOME,       
 MENU_VIEW_LOGS, 
 MENU_STATUS,      
 MENU_CLEAR_LOGS,  
 MENU_SET_TIME     
};
MenuState currentMenu = MENU_HOME;  
int menuIndex = 0;                  
unsigned long lastButtonPress = 0;  
unsigned long lastLCDUpdate = 0;    
unsigned long homeScreenTimer = 0;  
bool inSubMenu = false;             
int logViewIndex = 0;              
unsigned long lastScrollTime = 0;   
int scrollPosition = 0;             
String currentScrollText = "";      
bool isScrolling = false;           
#define SCROLL_DELAY 500            
#define SCROLL_PAUSE 2000          
bool menuButtonPressed = false;     
bool selectButtonPressed = false;  
Serial.begin(9600);
 pinMode(BUTTON_MENU, INPUT_PULLUP);
 pinMode(BUTTON_SELECT, INPUT_PULLUP);
lcd.begin();
 lcd.backlight();
 lcd.clear();
 lcd.setCursor(0, 0);
 lcd.print("RFID Attendance");
 lcd.setCursor(0, 1);
 lcd.print("Starting up...");
 delay(2000);
 SPI.begin();
 mfrc522.PCD_Init();
 Wire.begin();
if (!rtc.begin()) {
   lcd.clear();
   lcd.setCursor(0, 0);
   lcd.print("RTC Error!");
   Serial.println(F("RTC Error!"));
   while(1);  // Stop execution if RTC fails
 }
 for (byte i = 0; i < 6; i++) {
   key.keyByte[i] = 0xFF;
 }
logCount = readInt(0);      // Read log count from address 0
 insideCount = readInt(2);   // Read inside count from address 2
 if (logCount < 0 || logCount > MAX_LOGS) logCount = 0;
 if (insideCount < 0) insideCount = 0;
 lcd.clear();
 lcd.setCursor(0, 0);
 lcd.print("System Ready!");
 lcd.setCursor(0, 1);
 lcd.print("Inside: ");
 lcd.print(insideCount);
 delay(2000);
 Serial.println(F("\n=== RFID IN/OUT System Ready ==="));
 Serial.print(F("Total logs: "));
 Serial.println(logCount);
 Serial.print(F("People inside: "));
 Serial.println(insideCount);
 Serial.println(F("Commands: v(view), c(clear), s(status), t(time)"));
 Serial.println(F("Scan card for IN/OUT..."));
 displayHomeScreen();
void loop() {
 handleButtons();        
 handleSerialCommands(); 
 handleLCDUpdates();     
 handleRFIDScan();       
 handleScrolling();      
}

Programmation des cartes RFID avec des données personnelles pour le système de fréquentation ArduinoConfiguration du matériel du système de fréquentation RFID avec interface de moniteur série ArduinoRédaction de données sur les employés à la carte RFID à l'aide du système de fréquentation Arduino

Lire les informations stockées sur les employés de la carte RFID à l'aide d'Arduino
Téléchargement du code de suivi de la fréquentation principale d'Arduino IDEArduino RFID Système de présence à l'écran d'initialisation de démarrageÉcran d'accueil du système de présence RFID Affichage de la date, de l'heure et de l'invite de scanSystème de fréquentation d'Arduino RFID affichant l'heure actuelle et le nombre de scannes
Confirmation d'enregistrement des employés sur l'écran LCD du système de fréquentation RFID

Confirmation de départ des employés montrant le nombre de mises à jour sur le système RFID Arduino

Accédez à un message refusé pour la carte RFID non valide sur le système de fréquentation Arduino

  • Connectivité WiFi: Ajouter ESP8266 pour la surveillance à distance et la sauvegarde du cloud
  • Application mobile: Développer l’application pour smartphone pour une visualisation de fréquentation en temps réel
  • Intégration biométrique: Combinez avec un capteur d’empreintes digitales pour une double authentification
  • Capture photo: Ajouter un module de caméra pour la vérification de la fréquentation visuelle
  • Intégration de la base de données: Connectez-vous à MySQL ou MongoDB pour les analyses avancées
  • Prise en charge multi-emplacements: Réseau plusieurs unités pour le déploiement à l’échelle du campus
  • Contrôle d’accès: Ajouter un contrôle de relais pour le verrouillage / déverrouillage des portes automatiques

Projets utilisant le module RFID

Comment faire un système de verrouillage de porte RFID à l'aide d'Arduino?Système de gestion d'événements basé sur l'IoT utilisant RFID et ThingsPekComment connecter RFID avec le microcontrôleur STM32

Retrouvez l’histoire de Raspberry Pi dans cette vidéo :

Youtube video

  • Clavier biométrique RFID de 2,4 pouces Système contrôle d'accès par empreinte digitale Machine présence électronique tout-en-un pour les employés
  • Horloge de pointage, système contrôle d'accès biométrique par empreinte digitale RFID, machine d'enregistrement du temps présence, porte intelligent pour les employés