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 01:29]
alexandra.marinica
pm:prj2025:atoader:alexandra.corcodel [2025/05/28 13:12] (current)
alexandra.marinica [Rezultate Obţinute]
Line 25: Line 25:
   *    Modul Bluetooth HC-05   *    Modul Bluetooth HC-05
   *    Servo motor   *    Servo motor
 +  *    Modul LCD I2C
  
 +{{:​pm:​prj2025:​atoader:​circuit_image_2_alexa.png?​800|}}
  
-{{:pm:​prj2025:​atoader:​circuit_img_alexa.png?​200|}}+**Pini folositi:**
  
 +Bluetooth: ​
 +      * VCC - 5V
 +      * GND - GND 
 +      * TXD - RX <- 0
 +      * RXD - TX - > 1
 +
 +RFID card reader:
 +      * VCC - 5V
 +      * GND - GND
 +      * TX - D3
 +
 +Servo motor:
 +      * VCC - 5V
 +      * GND - GND 
 +      * SIGNAL - D7
 +
 +Ultrasonic Sensor HC-SR4:
 +      * VCC - 5V
 +      * GND - GND
 +      * ECHO - D6
 +      * TRIG - D5
 +
 +Led RGB:
 +      * GND - GND
 +      * R - D11
 +      * G - D12
 +      * B - D13
 +
 +Modul LCD I2C:
 +      * VCC - 5V
 +      * GND - GND 
 +      * SDA - A4
 +      * SCL - A5
 +
 +**Cablaj electric:**
 +
 +
 +{{:​pm:​prj2025:​atoader:​whatsapp_image_2025-05-28_at_00.47.12.jpeg?​600|}}
 +{{:​pm:​prj2025:​atoader:​whatsapp_image_2025-05-28_at_00.47.08.jpeg?​600|}}
 +
 +===== Software Design =====
 +**Mediu de dezvoltare:​** ​
 +     * PlatformIO
 +
 +**Librării utilizate:​**
 +     * 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).
 +
 +     * LiquidCrystal_I2C.h – Bibliotecă specializată pentru afișajele LCD compatibile I2C, utilizată pentru mesaje textuale pe ecran.
 +
 +      * SoftwareSerial.h – Permite comunicarea serială pe pini digitali neconvenționali,​ utilizată pentru conectarea modulului RFID și Bluetooth.
 +
 +      * 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.
 +
 +**Servomotor:​**
 +lockServo.write() – Controlează poziția încuietorii (0° = închis, 90° = deschis).
 +
 +**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.
 +
 + ​**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.
 +
 +**Funcții 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.
 +
 +**Funcții de control și stare:**
 +       * busy – Flag de protecție împotriva apelurilor multiple simultane din surse diferite (ex: RFID și Bluetooth).
 +
 +       * buffer UID – Verifică formatul și lungimea pachetului RFID pentru validare.
 +
 +       * lcd.print() – Afișează stări de sistem: cutie ocupată, deschisă, liberă.
 +
 +**Logica principală loop():**
 +
 +       * 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ă cardul RFID: Dacă se detectează un UID valid → acțiune acces.
 +
 +       * Verifică comenzi Bluetooth: Dacă vine comanda DESCHIDE → acțiune acces.
 +
 +**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).
 +
 +        * 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.1748384952.txt.gz · Last modified: 2025/05/28 01:29 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