Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2023:apredescu:rfiddoor [2023/05/18 20:49]
razvan.neacsu2509 [Hardware Design]
pm:prj2023:apredescu:rfiddoor [2023/05/25 15:57] (current)
razvan.neacsu2509 [Journal]
Line 31: Line 31:
 {{:​pm:​prj2023:​apredescu:​i2c_1602_nrf.jpg?​direct&​300|}} {{:​pm:​prj2023:​apredescu:​i2c_1602_nrf.jpg?​direct&​300|}}
  
-====Electrical Schematic====+==== Electrical Schematic ====
  
 {{:​pm:​prj2023:​apredescu:​elec_sch_rfid.png?​700|}} {{:​pm:​prj2023:​apredescu:​elec_sch_rfid.png?​700|}}
 +
 +
 +
 +===== Software Design =====
 +
 +The software design integrates various libraries and functionalities to create a secure and user-friendly access control solution. It includes the SPI communication library (SPI.h) for RFID communication,​ the MFRC522 RFID library (MFRC522.h),​ the Servo library (Servo.h) for controlling the servo motor, the Wire library (Wire.h) for I2C communication,​ and the LiquidCrystal_I2C library (LiquidCrystal_I2C.h) for the I2C-based LCD display.
 +
 +The LCD configuration involves creating an instance of the LiquidCrystal_I2C class with the LCD address and dimensions. The LCD backlight is turned on to ensure visibility.
 +
 +Pin definitions are assigned for various components: RST_PIN for the MFRC522 module reset, SS_PIN as the Slave Select pin for the MFRC522 module, buzzer_pin for the buzzer output, outside_close for the button outside the door to close it, inside_close for the button inside the door to close it, and inside_open for the button inside the door to open it.
 +
 +Several boolean variables are initialized to track the system state, and an integer variable, timer, is used to hold the timer value. Other variables, such as user_added and add_ID_counter,​ are used for managing user IDs.
 +
 +In the setup function, the SPI bus is initialized,​ the MFRC522 module is initialized,​ the servo motor is attached to the PWM signal, the buzzer pin is configured as OUTPUT, and the button pins are configured as INPUT. The LCD display is also initialized,​ and initial messages are printed on it.
 +
 +The areArraysEmpty function checks if the user ID arrays are empty, indicating whether any user IDs have been added.
 +
 +In the loop function, the system checks if the buttons outside or inside the door are pressed to close the door. When normal_mode is true, it handles the countdown, cancels the new ID addition process if necessary, and grants or denies access based on the presented RFID card. When normal_mode is false, it displays instructions for placing a new ID card, initiates a countdown, and cancels the new ID addition process if a card is presented during the countdown.
 +
 +Overall, the software design combines RFID communication,​ servo motor control, user interface management, and audio feedback to create a secure and user-friendly access control system. It incorporates error handling, code modularity, and configuration/​customization options to enhance functionality,​ maintainability,​ and adaptability.
 +
 +===== Download =====
 +
 +{{:​pm:​prj2023:​apredescu:​ma_rfid_lock_project.zip|}}
 +
 +===== Journal =====
 +
 +     * Basically the project is done, I only have to slightly improve the code and it is done. Down below I have uploaded some pictures with the project itself for which I have also done a box using a 3D printer.
 +
 +{{:​pm:​prj2023:​apredescu:​arduino_butoane.jpeg?​300|}}
 +{{:​pm:​prj2023:​apredescu:​arduino_extensie.jpeg?​300|}}
 +{{:​pm:​prj2023:​apredescu:​rfid_lcd.jpeg?​300|}}
 +{{:​pm:​prj2023:​apredescu:​buzzer.png?​300|}}
 +{{:​pm:​prj2023:​apredescu:​cutie_1_.jpeg?​300|}}
 +{{:​pm:​prj2023:​apredescu:​cutie_2_.jpeg?​300|}}
 +{{:​pm:​prj2023:​apredescu:​servo_1_.jpeg?​300|}}
 +{{:​pm:​prj2023:​apredescu:​servo_2_.jpeg?​300|}}
 +
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
 +
 +
 +
pm/prj2023/apredescu/rfiddoor.1684432191.txt.gz · Last modified: 2023/05/18 20:49 by razvan.neacsu2509
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0