NFC Access Control System

Contents:

  • Introduction
    • Project Evolution
    • What is NFC?
    • System Architecture
      • Hardware Layer
      • Software Layer
    • Design Philosophy
      • Security First
      • User Friendly
      • Educational Value
      • Flexibility
      • Reliability
    • Use Cases
      • Educational Applications
      • Practical Applications
    • Technical Specifications
      • Hardware Requirements
      • Software Capabilities
      • Performance Metrics
    • Getting Started
    • Project Structure
      • Hardware Layer
      • Software Layer
    • Design Philosophy
      • Security First
      • User Friendly
      • Educational Value
      • Flexibility
      • Reliability
    • Use Cases
      • Educational Applications
      • Practical Applications
    • Technical Specifications
      • Hardware Requirements
      • Software Capabilities
      • Performance Metrics
    • Getting Started
    • Project Structure
  • Examples
    • Course Tasks Overview
    • Task 1: Reading NFC Tags
      • Learning Objectives
      • Example Code: read_example.cpp
      • Key Concepts
      • Running the Example
      • Expected Output
    • Task 2: Writing to NFC Tags
      • Learning Objectives
      • Example Code: write_example.cpp
      • Card Storage Structures
      • Write Functions Reference
      • Running the Example
      • Safety Tips
      • Common Issues and Solutions
    • Advanced Topics
      • Card Cloning
      • NDEF Messages
    • Next Steps
    • Tips for Development
    • See Also
  • Hardware Setup
    • Required Components
      • Core Components
      • Additional Components
    • Pin Configuration
      • PN532 NFC Module (SPI Mode)
      • LCD Display (4-bit Parallel)
      • Navigation Buttons
      • Relay Module
    • Wiring Diagram
    • Power Considerations
    • Assembly Tips
    • Troubleshooting Hardware Issues
      • LCD Not Displaying
      • PN532 Not Detected
      • Buttons Not Responding
      • Relay Not Activating
  • Installation
    • Prerequisites
      • Required Software
      • Recommended Tools
    • Setting Up PlatformIO
      • Option 1: PlatformIO IDE (Recommended)
      • Option 2: PlatformIO Core (CLI)
    • Getting the Source Code
      • Clone from Repository
      • Download ZIP
    • Project Structure
    • Configuration
      • Pin Configuration
    • Building the Firmware
      • Using PlatformIO IDE
      • Using PlatformIO CLI
    • Uploading to Arduino
      • Preparing the Arduino
      • Using PlatformIO IDE
      • Specifying Upload Port
    • Monitoring Serial Output
      • Using PlatformIO
      • Using Arduino IDE Serial Monitor
    • Troubleshooting Installation
      • Build Errors
      • Upload Errors
    • Verification
    • Next Steps
  • Usage Guide
    • System Startup
    • Normal Operation
      • Scanning Cards
    • Menu System
      • Accessing the Menu
      • Menu Navigation
      • Main Menu Items
    • Card Management
      • Registering a New Card
      • Deleting a Card
      • Listing Stored Cards
    • Advanced Features
      • Card Cloning
      • System Information
    • Customization
      • Access Duration
      • Button Configuration
      • Card Capacity
    • Best Practices
      • Regular Operation
      • Card Management
      • System Maintenance
    • Security Considerations
      • Physical Security
      • Access Control
    • Serial Output
    • Troubleshooting Common Issues
      • Card Not Reading
      • False Readings
      • Menu Not Responding
      • Relay Not Activating
  • Class Diagrams
    • System Architecture Overview
    • AccessControlSystem Class
    • NFCReader Class
    • Complete System Relationships
    • State Machine
    • Card Registration Flow
    • Card Cloning Flow
    • MIFARE Memory Layout
    • Installation and Usage
    • See Also
  • API Reference
    • Core Classes
      • AccessControlSystem
        • AccessControlSystem
      • NFCReader
        • NFCReader
    • Enumerations
      • NFCCommMode
      • NFCReadMode
      • NFCCardType
    • Data Structures
      • NFCCardInfo
      • NFCWriteResult
      • SystemState
      • State Machine Diagram
      • MenuItem
    • Configuration Constants
      • Hardware Pin Definitions
      • System Parameters
      • EEPROM Memory Map
      • Custom Sector Configuration
    • Example Usage
      • Basic Setup
      • Custom Card Handling
      • Manual Card Registration
    • Return Values
    • Memory Considerations
      • EEPROM Usage
      • RAM Usage
    • Thread Safety
    • Debugging
  • EEPROM Memory Layout
    • Memory Map Overview
    • Memory Regions
      • Header Section
      • Card Data Section
    • Memory Operations
      • Read Operation Flow
      • Write Operation Flow
    • Memory Wear Leveling
      • Write Frequency Estimation
      • Best Practices
    • Memory Initialization
      • First-Time Setup
      • Code Example
    • Memory Debugging
    • Summary
  • Card Cloning Technology
    • Overview
    • How It Works
      • Dual UID System
      • Reading Priority
    • Custom Sector Structure
      • Sector 1 Layout
      • Block 4 Structure (UID Block)
      • Block 5 Structure (Metadata Block)
    • Cloning Process
      • Step-by-Step Procedure
    • Code Implementation
      • NFCReader::cloneCard() Method
      • Reading Cloned UID
    • Security Considerations
      • Authentication Keys
      • Access Control
      • Physical Security
    • Limitations
      • Card Compatibility
      • Key Requirements
      • Write Limitations
    • Advantages Over Magic Cards
      • Traditional “Magic” Cards
      • Our Custom Sector Approach
    • Best Practices
      • Cloning Workflow
      • Error Handling
      • Storage Management
    • Advanced Topics
      • Multi-Identity Cards
      • Encrypted Clones
      • Time-Limited Clones
    • Example Use Cases
      • Backup Access Card
      • Temporary Access
      • Multi-Location Access
    • Testing and Validation
    • Troubleshooting Cloning Issues
  • Troubleshooting
    • Hardware Issues
      • PN532 Module Not Detected
      • LCD Display Issues
      • Button Problems
      • Relay Issues
    • Card Reading Issues
      • Cards Not Detected
      • Specific Card Types
    • Software Issues
      • Compilation Errors
      • Upload Failures
      • Runtime Errors
    • Cloning Issues
      • Authentication Failed
      • Write Failed
      • Verification Failed
      • Cloned Card Not Working
    • Access Control Issues
      • Authorized Card Denied
      • Unauthorized Card Granted
      • Relay Timing Issues
    • Menu System Issues
      • Menu Not Accessible
      • Cannot Exit Menu
      • Cards Not Listing
    • Diagnostic Tools
      • Serial Monitor Output
      • Testing Individual Components
    • Common Error Codes
    • Getting Help
      • Before Seeking Support
      • Information to Provide
      • Support Channels
    • Additional Resources
  • Quick Start - Building Documentation
    • Installation
    • Building
      • HTML Documentation (Recommended)
      • PDF Documentation
    • Viewing
    • Cleaning
    • Common Issues
      • ImportError: No module named sphinx
      • sphinx-build command not found
      • Theme not found
      • LaTeX errors when building PDF
    • Tips
NFC Access Control System
  • Index

Index

A | N

A

  • AccessControlSystem (C++ class)
  • AccessControlSystem::AccessControlSystem (C++ function)
  • AccessControlSystem::begin (C++ function)
  • AccessControlSystem::deleteCard (C++ function)
  • AccessControlSystem::denyAccess (C++ function)
  • AccessControlSystem::getStoredCardCount (C++ function)
  • AccessControlSystem::grantAccess (C++ function)
  • AccessControlSystem::isCardAuthorized (C++ function)
  • AccessControlSystem::registerCard (C++ function)
  • AccessControlSystem::update (C++ function)

N

  • NFCReader (C++ class)
  • NFCReader::begin (C++ function)
  • NFCReader::isCardPresent (C++ function)
  • NFCReader::NFCReader (C++ function)
  • NFCReader::readCard (C++ function)
  • NFCReader::resetCardState (C++ function)
  • NFCReader::writeData (C++ function)
  • NFCReader::writeMifareClassic (C++ function)
  • NFCReader::writeMifareClassicString (C++ function)
  • NFCReader::writeNTAG (C++ function)
  • NFCReader::writeNTAGString (C++ function)
  • NFCReader::writeString (C++ function)

© Copyright 2025, RWU Student Project.

Built with Sphinx using a theme provided by Read the Docs.