Smart Parking Access System

  • Autor: Grecu Stefania
  • Grupa: 333CB

Introducere

Proiectul „Smart Parking Access System” urmărește automatizarea și optimizarea accesului mașinilor într-o parcare cu locuri limitate. Sistemul controlează intrarea și ieșirea autovehiculelor în funcție de disponibilitatea în timp real a locurilor, astfel încât nicio mașină să nu între dacă parcarea este plină. Detectarea vehiculelor se face automat, fără intervenția utilizatorului, oferind o experiență simplă și eficientă la acces.

Acest sistem contribuie la reducerea blocajelor din fața garajului și asigură o utilizare mai bună a spațiului disponibil. Este o soluție modernă, autonomă, care poate fi extinsă și adaptată în contexte mai complexe, precum parcări rezidențiale sau centre comerciale inteligente.

Ideea a pornit de la necesitatea de a eficientiza accesul într-un spațiu de parcare limitat și de a evita intrarea vehiculelor atunci când nu mai sunt locuri libere. Astfel, proiectul propune o soluție completă și scalabilă pentru gestionarea automată a accesului într-un spațiu de parcare, punând accent pe simplitate, eficiență și adaptabilitate – principii esențiale în dezvoltarea aplicațiilor inteligente moderne.

Descriere generală

Sistemul „Smart Parking Access System” este compus din mai multe module hardware, care colaborează pentru a asigura o gestionare automată și eficientă a accesului într-o parcare cu locuri limitate.

Accesul mașinilor este monitorizat cu ajutorul unor senzori cu infraroșu (IR) amplasați strategic. Un prim senzor este plasat înainte de barieră, detectând apropierea unui vehicul și verificarea locurilor disponibile. În interiorul parcării, alți trei senzori IR sunt poziționați pe fiecare loc de parcare pentru a detecta în timp real ocuparea acestora.

Ridicarea și coborârea barierei este realizată printr-un servomotor controlat cu semnal PWM, activat automat în funcție de starea senzorilor de intrare/ieșire și de disponibilitatea locurilor. De asemenea, sistemul permite și controlul manual al barierei printr-un buton, util în situații de urgență sau mentenanță.

Un display LCD 16×2 cu interfață I2C afișează în permanență numărul de locuri disponibile, oferind utilizatorilor o informare clară înainte de acces. În plus, fiecare loc de parcare este echipat cu un LED, care indică vizual starea acestuia (liber sau ocupat), contribuind la o navigare ușoară în interiorul parcării.

Toate aceste componente sunt coordonate de o placă Plusivo, care funcționează ca unitate de control central. Ea gestionează întreruperile externe generate de senzori, controlează servomotorul și actualizează afișajul LCD și LED-urile în timp real, oferind un sistem complet automatizat și ușor de extins.

Hardware Design

În această schemă a sistemului „Smart Parking Access System”, putem identifica clar conexiunile dintre placă și diferitele componente. Mai jos este o descriere detaliată a pinilor utilizați pentru fiecare componentă, împreună cu o justificare a alegerii acestora:

  1. Senzori IR (Infraroșu) – 5 senzori
    • 3 senzori pentru locuri de parcare
      • Conectați la D4, D5, D6
      • Motiv: Acești pini digitali sunt utilizați pentru citirea valorilor binare de la senzorii IR, care detectează prezența vehiculului în fiecare loc. Pinii D4–D6 sunt alăturați, ceea ce facilitează organizarea fizică a conexiunilor pe breadboard.
    • 1 senzor de intrare (înainte de barieră)
      • Conectat la D2
    • 1 senzor de ieșire (după barieră)
      • Conectat la D3
      • Motiv: Pinii D2 și D3 sunt printre puținii pini digitali de pe placă care suportă intreruperi externe, ceea ce permite declanșarea unor acțiuni imediate atunci când o mașină intră sau iese, crescând precizia în actualizarea numărului de locuri disponibile.
  2. LED-uri de semnalizare pentru locuri de parcare – 3 LED-uri
    • Conectate la D7, D8, D10
    • Motiv: Pinii digitali sunt potriviți pentru comanda simplă a LED-urilor prin digitalWrite. LED-urile sunt poziționate în așa fel încât să reflecte direct starea locurilor de parcare.
  3. Servomotor pentru barieră
    • Conectat la D9
    • Motiv: Servomotoarul necesită semnal PWM pentru poziționare precisă. Pinul D9 este un pin PWM de pe placă, ideal pentru controlul precis al poziției brațului barierei (sus/jos).
  4. LCD 16×2 cu interfață I2C
    • Pini folosiți: SDA → A4; SCL → A5
    • Motiv: Comunicarea I2C necesită doar două fire, reducând numărul de pini utilizați și permițând extinderea proiectului. A4 și A5 sunt pinii dedicați I2C pe placă, iar această alegere respectă standardele de conectivitate și compatibilitate cu librăria LiquidCrystal_I2C.
  5. Buton de control manual al barierei
    • Conectat la D11
    • Motiv: D11 este un pin digital ideal pentru citirea stării unui buton cu digitalRead. Acesta oferă o metodă alternativă de control manual în caz de defecțiune a senzorilor sau pentru testare.
  6. Alimentare și masă
    • +5V de la Arduino → toate modulele (senzori IR, LED-uri prin rezistențe, modul I2C, servomotor)
    • GND → comun pentru toate componentele
    • Motiv: Toate componentele electronice trebuie să aibă o referință comună de masă pentru funcționare corectă. Alimentarea la 5V este compatibilă cu majoritatea modulelor folosite într-un astfel de sistem.

Bill Of Materials


Componenta Link Datasheet
Placă de dezvoltare compatibilă cu Arduino UNO (ATmega328p și CH340) Optimus Digital Datasheet
Display LCD 1602 Optimus Digital Datasheet
Modul de conversie IIC/I2C pentru interfata LCD1602 Optimus Digital Datasheet
Modul Senzor Infrarosu de Obstacole HM201 Optimus Digital Datasheet
LED Galben Optimus Digital Datasheet
Buton cu capac rotund alb SX14 Optimus Digital Datasheet
Micro Servomotor SG90 Optimus Digital Datasheet

Software Design

Proiectul simulează un sistem automat de parcare inteligentă, în care este monitorizat numărul locurilor disponibile și se controlează o barieră de acces prin intermediul unui servomotor. Mediul de dezvoltare utilizat este Arduino IDE, în combinație cu o placă de dezvoltare compatibilă Arduino Uno (model Plusivo cu ATmega328p și CH340).

În cadrul proiectului au fost folosite următoarele librării externe:

  • Wire.h - comunicare cu I2C
  • LiquidCrystal_I2C.h - pentru afișajul LCD 1602 prin interfață I2C
  • Servo.h - pentru controlul servomotorului de la barieră

Legat de algoritmi și structurile implementate am folosit:

  • gestionarea intreruperilor - pentru detecția vehiculelor la intrare și ieșire (folosind INT0 și INT1)
  • controlul barierei - cu servomotor, deschidere și închidere automată după o durată prestabilită (folosind millis() în loc de delay() pentru o execuție non-blocantă)
  • afișarea dinamica pe LCD - a numărului de locuri libere
  • aprinderea LED-urilor - pentru semnalizarea stării fiecărui loc de parcare

Surse și funcții implementate:

  • deschidereBariera() și inchidereBariera()
  • afisareLCD()
  • intrareInterrupt() și iesireInterrupt() pentru senzorii de lângă barieră
  • loop principal pentru update-ul LED-urilor și a butonului

Rezultate Obţinute

Stadiul actual al implementarii software

Proiectul este funcțional:

  • Se poate controla bariera automat la detecția unui vehicul.
  • Afișajul LCD arată în timp real câte locuri sunt disponibile.
  • LED-urile indică starea fiecărui loc de parcare.
  • Există și un buton manual pentru deschiderea/închiderea barierei.
Biblioteci

Motivația alegerii:

  • Servo.h: permite controlul intuitiv și stabil al unui servomotor SG90.
  • LiquidCrystal_I2C.h: eficientă pentru a reduce cablajul între Arduino și LCD, folosind doar magistrala I2C.
  • Wire.h: necesară pentru comunicarea I2C.
Utilizarea funcționalităților din laborator

Proiectul aplică concret concepte învățate în laborator:

  • utilizarea întreruperilor hardware (INT0 și INT1) pentru detecția evenimentelor de intrare și ieșire în timp real, fără a bloca execuția programului.
  • controlul unui servomotor prin semnal PWM, pentru acționarea precisă a barierei automate.
  • interfațarea cu un afișaj LCD 1602 prin protocol I2C, reducând astfel numărul de pini utilizați și facilitând comunicarea eficientă.
  • citirea senzorilor digitali de obstacol (IR) pentru monitorizarea în timp real a locurilor de parcare.
  • folosirea unui buton cu rezistență de pull-up internă, eliminând necesitatea unei componente externe suplimentare.
Scheletul proiectului și interacțiunea componentelor
  • senzor la intrare / ieșire: trimit semnal la controler prin întreruperi.
  • servomotorul: deschide bariera dacă sunt locuri libere, sau la apăsarea butonului.
  • senzori locuri parcare: indică în timp real ocuparea locurilor.
  • LED-uri: semnalează starea fiecărui loc.
  • LCD: arată disponibilitatea locurilor.
  • buton manual: permite control direct al barierei.

Calibrarea senzorilor s-a realizat manual, ajustând sensibilitatea acestora cu ajutorul unei șurubelnițe până când detecția la distanță mică a devenit stabilă și consistentă.

Optimizări realizate
  • înlocuirea funcției delay() cu verificarea timpului folosind millis() pentru a evita blocarea execuției.
  • folosirea întreruperilor pentru a detecta rapid și eficient intrarea/ieșirea vehiculelor.
  • refactorizarea logicii barierei pentru a evita apeluri redundante.
  • actualizarea LCD doar când e necesar, pentru a preveni flicker-ul și a reduce consumul de resurse.

Concluzii

Realizarea acestui proiect m-a ajutat să înțeleg mai bine cum se pot combina diferite componente electronice pentru a crea un sistem funcțional și automatizat. Am folosit întreruperi pentru a răspunde rapid la evenimente, am controlat un servomotor pentru barieră, am citit starea senzorilor digitali și am afișat informații relevante pe un LCD prin I2C.

Sistemul funcționează stabil și reacționează corect la semnalele de intrare, ceea ce mi-a dat încredere că logica implementată este solidă. De asemenea, partea practică, în care am asamblat totul în cutie, m-a ajutat să văd cum se transformă un proiect de laborator într-un prototip mai aproape de unul real.

În ansamblu, a fost o experiență foarte utilă și am învățat multe lucruri pe care sigur le voi aplica și în alte proiecte.^_^

Download

Jurnal

În data de 10.05.2025 am testat funcționalitatea de bază a sistemului „Smart Parking Access System”.

Ce am verificat:

  • Aprinderea LED-urilor corespunzătoare în momentul detectării obstacolelor (mașini) în locurile de parcare.
  • Activarea servomotorului pentru deschiderea barierei la detectarea unui vehicul în dreptul senzorului de intrare/ieșire.

Observații:

  • LED-urile s-au aprins corespunzător pentru fiecare loc ocupat.
  • Bariera s-a ridicat automat atunci când un obstacol a fost detectat de senzorul de intrare.

Sistemul răspunde corect la semnalele de la senzori.

[!Test video](https://www.youtube.com/shorts/Fjd1aY-NIFs)

În data de 15.05.2025 am finalizat implementarea completă a sistemului „Smart Parking Access System”.

Ce am realizat:

  • Integrarea completă a componentelor hardware (senzori, servo, LED-uri, afișaj LCD, buton).
  • Optimizarea codului pentru actualizarea LCD-ului doar atunci când numărul de locuri libere se modifică.
  • Verificarea funcționării întreruperilor hardware și a butonului cu rezistență de pull-up internă.

Observații:

  • Sistemul a funcționat corect în toate scenariile testate.
  • Afișajul LCD a reacționat doar la modificări reale ale stării parcării.
  • Codul este stabil și eficient, fără blocaje sau comportamente neprevăzute.

În data de 17.05.2025 am realizat asamblarea finală a sistemului în cutie.

Ce am realizat:

  • Fixarea componentelor în interiorul unei carcase personalizate, asigurând protecție și organizare.
  • Dispunerea corectă a cablajului pentru a preveni deconectările sau scurtcircuitele.
  • Poziționarea vizibilă și accesibilă a afișajului LCD, butonului și senzorilor.

Observații:

  • Sistemul are un aspect profesional, fiind ușor de transportat și utilizat.
  • Toate funcționalitățile au fost păstrate intacte după asamblare.
  • Sistemul este pregătit pentru prezentare și testare practică.

[!Video](https://www.youtube.com/shorts/jCaRK_5gp6w)

Bibliografie/Resurse

pm/prj2025/vradulescu/stefania.grecu.txt · Last modified: 2025/05/25 17:32 by stefania.grecu
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