Differences

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

Link to this comparison view

pm:prj2025:atoader:alexandra.corcodel [2025/05/28 02:03]
alexandra.marinica
pm:prj2025:atoader:alexandra.corcodel [2025/05/28 13:12] (current)
alexandra.marinica [Rezultate Obţinute]
Line 72: Line 72:
  
 ===== Software Design ===== ===== Software Design =====
-Mediu de dezvoltare: PlatformIO +**Mediu de dezvoltare:**  
-Librării utilizate:​ +     ​* ​PlatformIO
-Arduino.h – Bibliotecă de bază a mediului Arduino, oferă funcționalități fundamentale pentru controlul pinilor, temporizări și comunicații.+
  
-Wire.h – Permite comunicarea I2C între ​Arduino și alte dispozitive (ex: LCD).+**Librării utilizate:​** 
 +     * Arduino.h – Bibliotecă de bază a mediului ​Arduino, oferă funcționalități fundamentale pentru controlul pinilor, temporizări ​și comunicații.
  
-LiquidCrystal_I2C.h – Bibliotecă specializată pentru afișajele LCD compatibile I2C, utilizată pentru mesaje textuale pe ecran.+     * Wire.h – Permite comunicarea I2C între Arduino ​și alte dispozitive (ex: LCD).
  
-SoftwareSerial.h – Permite comunicarea serială pe pini digitali neconvenționali, utilizată pentru ​conectarea modulului RFID și Bluetooth.+     * LiquidCrystal_I2C.h – Bibliotecă specializată pentru afișajele LCD compatibile I2C, utilizată pentru ​mesaje textuale pe ecran.
  
-Servo.h – Oferă funcționalități pentru ​controlul unui servomotor (deschiderea/​închiderea ușii).+      * SoftwareSerial.h – Permite comunicarea serială pe pini digitali neconvenționali, utilizată pentru ​conectarea modulului RFID și Bluetooth.
  
-Funcții de setup:+      * Servo.h – Oferă funcționalități pentru controlul unui servomotor (deschiderea/​închiderea ușii). 
 + 
 +**Funcții de setup:**
 setup() – Inițializează comunicațiile seriale (USB, RFID, Bluetooth), setările pentru servomotor, pinii pentru LED-uri, senzorul ultrasonic, și LCD-ul I2C. Afișează un mesaj de status la pornire. setup() – Inițializează comunicațiile seriale (USB, RFID, Bluetooth), setările pentru servomotor, pinii pentru LED-uri, senzorul ultrasonic, și LCD-ul I2C. Afișează un mesaj de status la pornire.
  
- Servomotor:+**Servomotor:**
 lockServo.write() – Controlează poziția încuietorii (0° = închis, 90° = deschis). lockServo.write() – Controlează poziția încuietorii (0° = închis, 90° = deschis).
  
- LED RGB:+**LED RGB:**
 setLEDColor(String color) – Aprinde culori diferite în funcție de starea sistemului (red, yellow, green) și afișează un mesaj corespunzător pe LCD. setLEDColor(String color) – Aprinde culori diferite în funcție de starea sistemului (red, yellow, green) și afișează un mesaj corespunzător pe LCD.
  
- ​Senzor ultrasonic HC-SR04:+ **Senzor ultrasonic HC-SR04:**
 readDistanceCM() – Măsoară distanța până la un obstacol folosind semnalul ultrasonic. Returnează -1.0 dacă nu primește ecou. readDistanceCM() – Măsoară distanța până la un obstacol folosind semnalul ultrasonic. Returnează -1.0 dacă nu primește ecou.
  
-Funcții RFID: +**Funcții RFID:** 
-rdmSerial.listen() – Activează citirea de date de pe canalul software serial folosit de modulul RFID.+      ​* ​rdmSerial.listen() – Activează citirea de date de pe canalul software serial folosit de modulul ​RFID. 
 + 
 +      * Parcurgere buffer UID – Detectează un card RFID valid (cu header 0x02 și footer 0x03) și extrage UID-ul. 
 + 
 +       * Acces temporar – Dacă UID-ul este detectat, se deblochează poarta 5 secunde, apoi se revine la starea inițială. 
 + 
 +**Funcții Bluetooth:​** 
 +       * btSerial.listen() – Activează ascultarea pe canalul software serial pentru Bluetooth. 
 + 
 +       * Comenzi textuale – Primește comanda DESCHIDE și acționează poarta ca la scanarea ​RFID.
  
-Parcurgere buffer UID – Detectează un card RFID valid (cu header 0x02 și footer 0x03și extrage UID-ul.+**Funcții de control și stare:** 
 +       * busy – Flag de protecție împotriva apelurilor multiple simultane din surse diferite ​(ex: RFID și Bluetooth).
  
-Acces temporar – Dacă UID-ul este detectat, se deblochează poarta 5 secunde, apoi se revine la starea inițială. +       * buffer ​UID – Verifică formatul și lungimea pachetului RFID pentru ​validare.
-Funcții Bluetooth:​ +
-btSerial.listen() ​– Activează ascultarea pe canalul software serial ​pentru ​Bluetooth.+
  
-Comenzi textuale ​– Primește comanda DESCHIDE și acționează poarta ca la scanarea RFID.+       * lcd.print() ​– Afișează stări de sistem: cutie ocupată, deschisă, liberă.
  
-Funcții de control și stare: +**Logica principală loop():**
-busy – Flag de protecție împotriva apelurilor multiple simultane din surse diferite ​(exRFID și Bluetooth).+
  
-buffer UID – Verifică ​formatul ​și lungimea pachetului RFID pentru validare.+       ​* ​Verifică ​distanța: Dacă un obiect este detectat la mai puțin de 20 cm → LED roșu și oprire temporară a funcțiilor.
  
-lcd.print() – Afișează stări de sistemcutie ocupatădeschisă, liberă.+       * Starea servomotoruluiDacă este deschis ​→ LED verde; dacă e închis → LED galben.
  
-Logica principală loop(): +       ​* ​Verifică ​cardul RFID: Dacă se detectează un UID valid → acțiune acces.
-Verifică ​distanța: Dacă un obiect este detectat la mai puțin de 20 cm → LED roșu și oprire temporară a funcțiilor.+
  
-Starea servomotorului: Dacă este deschis → LED verde; dacă e închis ​→ LED galben.+       * Verifică comenzi Bluetooth: Dacă vine comanda DESCHIDE ​→ acțiune acces.
  
-Verifică cardul RFIDDacă se detectează un UID valid → acțiune acces.+**Pattern-uri de design folosite (implicit):**
  
-Verifică comenzi Bluetooth: Dacă vine comanda DESCHIDE → acțiune acces. +        * State Machine simplificată:​ Starea LED-urilor și a LCD-ului este dependentă de contextul citirii senzorilor (distanță,​ UID, comandă).
-Pattern-uri de design folosite (implicit):​ +
-State Machine simplificată:​ Starea LED-urilor și a LCD-ului este dependentă de contextul citirii senzorilor (distanță,​ UID, comandă).+
  
-Event-driven control: Acțiunile RFID și Bluetooth sunt declanșate doar la recepționarea unui eveniment (UID valid sau comandă BT).+        * Event-driven control: Acțiunile RFID și Bluetooth sunt declanșate doar la recepționarea unui eveniment (UID valid sau comandă BT).
  
-Separation of concerns: Funcțiile readDistanceCM() și setLEDColor() sunt responsabile doar de o sarcină specifică, facilitând mentenanța.+        * Separation of concerns: Funcțiile readDistanceCM() și setLEDColor() sunt responsabile doar de o sarcină specifică, facilitând mentenanța.
  
  
 +===== Rezultate Obţinute =====
  
 +[[https://​github.com/​Alexandra131/​pm_proiect|GitHub cod proiect]]
  
 +[[https://​www.youtube.com/​shorts/​9wE2xbyVbhs|Demo]]
  
pm/prj2025/atoader/alexandra.corcodel.1748387023.txt.gz · Last modified: 2025/05/28 02:03 by alexandra.marinica
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