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:42]
elisa.diaconita [Hardware Design]
pm:prj2025:atoader:elisa.diaconita [2025/05/28 02:15] (current)
elisa.diaconita [Bibliografie/Resurse]
Line 48: Line 48:
 | Servomotor - VCC    | 5V                     | Alimentare servo                                | | Servomotor - VCC    | 5V                     | Alimentare servo                                |
 | Servomotor - GND    | GND                    | Împământare comună ​                              | | Servomotor - GND    | GND                    | Împământare comună ​                              |
 +{{:​pm:​prj2025:​atoader:​proiect_elisa.png?​300 |}}
  
- 
-<note tip> 
-Aici puneţi tot ce ţine de hardware design: 
-  * listă de piese 
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri,​ e.g. http://​www.captain.at/​electronic-atmega16-mmc-schematic.png) 
-  * diagrame de semnal ​ 
-  * rezultatele simulării 
-</​note>​ 
  
 ===== 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);​
  
-===== Jurnal ​=====+    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>​ 
 + 
 +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.1748385755.txt.gz · Last modified: 2025/05/28 01:42 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