Differences

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

Link to this comparison view

pm:prj2025:atoader:elisa.diaconita [2025/05/28 01:40]
elisa.diaconita [Hardware Design]
pm:prj2025:atoader:elisa.diaconita [2025/05/28 02:15] (current)
elisa.diaconita [Bibliografie/Resurse]
Line 30: Line 30:
  
  
-<note tip> +== Conexiuni esențiale == 
-Aici puneţi tot ce ţine de hardware ​design: +^ Componentă ​         ^ Pin Arduino MEGA       ^ Motiv conectare ​                                ^ 
-  * listă de piese +| RFID-RC522 - SDA    | 53                     | Pin SPI pentru selecția dispozitivului RFID     | 
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.ghttp://www.captain.at/​electronic-atmega16-mmc-schematic.png) +| RFID-RC522 - SCK    | 52                     | Pin SPI pentru semnalul ​de ceas (clock) ​        | 
-  * diagrame de semnal ​ +| RFID-RC522 - MOSI   | 51                     | Pin SPI pentru transmisia datelor de la Arduino | 
-  * rezultatele simulării +| RFID-RC522 - MISO   | 50                     | Pin SPI pentru recepția datelor spre Arduino ​   | 
-</​note>​+| RFID-RC522 - RST    | 49                     | Reset hardware ​pentru modul RFID                | 
 +| RFID-RC522 - GND    | GND                    | Împământare comună ​                              | 
 +| RFID-RC522 - 3.3V   | 3.3V                   | Alimentare modul RFID (funcționează la 3.3V)    | 
 +| Keypad ​ROW1–4 ​    | 33, 35, 37, 39         | Citire rânduri de la tastatură ​                 | 
 +| Keypad ​COL1–4 ​    | 31, 29, 27, 25         | Citire coloane de la tastatură ​                 | 
 +| LCD I2C SDA       | 20                     | Comunicare I2C – date                           | 
 +| LCD I2C - SCL       | 21                     | Comunicare I2C – ceas                           | 
 +| LCD I2C - VCC       | 5V                     | Alimentare pentru display ​                      | 
 +| LCD I2C - GND       | GND                    | Împământare comună ​                              | 
 +| Servomotor - Signal | 9                      | Semnal PWM pentru controlul poziției ​          | 
 +| Servomotor - VCC    | 5V                     | Alimentare servo                                | 
 +| Servomotor - GND    | GND                    | Împământare comună ​                              | 
 +{{:​pm:​prj2025:​atoader:​proiect_elisa.png?​300 |}} 
  
 ===== Software Design ===== ===== Software Design =====
  
 +== Mediu de dezvoltare ==
 +  * Arduino IDE 
  
-<note tip> +== Biblioteci folosite == 
-Descrierea codului aplicaţiei (firmware): +  * Wire.h – pentru comunicarea I2C între Arduino și LCD 
-  * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) +  * LiquidCrystal_I2C.h – pentru controlul afișajului LCD 16x2 cu interfață I2C 
-  * librării şi surse 3rd-party (e.gProcyon AVRlib) +  * MFRC522.h – pentru interacțiunea cu modulul RFID RC522 
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +  * Servo.h – pentru controlul servomotorului 
-  * (etapa 3) surse şi funcţii implementate +  * Keypad.h – pentru gestionarea tastaturii 4x4
-</​note>​+
  
-===== Rezultate Obţinute =====+== Flow-ul programului ​== 
 +  * Verificare UID RFID: cardurile sunt identificate pe baza unui cod unic (UID), care este comparat cu un UID predefinit. 
 +  * Introducere parolă: utilizatorul poate introduce un cod PIN de la tastatură. Caracterele introduse sunt mascate pe ecranul LCD. 
 +  * Verificare și autentificare:​ dacă UID-ul sau parola este corectă, accesul este permis, iar servomotorul deschide ușa. 
 +  * Afișare mesaje LCD: sistemul oferă feedback vizual pe LCD (e.g. „Access Granted”, „Incorrect Pass”, „Scan Card or Enter Password”).
  
-<note tip> +setup() 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +Inițializare componente hardware și comunicații 
-</note>+Configurare LCD pentru afișaj 
 +Setare poziție servo inițială (ușă închisă) 
 +<code> 
 +void setup() { 
 +  Serial.begin(9600);​ 
 +  SPI.begin();​ 
 +  rfid.PCD_Init();​
  
-===== Concluzii =====+  doorServo.attach(9); ​     
 +  doorServo.write(0); ​   ​
  
-===== Download =====+  lcd.begin(16,​ 2); 
 +  lcd.backlight();​ 
 +  lcd.setCursor(0,​ 0); 
 +  lcd.print("​Door Lock System"​);​
  
-<note warning> +  delay(2000); ​             ​ 
-O arhivă ​(sau mai multe dacă este cazulcu fişierele obţinute în urma realizării proiectului:​ surse, scheme, etcUn fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).+  ​lcd.clear()
 +  lcd.print("​Scan Card or"); 
 +  lcd.setCursor(0,​ 1)
 +  lcd.print("​Enter Password"​);​ 
 +
 +</​code>​
  
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**Namespace-ul în care se încarcă fişierele este de tipul **:​pm:​prj20??:​c?​** sau **:​pm:​prj20??:​c?:​nume_student** ​(dacă este cazul). **Exemplu:​** Dumitru Alin331CC -> **:pm:prj2009:​cc:​dumitru_alin**+loop() 
-</note>+Citire date de la RFID 
 +Verificare UID 
 +Citire taste de la keypad și verificare parolă 
 +<​code>​ 
 +void loop() { 
 +  if (rfid.PICC_IsNewCardPresent() && rfid.PICC_ReadCardSerial()) { 
 +    String uid = "";​ 
 +    for (byte i = 0; i < rfid.uid.size;​ i++) { 
 +      uid += String(rfid.uid.uidByte[i]HEX); 
 +    } 
 +    uid.toUpperCase();​ 
 +    Serial.print("​Card UID"); 
 +    Serial.println(uid);​ 
 + 
 +    if (uid == correctUID) { 
 +      openDoor();​ 
 +    } else { 
 +      lcd.clear();​ 
 +      lcd.print("​Access Denied!"​);​ 
 +      delay(2000);​ 
 +      lcd.clear();​ 
 +      lcd.print("​Scan Card or"​);​ 
 +      lcd.setCursor(0,​ 1); 
 +      lcd.print("​Enter Password"​);​ 
 +    } 
 +    rfid.PICC_HaltA();​ 
 +  } 
 +</code>
  
-===== Jurnal ​=====+Funcția openDoor() 
 +Deschide ușa dacă accesul este permis 
 +După 2 secunde închide ușa 
 +Reafișează ecranul de start 
 +<​code>​ 
 +void openDoor() { 
 +  lcd.clear();​ 
 +  lcd.print("​Access Granted!"​);​ 
 +  doorServo.write(90); ​     
 +  delay(2000); ​          
 +  doorServo.write(0); ​         
 +  lcd.clear();​ 
 +  lcd.print("​Door Locked"​);​ 
 +  delay(1000);​ 
 +  lcd.clear();​ 
 +  lcd.print("​Scan Card or"​);​ 
 +  lcd.setCursor(0,​ 1); 
 +  lcd.print("​Enter Password"​);​ 
 +
 +  
 +</​code>​ 
 +===== Rezultate obținute ​=====
  
 <note tip> <note tip>
-Puteți avea și o secțiune de jurnal ​în care să poată urmări asistentul ​de proiect progresul proiectului.+  * Sistemul permite autentificarea atât prin card RFID, cât și prin cod PIN introdus de la tastatură. 
 +  * LCD-ul 16x2 cu interfață I2C afișează corect mesajele ​de status pentru utilizator (ex: „Access Granted”, „Incorrect Password” etc.). 
 +  * Servomotorul reacționează rapid la autentificarea validă, simulând deschiderea unei uși. 
 +  * Sistemul revine automat ​în starea inițială după fiecare acces. 
 +  * Timpul de răspuns este mic (sub 1 secundă) pentru ambele metode de autentificare. 
 +  * Sistemul este funcțional și poate fi folosit ca prototip pentru aplicații ​de control acces reale.
 </​note>​ </​note>​
 +===== Concluzii =====
  
-===== Bibliografie/​Resurse ​=====+Mi-a placut acest proiect pentru că a fost pentru prima dată când am avut ocazia să implementez un proiect în Arduino. Pe parcursul dezvoltării proiectului:​ 
 +  * am folosit protocoale de comunicație precum SPI (pentru RFID) și I2C (pentru LCD), 
 +  * am folosit tehnici de citire și validare a datelor de intrare (UID RFID, cod tastatură),​ 
 +  * am exersat generarea semnalelor PWM pentru controlul servomotorului. 
 +===== Download ​===== 
 + 
 +Arhiva contine: 
 +Codul sursă, schema electrică, imaginea proiectului 
 +{{:​pm:​prj2025:​atoader:​proiect_pm_elisa.zip|}}
  
-<​note>​ 
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. 
-</​note>​ 
  
-<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ 
  
pm/prj2025/atoader/elisa.diaconita.1748385643.txt.gz · Last modified: 2025/05/28 01:40 by elisa.diaconita
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