This shows you the differences between two versions of the page.
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> | ||
+ | |||
+ | |||
+ |