Skip to main content
Version: FILS English

Project Name

Attendance System

info

Author: Mokhadder Hussein
GitHub Project Link: https://github.com/UPB-PMRust-Students/project-Hussein026

Description

An Attendance System that reads RFID/NFC cards to automatically record and manage attendance data:

The system utilizes a Raspberry Pi Pico 2 microcontroller running Rust software to process card data. The RC522 RFID Reader scans cards and sends identification data to the microcontroller. All attendance records are logged in a local SQLite/PostgreSQL database stored on a 32GB memory card. The system synchronizes attendance data with an online Laravel backend for cloud-based storage. Visual feedback is provided through green (success) and red (failure) LEDs. Audible confirmation is delivered via a buzzer with distinct tones for successful and failed scans. An optional 16x2 LCD display shows status messages and scan results in real-time. A web interface displays attendance records showing names and timestamps of attendees. The web page updates dynamically using AJAX and features a responsive Bootstrap design. An optional push button allows for switching between different operating modes. The system continues to function during network outages, storing data locally until synchronization is possible.

Motivation

This project is especially meaningful to me as it provided a chance to apply my knowledge of microcontroller programming and electronic circuit design to a real-world problem by developing an Attendance System Reader. By leveraging the Raspberry Pi Pico 2 and exploring the use of Rust in embedded systems, I was able to integrate RFID technology with real-time data synchronization, balancing the complexity of both offline functionality and cloud connectivity. The project also pushed me into full-stack development through the creation of a web interface, aligning with my passion for building efficient, automated systems that streamline administrative tasks. Overall, it has deepened my practical experience in IoT and prepared me for future challenges in the field.

Architecture

Add here the schematics with the architecture of your project. Make sure to include:

  • what are the main components (architecture components, not hardware components)
  • how they connect with each other My Diagram

Log

Week 5 - 11 May

Completed submission of all project documentation and ensured everything was properly organized. Initiated work on the schematic design, carefully planning the layout. Began initial development of the software components, making steady progress toward project implementation.

Week 12 - 18 May

Week 19 - 25 May

Hardware

Hardware Overview: • The Raspberry Pi Pico 2 functions as the central controller for all system operations. • The RC522 RFID Reader continuously monitors for RFID/NFC cards in its vicinity. • When a card is detected: o The reader captures the card's unique ID and forwards it to the Raspberry Pi Pico 2. o The system verifies the ID against its database. o The Green LED illuminates and the Buzzer emits a confirmation tone for authorized cards. o The Red LED activates and the Buzzer signals an alert for unauthorized cards. o The LCD Display (if installed) shows the relevant user information and scan status. • All scan events are logged to the 32GB Memory Card in the local database. • The system periodically synchronizes this data with the online Laravel backend. • The Push Button allows operators to switch between different system modes as needed. • All components are connected via Electric Wires and powered by the 5V Power Supply, with the Breadboard providing organized connection points during development.

Schematics

![My Diagram](Hardware design.svg) My Diagram My Diagram My Diagram

Bill of Materials

DeviceUsagePrice
Raspberry Pi Pico 2W (x2)Microcontroller + Debugger39.66
RC522 RFID ReaderCard reader module15
RFID/NFC Cards (10 pack)Identification cards30
16x2 LCD Display with I2CUser interface display20
Active Buzzer ModuleAudio feedback for scans1
LEDs (Green & Red)Visual status indicators1
Push ButtonBreadboard Mode selection2
Breadboard HQ 400 PointsPrototyping4.56
Breadboard HQ 830 PointsPrototyping9.98
MicroSD Card ModuleInterface for storage10
MicroSD Card (32GB)Storage for OS, database, and logs20
Jumper Wires (40pcs)Component connections18.99

Software

LibraryDescriptionUsage
embassy-rpRP2040 HAL with async supportMain async runtime and peripheral control
mipidsiGeneric TFT driverControls the ST7735s SPI display
heaplessFixed-size buffer and data structuresFlash log strings and buffers
embassy-syncAsync mutexes and primitivesSPI/I2C bus sharing
embassy-timeTimer and delay utilitiesTimed events and log delay control
embassy-flashFlash memory abstractionPersistent log storage
embassy-net, cyw43WiFi/network stack for remote loggingEnables wireless access to log data
defmt + panic-probeDebug logging and error handlingRTT logging/debug
  1. Embedded Graphics Docs
  2. Embassy Framework GitHub ...