Dorobantu Viorel1 Converted [631471]

5
Cupr ins

Cuprins ………………………….. ………………………….. ………………………….. ………………………….. ……… 5
Capitolul 1. Introducere ………………………….. ………………………….. ………………………….. ………… 6
Capitolul 2. Tehnologiile parcărilor inteligente ………………………….. ………………………….. ……. 8
2.1. Scurt istoric ………………………….. ………………………….. ………………………….. ………………………. 8
2.2. Avantajele implementării sistemelor de parcare inteligentă ………………………….. ……………. 9
2.3. Tehnologii pentru parcări inteligente ………………………….. ………………………….. …………….. 10
2.3.1.Sistemul E -parcare ………………………….. ………………………….. ………………………….. …………. 10
2.3.2. Sistemul E -Zpass ………………………….. ………………………….. ………………………….. ……………. 11
2.3.3.Sisteme de parcare cu rezervare ………………………….. ………………………….. ………………….. 11
2.3.4. Asistență, informare și rezervare cu telefonul mobil ………………………….. ……………………. 12
2.3.5.Principii de funcționare a sistemului tele -parcare ………………………….. ………………………. 13
2.3.6 .Modele de planificare în parcare … ………………………….. ………………………….. ……………… 13
2.4. Tehnologii de monitorizare ………………………….. ………………………….. ………………………….. .. 14
2.4.1. Monitorizarea în timp real pentru ocuparea locurilor de parcare ………………………….. … 15
2.5. Tehnologii de detectare a vehiculelor în parcare ………………………….. ………………………….. 16
2.5.1. Sistemul de detectare a spațiului de parcare ………………………….. ………………………….. …. 21
2.6. Kituri de instalare ………………………….. ………………………….. ………………………….. ……………. 22
Capitolul 3. Parcarea inteligentă – proiect demonstrativ ………………………….. …………………. 25
3.1. Realizarea practică a proiectului ………………………….. ………………………….. …………………… 24
3.2. Proiectarea si implementarea sistemului de parcare ………………………….. …………………….. 26
3.2.1. Realizarea părții mecanice ………………………….. ………………………….. …………………………. 26
3.2.2. Realizarea părții hardware ………………………….. ………………………….. …………………………. 26
3.2.2. Realizarea părții soft ware ………………………….. ………………………….. ………………………….. 39
3.3. Testarea parcării inteligente ………………………….. ………………………….. ………………………….. 42
Capitolul 4 . Concluzii ………………………….. ………………………….. ………………………….. …………… 44
Bibliografie ………………………….. ………………………….. ………………………….. ………………………….. 45
Anexă ………………………….. ………………………….. ………………………….. ………………………….. ………. 47

6
Capitolul 1
Introducere

În zilele noastre, evoluția lumii este foarte accelerata de noile tehnologii, astfel tot mai mulți
oameni au mașini și automat intervine problema locurilor de parcare, deoarece infrastrctura este
subdimensionată. De exemplu, in București, in 2 010 erau amenajate doar 450.000 de locuri de parcare,
iar numărul mașinilor înmatriculate in județul Ilfov depășea un milion, fără a lua în calcul mașinile
care tranzitează orașul sau mașinile inmatriculate in alte județe. Acest lucru se datorează faptului că
actualul mecanism de infrastructură de transport și parcare auto dezvoltate, sunt în imposibilitatea de a
face față fluxului de vehicule. Pentru a atenua aceste probleme, a fost dezvoltat sistemul de parcare
inteligent. [5]
Actualmente, stilul de viață și confortul, dau naștere la un trafic intens de vehicule în interiorul
orașelor. Circa 160 de milioane de litri de carburant se consuma zilnic pentru procesul cautarii
locurilor de parcare. Conform unor estimări făcute de spec ialiști, construirea parcărilor inteligente va
reduce poluarea si se vor face economii substanțiale de timp si bani.
În Statele Unite există 4 locuri de parcare pentru fiecare autovehicul, iar cele mai multe străzi
sunt goale în majoritatea timpului, ducân d la medii urbane, care, ironic, fac mult mai mult pentru a
găzdui vehicule decât oameni. Pe măsură ce populația globală continuă să se urbanizeze, fără o
retragere bine planificată, bazată pe confort , din mașină, aceste probleme se vor agrava. [1]
Parcare a inteligentă este primul pas în direcția bună. Aceasta presupune utilizarea unor senzori
cu costuri reduse, colectarea datelor în timp real și sisteme de plăți automatizate care permit oamenilor
să rezerve parcarea în avans sau să vadă exact unde vor găsi un loc de parcare. Atunci când este
implementat ca sistem, parcarea inteligentă reduce astfel emisiile de la automobile în centrele urbane,
reducând nevoia oamenilor de a căuta inutil locuri de parcare în apropierea blocurilor unde locuiesc.
De asemenea, permite orașelor să își gestioneze cu atenție oferta de parcare. [9]
Programele pilot inteligente de parcare sunt în curs de desfășurare în San Francisco, Los
Angeles, Stockholm, Beijing, Shanghai, Sao Paulo și Olanda. În Los Angeles, senzorii cu putere
redusă și contoarele inteligente urmăresc ocuparea locurilor de parcare în întregul cartier din
Hollywood, una dintre cele mai aglomerate zone. Utilizatorii pot accesa datele de ocupare pentru a
determina disponibilatea locurilor de parcare și apoi pot plăti cu ajutorul telefonului mobil.
De exemplu, Roadify a început în 2009 cu o aplicație gratuită care a ajutat locuitorii New York
City să găsească spații de parcare. Utilizatorii introduc adresa unui loc pe care urmează să îl
părăsească sau unui loc disponibil pe care urmează sa se parcheze, câștigând puncte cunoscute sub
denumirea de Street Carma (utilizatorii pot mai târziu să plătească cu aceste puncte). Alți utilizatori
din apropiere vor vedea acel loc în aplicație dacă vor căuta în zonă. Aplicați a a fost extinsă până în
prezent în orașe la nivel național și oferă în prezent informații de tranzit în timp real cu privire la orare,
întârzieri, accidente și multe altele. [7]
În cele din urmă, pe termen lung, parcarea inteligentă poate transforma, de f apt, foarte mult
peisajul urban, făcându -l mai accesibil oamenilor decât mașinilor . În cele din urmă, spațiile urbane p ot
deveni mai verzi, mai curate,

7

Figura nr.1.1. Parcare inteligenta
Sistemul de parcare inteligent este considerat benefic pentru operatori de parcări auto, patroni
și pentru mediul înconjurator, asa cum se observă în Fig 1.1.

Scopul lucrării este de a construi o parcare inteligentă, bazată pe senzori ultrasonici și acces pe
bază de cartelă pentru a putea testa funcșionalitat ea acestor senzori și implementarea pe viitor într -o
parcare reală.
Capitolul doi prezintă tehnologiile unei parcări inteligente, generalități care m -au ajutat să
realizez acest proiect.
În capitolul trei se găsesc informații despre proiectul pe care l -am realizat, parte hardware,
software și mecanică.
Capitolul patru cuprinde concluziile acestui proiect.

8
Capitolul 2
Tehnologiile parcărilor inteligente
2.1. Scurt istoric
Un sistem de parcare inteligentă se referă la un sistem mecanic conceput ca fiind un spațiu
minim disponibil unde pot parca un număr mare de mașini. Acest sistem transportă mașinile fără a fi
nevoie de șofer într -un loc de parcare liber. În 1905 a fost introdus pentru prima dată în Paris, Fr anța,
la Garage Rue de Ponthieu, așa cum se observă în Fig. 2.1. [3]

Figura nr .2.1. Parcarea inteligentă din anul 1905 – Franța
În jurul anului 1920, în Fig. 2.2. se prezintă un sistem lift, conceput ca o roată care putea
transporta până la 8 mașini. Această idee a devenit po pulară la scurt timp deoarece era foarte usor de
construit si ocupa mai puțin spațiu. Acest sistem a fost dezvoltat în timp pana la capacitatea de a parca
peste o mie de autoturisme. [5]

Figura nr .2.2. Parcarea tip Lift

9
Asemenea sisteme de parcări inteligente au fost implementate în București și alte mari orașe
din țară, printe care și Timișoara.
În București a fost implementat un sistem din metal pe care îl in talnim in multe orașe din lume,
așa cum se observă în Fig. 2.3. Spațiul unui loc de parcare poate găzdui până la 6 autoturisme. Acest
sistem funcționează pe curent, așadar totul este extrem de silențios si automatizat. Pentru a putea folosi
o astfel de parcare trebuie sa introduceți parola, moment în care poarta se deschide și lăsați mași na pe
platforma de la parter, autoturismul urcă singur exact pe locul închiriat. În cazul unei pene de curent,
generatorul pornește automat, riscul de a rămâne mașina blocată fiind exclus.

Figura nr.2.3. Parcare Parking+Plus în București

2.2 Avantajele implementării sistemelor de parcare inteligentă
Sistemele de parcare inteligentă sunt benefice pentru utilizatori, patroni dar și pentru
conservarea mediului înconjurător. Utilizatorii economisesc timp și bani deoarece iși găsesc foarte
repede u n loc de parcare cu ajutorul aplicațiilor pentru telefoanele mobile, patronii fac profit, dar și
mediul are de câștigat deoarece scade numărul emisiilor produse de mașini. Cu informațiile furnizate
în timp real pe telefonul mobil, conducătorii auto pot evi ta parcările pline și se pot deplasa spre alta
parcare cu locuri libere. Automat o să scada numărul mașinilor parcate ilegal pe marginea drumului,
traficul se fluidizează și congestio narea traficului va fi redusă. [8]

2.3. Tehnologii pentru parcări inteli gente
Ideea unei parcări inteligente este foarte bună pentru rezolvarea problemei cauzate de
autoturismele parcate neregulamentar. Această parcare notifică conducătorii de autoturisme locurile
libere disponibile, permite rezervarea locurilor, este u șor de găsit datorită înălțimii, ilustrată în Fig.
2.4.

10

Figura nr.2.4. Model schematic pentru arhitectura sistemului de parcare inteligentă

2.3.1 Sistemul E -parcare
E-parking este un sistem de parcare automatizată, înlocuind parcările și garajeșe tradiționale
care ocupa foarte mult spațiu. Acest sistem este foarte simplu pentru utilizatori deoarece se poate
folosi cu ajutorul telefonului mobil (SMS sau internet), tot prin intermediul telefonului se poate
rezerva un loc de parcare pentru o perioada mai mare. [1]
În Fig. 2.5. este explicat cum functionează Sistemul e -parcare: lasași mașina în locul indicat,
sistemul hidraulic sau mecanic acționeaza fie pe verticală, fie în sus sau în jos, sau orizontal la dreapta
sau la stânga, acest sistem este capa bil de a parca mașina în orice direcție, când solicitați mașina,
sistemul acționeaza în sens invers și in 2 minute puteți pleca cu mașina.

Figura nr . 2.5. Exemplu de mesaj de rezervare parcare inteligentă

11

2.3.2. Sistemul E -Zpass
Sistemul E -Zpass – este un dispozitiv electronic de identificare a vehiculului. Fizic este
alcătuit dintr -o antenă și circuite electronice proiectate pentru a efectua tranzacția pentru plata taxelor ,
așa cum se observă în Fig. 2.6 . Utilizează această etich etă pentru operațiunile de identificare și de
plată. Sistemul de procesare a datelor E -Zpass deduce valoarea de taxare corespunzătoare din contul
utilizatorului. Dacă sistemul detectează că nu sunt bani în cont, trimite un mesaj utilizatorului pentru a
rezolva problema cât mai curând posibil. [1]

Figura nr . 2.6. Principiu de funcționare a sistemului E -Zpass

2.3.3. Sisteme de parcare cu rezervare
Una dintre cauzele majore ale congestionării traficului și timpul de călătorie pierdut este
căutarea unui loc de parcare, deoarece tendința este de a conduce foarte încet atunci când caută un loc
de parcare. Majoritatea oamenilor, în special în cartierele de afaceri încercând să găsească un loc de
parcare, conduc în cerc până vor găsi un loc de parcare. M ai mult decât atât, căutarea unui loc de
parcare , cum se observă în Fig. 2.7. duce la frustrare în rândul conducătorilor auto, rezultând la
pierderea productivității. Metodologiile care încearcă să abordeze această problemă sunt: creșterea
capacității de p arcare și utilizarea sistemelor informatice de orientare în parcare, care sunt din ce în ce
mai populare în SUA, Europa și Japonia. [7]
Un nou concept în domeniul sistemelor de transport inteligente este dezvoltarea de sisteme de
parcare cu rezervare pentr u a ajuta șoferii cu asigurarea unui loc de parcare. Aceste sisteme diferă de
sistemele standard cu abonamente săptămânale sau lunare, deoarece se bazează pe operațiuni în timp
real.

12

Figura nr . 2.7. Pașii pentru rezervarea unui loc de parcare

2.3.4. Asistență, informare și rezervare cu telefonul mobil
Una dintre cele mai populare este utilizarea unui telefon. Acest sistem este des întâlnit în
Europa și Japonia, mai degrabă decât in SUA. În același timp, este una dintre cele mai puțin
costisitoa re modalități de a trimite informații conducătorilor. Informațiile despre parcare și rezervare
pot fi trimise prin sms. [9]
În cadrul acestui sistem, călătorul are capacitatea de:
• A parca – primește informații despre locurile libere de parcare, utilizatorul specifică
interesul pentru un loc și trimite informațiile la server printr -un mesaj sau e -mail
• A rezerva – folosind o aplicație, utilizatorul trimite o cerere către server specificând
perioada sosirii și plecării, precum și numele.
Acest sist em permite doua tipuri de utilizatori:
• Abonați – au propriul profil care este format din nume, preferințele de parcare, perioada
sosirii și plecări pe zi și oră. Dacă abonatul parchează în aceeași perioadă din zi și oră, atunci sistemul
va rezerva în funcț ie de profilul utilizatorului. În alte cazuri, noua destinație și caracteristicile trebuie
introduse în momentul solicitării.
• Non-abonați – este necesar să introducem informațiile persoanle.
Progresele în domeniul telecomunicațiilor și sistemele de transport inteligente au favorizat
dezvoltarea sistemelor de orientare și informare în parcare în diferite țări din toată lumea. Un sistem de
rezervare a locurilor de parcare ar putea fi pus în aplicar e pentru sistemul park and ride, se poate
observa în Fi g. 2.8.

13

Figura nr . 2.8. Asistență, informare și rezervare cu telefonul mobil

2.3.5. Principii de funcționare a sistemului tele -parcare
Acest sistem are propria memorie, nu depinde de disponibilitatea rețelei. Inițializarea parcării
se face din interiorul vehiculului, fără a fi nevoie ca șoferul să plece. Tarifele de parcare sunt afișate pe
telefonul mobil și sunt compilate și stocate în memoria lui. Pentru a încheia tranzacția de parcare,
șoferul se întoare la vehicul si o dezactivează, timp în care este afișată taxa de parcare, iar datele sunt
transmise la calculatorul supervizorului.

2.3.6. Modele de planificare în parcare
Sunt o parte integrantă a modelelor de planificare de transport. Vehiculele ajung în parcările
park and ride în timpul perioadei de vârf de dimineată si pleacă în perioada de vârf de seară. Ele pot fi
împărțite în 3 mari categorii:
• Locuri de parcare pentru ce care merg la destinația finală
• Locuri de parcare pentru utilizatorii intermodali (vehicul plus autobus, tren , bicicletă)
• Locuri de parcare pentru utilizatorii intermodali si utilizatorii auto
Ultimele două cazuri se încadrează în categoria de facilități park and ride și atrage
următoarele tipuri de călători:
• Un singur utilizator pentru vehicul
• Doi sau mai mulți utilizatori pentru vehicul
• Utilizatori de biciclete

14
• Utilizatori de biciclete care iau bicicleta cu ei în vehiculul de tranzit (autobuz sau tren)
• Unul sau mai mulți șoferi folosesc un vehicul comun
Prin urmare, aceste modele de transport ar trebui să poat ă capta aceste tipuri de opțiuni de
traseu pe care utilizatorii le folosesc și estimarea cererii pe rețeaua de transport cu mai multă precizie.
Stabilirea unui model de planificare a transporturilor, fiind în măsură să evalueze diverse îmbunătățiri
ale inf rastructurii este esenșială având în vedere creșterea populației care face durabilitatea sistemului
de transport bazat pe vehicule. Un astfel de model va ajuta factorii de decizie în furnizarea unui sistem
de transport echitabil și echilibrat pentru pieton i, bicicliști, utilizatori de tranzit, utilizatori auto, flore
de camioane. Un exemplu este sistemul Park and ride din Fig. 2.9. [1]

Figura nr . 2.9. Sistemul park and ride

2.4. Tehnologii de monitorizare:
• Contorizarea numărului de autoturisme care intră și ies din parcare – Cu ajutorul acestei
tehnologii se poate estima gradul de ocupare într -o parcare. Aceasta este cea mai ieftina tehnologie
deoarece se amplasează la fiecare intrare și ieșire din parcare.
• Contorizarea numărului de vehicule care intră și ies din fiecare loc de parcare și fiecare
intrare și ieșire – această tehnologie afișează ocuparea locurilor de parcare pentru întreaga instalație și
pentru fiecare loc. Capacitatea pentru fiecare loc este foarte importa ntă pentru spațiile de parcare de
mari dimensiuni în cazul în care vehiculele pot fi îndreptate la locurile de parcare gratuite.
• Contorizarea gradului de ocupare a fiecărui loc de parcare – această tehnologie oferă un
status continuu al fiecărui loc de par care. Acest sistem se poate folosi și în parcările supraetajate și în
parcări foarte mari, deoarece nu este benefic pentru parcările mici. Pentru o buna eficiență, ar trebui
integrat cu un sistem PGI, pentru a direcționa vehiculele spre locurile libere, r educând timpul necesar
pentru căutarea unui loc de parcare.
• Identificarea fiecarului vehicul și/sau șofer – acest sistem este folosit pentru a estima
atât gradul de ocupare în parcare și identificarea vehiculului care intră. Cea mai tradițională metodă
este utilizarea unui însoțitor de parcare, care permite doar vehiculele autorizate pentru a intra.

15
Tehnologia avansează și mulți operatori de parcare se bazează din ce în ce mai mult pe sisteme
automatizate, după cum urmează: cărți de identitate magnetice, ca rduri wireless sunt din ce în ce mai
populare deoarece utilizează comunicațiile fără fir, tehnologia video este folosită pentru a identifica
numărul de înmatriculare.
• Deschidere barieră sau poartă – una din funcțiile sistemelor de identificare vehicul este
de a deschide poarta pentru a intra sau ieși din parcare.
• Contorizarea numărului de intrări și ieșiri pentru o zi – pentru a realiza estimările
sosirilor pe perioada unei zile, detectoarele trebuie să fie amplasate în diferite locuri de pe drumurile
care duc la parcare. Tehnologia video este singura care ar putea fi folosită pentru a furniza informații
precise ale ratei de sosiri. Rata de plecare se bazează pe detectoare care sunt amplasate aproape de
ieșire.

2.4.1. Monitorizarea în timp real pentru ocup area locurilor de parcare
Utilizarea mai multor tehnologii de monitorizare a unui loc de parcare este dată de
funcționalitatea care este impusă de fiecare operator de parcare, un exemplu se prezintă în Fig. 2.10.
Aceasta poate include:
• Loc parcare pentru m așinile de mentenanță
• Gradul de ocupare în parcare
• Loc de parcare nominal
• Recunoașterea plăcuței de înmatriculare
• Recunoașterea id -ului mașinii sau conducătorului
• Barieră automată deschidere – închidere
• Acoperire parțială sau completa a autoturismului
• Afișaj de informare pentru șoferi
Cel mai simplu sistem de monitorizare este format din detectoare amplasate la intrările și
ieșirile din fiecare parcare. Tehnologii de monitorizare a unei parcări:
• Vids – tehnologia video poate fi folosită pentru estimarea fluxului de trafic intrări/ieșiri
fără a fi nevoie de bariere, porți sau alte sisteme. Această tehnologie recunoaște numărul de
înmatriculare a vehiculului și poate fi folosit pentru a avea acces și pentru a plăti taxa de parcare .
• RFID – este ușor de folosit de călătorii care au încorporate în vehiculele lor această
tehnologie (utilizarea de E -Zpass la principalele aeroporturi din New York).
• RFID telefon mobil – telefonul este tehnologia cea mai promițătoare și cuprinzătoare,
care ar putea fi f olosit pentru ocuparea locului de parcare.

16

Figura nr . 2.10. Parcare supravegheată video

2.5. Tehnologii de detectare a vehiculelor în parcare
Cele doua categorii majore pentru detectarea fluxului de date sunt tehnologii încorporate și de
tip aerian. Senzorii încorporați necesită inchiderea parcării sau a traficului în timpul instalării sau
mentenanței. Tehnologia de tip aerian este considerată cea mai eficientă, deoarece întreținerea este mai
puțin restrictivă decât sistemele integrate. [2], [1 0]
Detectoarele cu bucle inductive – au fost utilizate pe scară largă aproximativ 50 de ani pentru
monitorizarea fluxului de trafic, sisteme de incidente, detectarea prezenței și pătrunderea în parcare.
Precizia este legată de instalarea corectă și calibra rea detectoarelor cu buclă. Aceste detectoare sunt
foarte scump de întreținut, sunt predispuse la la riscuri, cum ar fi apa, se infiltrează in sol, ajungând la
detectoare (se prezintă în Fig. 2.11) . Reparația necesită dezgroparea, deci reducerea capacități i
locurilor de parcare sau chiar oprirea circulației în zona respectivă.

Figura 2.11. Detectoare cu bucle inductive – principiu de funcționare

Micro buclă non -invazivă – sunt niște senzori plasați într -o conductă de protecție sub
suprafața drumului (Fig. 2.12.) . Funcționalitatea este asemănătoare cu buclele tradiționale, deoarece
este într -un mediu protejat, senzorul poate monitoriza în mod constant, indiferent de condițiile meteo.
[1]

17

Figura nr . 2.12. Micro buclă non -invazivă

Magnetometru (magnetometru sondă magnetometrică) – pot fi cu fir sau fără fir. Acestea
utilizează o tehnologie de detectare pasivă prin care detecteaza obiecte voluminoase din fier
(automobile, camioane) prin măsurarea schimbării câmpului magnetic , așa cum se observă în Fig.
2.13. Acestea sunt insensibile la starea vremii, cum ar fi ploaie, ceață, zăpadă. Este mult mai precis și
mai puțin sensibil decât buclele la solicitările de trafic. Printre avantaje întâlnim: cost eficient deoarece
nu necesită cablaj s au casetă de control extern, sunt mult mai puțin invazive, mai puțin costisitoare
deoarece sunt mici, autonome, instalarea necesită doar o gaură mici cu diametrul de 3 inchi .

Figura nr . 2.13. Magnetometru – principiu de funcționare

Senzori acustici – sunt numiți așa, deoarece mecanismul de detectare este mecanic sau
acustic (Fig. 2.14.) . Dacă valul acustic se propagă prin suprafața materialului, orice modificare
afectează viteza și amplitudinea undei. Toate dispozitivele și senzorii acustici utilizează un material
piezoelectric pentru a genera undele acustice. Avantajele oferite de senzorii acustici sunt: suport

18
pentru operarea în banda multiplă asupra anumitelor modele precum și de detectare pasivă. Dar,
senzorii sunt insensibili la precipita ții. Sensibilitatea față de temperatura rece, care afectează acuratețea
datelor , s-a dovedit a fi un dezavantaj.Anumite modele nu se recomandă în cazul vehiculelor lente, cu
opriri și porniri de trafic . [3]

Figura nr. 2.14 . Senzori acustici
Procesare video de imagine – tehnologia de procesare video se folosește de peste 30 de ani.
Un sistem de bază se compune din: una sau mai multe camere sau alte surse video, un procesor pentru
a identifica mașina și calculatorul supervizorului , așa cum se o bservă în Fig. 2.15 . Procesorul poate să
prelucreze simultan informații de la senzorii video, videoclipul este analizat in medie de 25 -30 cadre
pe secundă. Este utilizată în prezent pentru detectarea vehiculelor și recunoașterea numărului de
înmatriculare. Această tehnologie poate fi utilizată pentru a identifica numărul de înmatriculare la
intrarea sau ieșirea de pe un loc de parcare sau pentru a determina daca un loc este ocupat sau nu.
Progresele spre comunicațiile fără fir au depășit limitările privind disponibilitatea lățimii de bandă,
reducerea costurilor de infrastructură.
Într-o parcare, această tehnologie ar putea fi utilizată pentru:
• Gradul de ocupare a unui set de locuri – o cameră amplasată corect ar putea
supraveghea un număr mare de locuri de p arcare
• Recunoașterea numărului de înmatriculare
• Traiectoria vehiculelor pentru a determina estimări cât mai exacte ale sosirilor și
plecărilor
Un avantaj pentru procesarea video este faptul că datele pot fi stocate și analizate pentru a
evalua în continuare acuratețea pentru estimarea specifică traficului. O problemă în ceea ce privește
procesarea video este când vehiculele individuale pot fi greșit interpretate ca unul singur, în cazul în
care două mașini sunt parcate aproape una de alta, sau o ma șină mică este foarte aproape de o dubă,
duba acoperă masina mică. Această problemă se poate corecta cu ajutorul zoom -ului.

19

Figura nr. 2.15. Procesare video de imagine

Identificarea prin radiofrecvență (RFID) – a apărut pentru prima dată în aplicații de acces în
timpul anilor 1980. Rfid se folosește într -o gamă largă de piețe, inclusiv la identificarea sistemelor de
transport automat, datorită capacității sale de a urmăr i obiecte în mișcare. Câștigă popularitate datorită
faptului ca este simplu, ieftin și ușor de întrținut. În Fig. 2.16 se prezintă t ehnologia instalată î n vehicul
care conține actul de identita te al vehiculului și/sau locația . Se împarte în două categorii: sisteme de
comunicații fără fir pe rază scurtă și sisteme de comunicații fără fir pe rază lungă. O unitate RFID este
alcătuită din 3 unități:
• Transceiver – trimite și citește date de la vehicul
• Transponder – trimite informații codificate pentru identifica re
• Antena – primește și emite semnale
Un emițător -receptor trimite și primește semnale printr -o antenă, transceiver -ul poate fi
amplasat la intrarea în parcare pentru a fi identificat vehiculul, transmițătorul este conectat la antenă,
care permite transceiver -ului să comunice cu transponder -ul, care este o unitate programabilă și este
atașat la unitatea de mișcare (vehicul).
Avantajele utilizării RFID:
• Sunt ieftine, întreținere redusă și operare simplă
• Semnalele radio pătrund în structuri opace și nu sunt vizibile
• Detectarea este posibilă la viteze mari
• Sunt reprogramabile prin comunicații fără fir

Figura nr. 2.16. Identificarea prin radiofrecvență (RFID)

20
Senzor infraroșu activ – funcționează prin direcționarea unui fascicul îngust de energie spre
un fundal, cum ar fi carosabilul, într -un interval specificat , așa cum se observă în Fig. 2.17 . O porțiune
a fasciculului este îndreptată înapoi către senzor și vehiculele sunt detecta te prin modificarea
caracteristicilor fasciculului de infraroșu. Avantaj: măsoară viteza vehiculului; dezavantaj: potențial de
degradare datorită condiții lor meteorologice nefavorabile.

Figura nr. 2.17. Senzor infraroșu activ
Senzor infraroșu pasiv – nu transmite energie în sine, ci măsoară cantitatea de energie care
este emisă de obiecte în câmpul vizual , cum se observă în Fig. 2.18 . Avantaj: are o distanță mai mare
de vizualizare pe ceață decât un senzor de lungime de undă vizibilă; dezavantaj: es te sensibil la ploaie
și zăpadă.

Figura nr. 2.18. Senzor infraroșu pasiv

Radare cu microunde – energia electromagnetică este transmisă spre vehiculele de pe
carosabil, așa cum se observă în Fig. 2.19. Parametrii de trafic sunt calculați prin măsurarea
semnalului de retur. Această tehnologie funcționează bine în toate condițiile meteorologice și are o
fiabilitate ridicată.

21

Figura nr. 2.19. Radare cu microunde

Senzori cu ultrasunete – semnale de undă de sunet electronice și o unitate de recepție sunt
folosite pentru a detecta vehiculele care circulă. Sunt sensibili la condițiile meteo si nu măsoară viteza
vehiculului. [2]

Figura nr. 2.20. Senzori cu ultrasunete

2.5.1. Sistemul de detectare a spațiului de parcare
Principalele funcții suplimentare pe care fiecare centru de control al traficului le -ar putea
încorpora sunt:
• Un sistem de procesare a datelor park and ride
• Un sistem complet de sisteme de informare geografica
• Estimarea ocupării locurilor de parcare
• Estimarea fluxului de trafic

22
• Estimarea drumului cel mai scurt și puțin aglomerat
• Cea mai apropiată parcare în funcție de zona unde ne aflăm
• Informații tarife

2.6. Kituri de instalare
Detectoare numai la intrare și i eșire – în această configurație, este necesar amplasarea unui
detector la intrarea și ieșirea din fiecare parcare. Acest sistem contorizează fiecare vehicul care intră și
ies din parcare. Permite operatorului sa folosească aceste informații pentru a face o estimare a
numărului actual de locuri libere. Acest siste m nu se poate folosi în parcările de mari dimensiuni sau
supraetajate. Estimarea costurilor unui astfel de kit, este ruzumată în tabelul 1. [1]

Tabel 1. – Kit 1 – Detectoare numai la intrare și ieșire

Preț $
# Unități Acumul
ator (4
ani) Costul de
instalare $ instal
area
totală Cost
total
Magnetometru 395 6 40 200 1200 3610
Receptor 225 2 N / A 300 600 1050
Total 4660
Video
aparat foto 5000 4 N / A 500 2000 22000
Receptor 2000 2 N / A 300 600 4600
Total 26600
Detectoare
Buclă 700 6 N / A 800 4800 9000
Receptor 2500 2 N / A 300 600 5600
Total 14600

Detectoare la intrare și ieșire și detectoare la fiecare etaj – acest kit este o versiune
îmbunătățită comparativ cu primul, deoarece oferă și detectoare pe fiecare etaj. Acest lucru permite o
estimare a numărului de vehicule care intră și ies pentru fiecare etaj. Aceste informații pot fi
centralizate pentru a informa utilizatorii de locurile libere gratuite pentru fiecare etaj. Estimarea
costuri lor unui astfel de kit, este ruzumată în tabelul 2.

Tabel 2. Kit 2 – la intrare și ieșire și detectoare la fiecare etaj

Preț $
# Unități Acumul
ator (4
ani) Costul de
instalare $ instal
area
totală Cost
total
Magnetometru 395 22 240 200 4400 13330
Receptor 225 6 N / A 300 1800 3150
Total 16480

23
Video
aparat foto 5000 20 N / A 500 10000 110000
Receptor 2000 10 N / A 300 3000 23000
Total 133000
Detectoare
Buclă 700 22 N / A 800 17600 33000
Receptor 2500 10 N / A 300 3000 28000
Total 61000

Detectoare la intrare și ieșire și pentru fiecare loc – este un sistem complet unde putem
monitoriza gradul de ocupare a fiecarui loc de parcare în timp real. Costurile unui astfel de kit sunt
foarte mari, deci foarte pușini operatori îl folosesc. Estimarea costurilor unui astfel de kit, este
ruzumată în tabelu l 3.

Tabelul 3. kit 3 – Detectoare la intrare și ieșire și pentru fiecare loc

Preț în $
# Unități Acumul
ator (4
ani) Costul de
instalare $ instal
area
totală Cost
total
Magnetometru 395 1672 10032 200 334400 1004872
Receptor 225 419 N / A 300 125700 219975
Total 1224847
Video
aparat foto 5000 66 N / A 500 33000 363000
Receptor 2000 33 N / A 300 9900 75900
Total 438900
Detectoare
Buclă 700 1672 N / A 800 1337600 2508000
Receptor 2500 419 N / A 300 125700 1173200
Total 3681200

24
Capitolul 3

Parcarea inteligentă – proiect demonstrativ
3.1. Realizarea practică a proiectului
Acest proiect ilustrează un model de parcare inteligent, la scară redusă, pentru 6 mașini.
În acest capitol, voi descrie proiectarea sistemului de parcare auto inteligent. La baza acestui sistem de
parcare inteligent stau următoarele funcționalități:
• Acces – scanarea cartelei pe senzorul RFID. Sunt alocate 6 cartele, câte una pentru
fiecare loc, pentru alte cartele, accesul fiind neautorizat;
• Bariera – constând într -un servomotor. Pentru a nu avea neplăceri, s -au instalat 2
senzori de prezență (fotodiode) pentru a ține bariera deschisă atât timp cat mașina se
află în dreptul acesteia;
• Afișaj – sunt afișate mesaje de bun venit, locuri disponibile, data, acces neautorizat,
parcare plină;
• Afișarea stării fiecărui loc de parcare printr -un se mafor, verde fiind disponibil, roșu
fiind ocupat;
• Stâlpi de iluminat cu led;
• Encoder – pentru a adăuga timp pentru fiecare utilizator

Pentru realizarea acestui proiect, am avut nevoie de mai mulți senzori, componente electronice,
mecanice și partea software, toate acestea conectate conform schemei electrice realizate in Fritzing.
Am avut nevoie de două placi de dezvoltare Arduino Mega 2560, datorită consumului prea mare de
curent și din lipsa pinilor. În Fig. 3.1. este ilustrată schița parcării pe care am realizat -o.

Figura nr. 3.1. Schița modelului de parcare inteligentă

25
3.2. Proiectarea si implementarea sistemului de parcare
Am folosit această placă de dezvoltare deoarece este un proiect mare, cu mulți senzori si am
avut nevoie de multi pini de comunicație, pwm. Este foarte simplu de utilizat cu ajutorul mediului de
dezvoltare Arduino IDE, fiind compatibil cu majoritatea sistemelor de operare(Windows, Linux,
Mac). [2], [10]
3.2.1. Realizarea părții mecanice – cuprinde urm ătoarele:
• Macheta, este construită dintr -o placă de Plexiglas, pe care este lipită schița laminată a
parcării
• Picioarele de susținere sunt din Plexiglas cilindric
• Suport display, encoder si switch este din aluminiu prelurat pe CNC , așa cum se
observă în Fig. 3.2.
• Dispozitiv servomotor (bariera) este din sika, prelucrat pe freză
• Pentru mascarea firelor s -a folosit patcablu de 20mm
• Stâlpii de iluminat sunt din metal , așa cum se observă în Fig. 3.3.

Figura nr. 3.2 . Suport display, encoder, switch și RFID

Figura nr. 3.3 . Stâlp de iluminat

26
3.2.2. Realizarea p ărții hardware – cuprinde următoarele:
• Senzorii ultrasonici – detectează daca locul este liber sau ocupat
• Ledurile bicolor – culoarea verde înseamnă ca locul este liber și roșu locul este ocupat
• Iluminatul pe timp de noapte se face prin led -uri smd
• Display -ul care indica toate informațiile din parcare
• Encoder – pentru a adăuga timp fiecărui utilzator
• Switch on -off pentru a aprinde sau stinge iluminatul
• Fotodiode pe sensul de intrare și ieșire pentru a nu se închide bariera peste autoturism
• Rfid – pentru acces
• Modul RTC pentru dată și oră
• Două pleci de dezvoltare Arduino Mega
• Rezistențe pentru leduri si fotodiode
Pentru a nu avea probleme cu numărul de pini sau cu, curentul consumat de toți senzorii, am
folosit două plăci de dezvoltare Arduino Mega. Placa unu cuprinde: senzorii ultrasonici, semafoarele,
iluminatul parcării si un switch. Placa doi cuprinde: două fot odiode, encoder, lcd 1602 cu i2c, două
cititoare RFID și un modul RTC.
Schema electrică a fost realizată în programul Fritzing și este r eprezentată in figura 3. 4. și 3.5.

Figura nr. 3.4. Schema electrica pentru placa 1

27

Figura nr. 3.5 . Schema electrica pentru placa 2

Schema de principiu a fost realizată tot în programul Fritzing [11] și este reprezentată mai jos,
în Fig. 3. 6. și 3. 7.

Figura nr. 3.6 . Schema de principiu pentru placa 1

28

Figura nr. 3. 7. Schema de principiu pentru placa 2

Servomotorul SG90 este un servomotor care are dimensiuni mici și se poate roti la 180
grade(90 în fiecare direcție). Cuplul are o capacitate de tragere de 1.8 kg.

Figura nr. 3.8 .- Servomotorul SG90

Tabelul 4. – Specificații tehnice servomotor SG9

29
Proprietate Valoare
Greutate 9 grame
Dimensiuni Aproximativ 22.2 x 11.8 x 31mm
Cuplu 1.8 kg/cm (4.8 V )
Viteză de operare 0.1s/60grade
Tensiune de operare 4.8 V
Temperatură de operare 0 șC – 55 șC

Motivul pentru care a fost ales acest servomotor în realizarea proiectului este acela că este ușor
de folosit și poate fi controlat cu orice cod servo, hardware sau librarie. Acest servomotor se poate
controla folosind o frecvență PWM de 50 Hz. Vizualizarea semn alelor PW M folosind osciloscopul, se
observă în Fig. 3. 9.[13]

Figura nr. 3.9 . Semnal PWM cu frecvența 50Hz și factor de umplere 7.65%

Senzorul de proximitate HC -SR04
Pentru a măsura distanța până la un anumit obiect senzorul utilizează principiul sonarului, acest
lucru oferind o zonă de detecție non -contact cu precizie mare. Principalul avantaj pe care îl are acest
senzor și care îl deosebește de senzorii de proximitate cu infraroșu este acela că lumina solară nu îl
afectează.

30

Figura nr. 3.10 .– Senzorul de proximitate HR -SR04

Datele de la senzorul de proximitate trebuie să fie citite corect pentru a nu avea probleme în
aplicația practică, o citire greșită a datelor duce la imposibilitatea ocolirii sau simțirii obstacolului pe
care este instalat senzorul. [14]
Principiul de funcționare al senzorului este unul simplu , așa cum se observă în Fig. 3. 11.:
Senzorul trimitere un puls de sunet cu ultrasunete și măsoară cantitatea de timp necesară pentru ca
sunetul să vină înapoi, cunoscută ca metoda "timpului de zbor". Aceasta este aceeași ca metoda
utilizată de lilieci pentru a găsi lucruri sau obiecte și a le evita
.
Figura nr. 3.11 . – Principiul de funcționare al senzorului de proximitate

Pentru o detecție mai buna semnalul t rimis este de tip con și astfel pot fi detectate obiecte care
sunt și în lateral. Deoarece funcționează cu ajutorul undelor de sunet, detectează într -un timp foarte
scurt obiectele cu suprafețe plate, netede care reflectă sunetul,cum ar fi peretele. Pentr u suprafețele

31
moi (de exemplu un câine) timpul pentru detectarea acestuia crește. În foaia de catalog a produsului
este prezentat și un test de performanță (Figura 3.1 2).

Figura nr. 3.12 .– Testul de performanță al senzorului de proximitate

Senzorul disp une de 4 pini:
• VCC reprezintă alimentare prin conectare la 5V
• GND reprezintă pinul de conectare la masă
• Trigg reprezintă semnalul de ieșire trimis
• Echo reprezintă semnalul primit atunci când în fața senzorului se află un obiect.
Procesul de măsurare al dis tanței este urmatorul: se conectează pinul Trigg pe HIGH(5V) si
astfel modulul începe să trimită impulsuri de timp de 10us iar atunci când în fața senzorului este
detectat un obiect, pinul Echo va avea valoarea HIGH si se va calcula distanța pe baza durate i pentru
care acest pin este pus pe modul HIGH. Știind viteza sunetului care este de 340 m/s, putem calcula
timpul în care este parcurs un centimetru.
Rezultatul calculelor a arătat că un centimetru este parcurs în 29 microsecunde. Pulsul are un
traseu d us-întors deci putem afla distanța până la obiect împărțind valoarea la microsecunde și apoi la
2. Se obține urmatoarea formulă: Distanța = microsecunde_citite/ 29 / 2.
Tabelul 5. – Specificații tehnice Senzor de proximitate HR -SR04
Proprietate Valoare
Tensiune de funcționare 5V(DC)
Curent static Mai mic de 2mA
Frecvența de funcționare 40 kHz
Unghiul senzorului 15 grade
Distanța de detecție Între 2 și 400 centimetri
Precizie 3 milimetri
Dimensiuni 45 x 20 x 15 mm (L x l x h)
Semnal de ieșire 0V când nu este detectat niciun
obstacol și 5V atunci când în fața senzorului
se află un obstacol

32
Sistemul de dezvoltare Arduino Mega 2560
Placa de dezvoltare Arduino Mega este o placă bazată pe microcontrolerul ATMega2560. Ea
are 54 de pini dig itali care pot fi setați ca intrare sau ca ieșire (dintre care 15 pot fi utilizați ca ieșiri
PWM), 16 intrări analogice, 4 UART -uri (porturi seriale hardware), un cristal oscillator de 16 MHz, o
conexiune USB(folosita pentru programarea placii si pentru co nectarea la calculator), o mufă tip jack
pentru alimentare, o mufă ICSP si un buton de reset. [15]

Figura nr. 3.13 .– Placa de dezvoltare Arduino Mega

Placa poate opera pe o sursă externă de la 6 până la 20 de volți. Intervalul recomandat este de
la 7 la 12 volți deoarece daca este furnizată o tensiune mai mică de 7 volți pinul 5V poate furniza o
tensiune mai mică de 5V și atunci placa poate deveni instabilă și senzorii se pot reseta, iar la tensiuni
mai mari de 12 volți regulatorul de tensiune se poat e supraîncălzi și deteriora placa.[2], [10]
Alimentarea externă sau non -USB se poate face de la un adaptor AC -DC care se poate conecta
prin introducerea unei mufe de 2.1mm sau de la o baterie care se poate conecta la placa de dezvoltare
prin intermediul p inilor GND si VIN
ATMega2560 are o memorie flash de 256kb în care se poate stoca codul, 8kb memorie SRAM
și 4kb EEPROM. Programarea plăcii de dezvoltare poate fi făcută cu software -ul furnizat de către
producator, Arduino IDE.
Intrări și ieșiri.
Fiecare din cei 54 pini pot fi folosiți ca intrări sau ca ieșiri folosind funcțiile pinMode(),
digitalWrite() și DigitalRead(). Pinii pot să furnizeze și să primească un maxim de 40 mA, fiecare
dintre ei având o rezistență internă pull -up de 20 -50 kOhmi. F uncționează la o tensiune de 5V iar
anumiți pini au funcții speciale:
• Serial : 0(RX) si 1(TX). Acești pini folosesc capacitatea serială a microcontrolerului
pentru a recepționa și a transmite informații seriale TTL.
• SPI: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) sunt pinii care suportă comunicarea
SPI folosind librăria SPI.

33
• Întreruperi externe: 2 (întrerupere 0), 3 (întrerupere 1), 18 (întrerupere 5), 19
îintrerupere 4), 20 (întrerupere 3) și 21 (întrerupere 2) . Acești pini sunt configurați pentru a declanș a o
întrerupere la o valoare scăzută, o schimbare crescătoare sau descrescătoare de nivel. Întreruperile se
declanșează cu funcția attachInterrupt().
• PWM: 2 -13 și 44 -46 sunt pinii ce asigură o ieșire PWM pe 8 biți cu ajutorul funcției
analogWrite();
• Ledu l 13: Arduino are un led conectat la pinul 13 de pe placa de dezvoltare care este
aprins atunci când valoarea pinului este HIGH și este stins atunci când valoarea este pe LOW.
• TWI : 20 (SDA) și 21 (SCL) sunt pinii care suportă comunicarea TWI prin intermed iul
librăriei Wire
• Intrările analogice: Arduino Mega are 16 intrări analogice, fiecare intrare analogică are
o rezoluție de 10 biți și furnizează, deci, 1024 valori.
• AREF: Tensiune de referință pentru intrări analogice. Folosit cu funcția
analogReference ( ).
• Reset : Folosit pentru a reseta microcontrolerul
Comunicarea
Arduino Mega are anumite facilități ce îi permit comunicarea cu o altă placă, cu un computer
sau cu un microcontroler bazându -se pe protocolul de comunicatie UART TTL (5V) de comunicație
seria lă, disponibil prin intermediul pinilor 0 și 1 (RX și TX). Comunicarea serială (CDC) prin
intermediul USB permite ca placa de dezvoltare să fie afișată de software -ul de pe calculator ca și un
port COM virtual. Software -ul arduino include o interfață care permite trimiterea de date textuale
simple spre placa de dezvoltare și invers. Această interfață se numește serial monitor. Biblioteca
Software Serial permite comunicarea serială pe oricare dintre pinii digitali. [4]
Tabelul 6. Specificații tehnice Arduino Mega
Proprietate Valoare
Tensiune de operare 5V
Tensiune de intrare
recomandată 7-12V
Tensiune de
intrare(limite) 6-20V
Pini de intrare/ieșire
digitali 54(dintre care 15 pot oferi ieșire PWM)
Pini de intrare analogici 16
Memorie Flash 256KB
SRAM 8KB
EEPROM 4KB
Viteza ceasului intern 16Mhz
Lungime 101.52mm
Lățime 53.3mm
Greutate 37grame
Memorie bootloader 8KB(folosește din memoria flash)

34
SMD Led – este un corp de iluminat montat pe un pcb sau circuit electronic. Un led este
singura alegere când o lumină este necesară într -un spațiu mic. Cea mai eficientă sursă de lumină, cu
consum energetic redus și durată de viață extinsă, este ledul.

Tabelul 7. Specificații tehnice Led smd
Proprietate Valoare
Lumeni 15 – 18
Putere 0,21 W
Alimentare 3,3 V
Dimensiuni mm 5 x 5
Consum mA 30
Unghi de vizualizare (grade) 125

Bicolor LED – am folosit acest led pentru a indica starea locului de parcare, verde semnificând
loc liber și roșu loc ocupat. Este alcătuit din două leduri în paralel, într -o capsulă. Led -ul este alimentat
la 5V printr -un rezistor de limitare a curentului. Acesta funcți onează pe baza principiului 0 sau 1 logic,
daca locul este liber răspunsul este 1 logic, deci ledul este verde și daca locul este ocupat, răspunsul
este 0 logic, deci ledul este roșu. [16]

Figura nr. 3.14 .– Led Bicolor verde -roșu

Tabelul 8. Specificații tehnic e Led Bicolor
Proprietate Valoare
Putere 80 mW
Alimentare 5V
Dimensiune mm 3
Consum mA 15
Temperatură de operare -25 pana la +85 °C

Switch on -off – am folosit acest switch pentru a acționa iluminatul parcării. Principiul de
funcționare este unul simplu, plusul de la led(piciorul de sus sau jos) și 5V(piciorul din mijloc) sunt
lipite pe switch și într -o direcție ledurile sunt stinse și in cealaltă dire cție ledurile sunt aprinse.

35
Tabelul 9. Specificații tehnic e switch on -off
Proprietate Valoare
Rezistență în sarcină 125V – 6A
Durată de viață Peste 30.000 acționări
Temperatură de operare -10 până la +55 °C
Umiditate Maxim 85%

Display 1602 – are un rol foarte important într -o parcare, deoarece toate informațiile
importante și utile se pot afișa. Am folosit un modul LCD 1602 cu backlight albastru, fiind alimentat
la 5V. Caracterele sunt de culoare albă. Acesta poate afișa până la 16 caractere pe două rânduri. [17]

Figura nr. 3.15 .– LCD 1602 backlight albastru

Tabelul 10. Specificații tehnice LCD 1602
Proprietate Valoare
Alimentare 5V
Consum mA 1,1
Alimentare backlight 4,2V
Consum backlight mA 100
Dimensiune mm 80x36x12

Tabelul 11. Configurația pinilor pentru lcd 1602

36

Modul I2C – este un adaptor care se montează pe LCD. Este doar pentru display de tip 1602
sau 2004. Acest modul este foarte util, deoarece, în afară de pinii de alimentare, avem nevoie doar de 2
pini din placa de dezvoltare, clock și date. Pentru a regla contrastul, are un potențiometru pe
modul. [17]

Figura nr. 3.1 6.– Modul I2C

Modul Encoder rotativ – l-am folosit pentru a putea adăuga timp pentru fiecare utilizator. A
fost setat pentru a adăuga 10 minute la fiecare rotire. Rolul lui este de a converti mișcarea rotativă în
impulsuri. Generează maxim 20 de impulsuri la rotirea a 360 de grade. [18]

37
Figura nr. 3.17 .– Encoder
Tabelul 12. Specificații tehnice Encoder
Proprietate Valoare
Alimentare 5V
Consum mA 160
Frecvența de răspuns KHz 100
Temperatură de operare -10 până la +70 °C
Umiditate 35 până la 85%

Senzor fotoelectric reflectiv (fotodioda) – am folosit acest senzor pentru a ști daca mașină se
află în dreptul barierei sau a trecut, deoarece bariera poate coborî când mașina este sub ea și se pot
produce daune. Acest senzor detectează distanța sau poate face diferența între lumină și întuneric. [19]

Figura nr. 3.18 .– Senzor fotoelectric reflectiv

Tabelul 13. Specificații tehnice fotodiodă
Proprietate Valoare
Tensiune Led 1.25V
Consum Led mA 60
Tensiune colector – emitor Până la 70V
Consum colector mA 100
Distanță optimă de operare mm 2.5

Modul RFID RC522 – acest modul l -am folosit pentru acces în parcare. Am alocat 6 cartele,
câte una pentru fiecare loc, pentru restul cartelelor accesul fiind neautorizat. Poate citi sau scrie date de
pe cartele sau pe cartele prin intermediul comunca ției radio. Cel mai des, acest modul se întâlnește la
interfoanele de la intrare în case, blocuri, pentru a limita accesul. [20]

38

Figura nr. 3.19 .– Modul RFID

Tabelul 14. Specificații tehnice RFID
Proprietate Valoare
Alimentare 3.3V
Consum în starea de inactiv 10-13mA
Consum în starea de sleep 80uA
Consum maxim 30mA
Frecvența de funcționare 13.56MHz
Dimensiune mm 40×60
Temperatură de operare -25 până la +85 °C

3.2.3. Realizarea părții software
Partea software a fost realizată cu ajutorul a două plăci de dezvoltare Arduino Mega, pornind
de la următoarele cerințe:
• Accesul sa fie pe bază de cartele unice și barieră
• Folosirea semafoarelor pentru fiecare loc, controlate de senzori ultrasonici
• Afișarea mai multor informații pe display

Pe baza acestor cerințe, au fost realizate două scheme logice, una pentru fiecare placă de
dezvoltare. [12] Schema pentru placa 1 reprezintă senzorii ultrasonici, semafoarele și iluminatul
parcării. Senzorii ultrasonici măsoară distanța față de f iecare obstacol, daca mașina se apropie ,
senzorul trimite semnal către Arduino și se aprinde semaforul roșu, daca nu se apropie nicio mașină,
semaforul rămâne verde, deci locul o sa fie disponibil. Iluminatul parcării se face cu led -uri SMD
pentru un consu m redus de energie și o lumină clară. Led -urile sunt controlate prin arduino, dacă
switch -ul este pus pe on, led -urile se aprind. Schema pentru placa 1 este reprez entată în figura de mai
jos(3.20 ).

39

Figura nr. 3.20 .– Schema logică pentru placa de dezvoltare 1

Schema pentru placa 2 [12] cuprinde un display, două fotodiode, două cititoare RFID, un
encoder și un modul RTC. Pe display afișez data, ora și locuri disponibile. Pentru accest în parcare am
folosit cititor RFID, după ce utilizatorul vrea să intre în parcare, afișez mesaj de bun venit, fotodioda
primește feedback pentru a ține bariera deschisă până când mașina se deplasează spre un loc
disponibil . Fiecare cartelă este contorizată pentru timpul petrecut în parcare și pentru a adăuga timp
pentr u fiecare utilizator, trebuie sa mai scaneze cartela încă o dată și cu ajutorul encoder -ului putem
adăuga timp, pentru a încheia această opțiune, trebuie sa mai scanăm cartela încă o dată. Dacă toate
cele 6 locuri sunt ocupate, afișez mesajul “Parcare pli nă”, bariera rămâne închisă și accesul nu este
posibil. Sunt alocate un număr de 6 cartele, fiecare pentru un loc de parcare. Dacă cineva încearcă să
intre cu o cartelă care nu este alocată, afișez mesajul “Acces Neautorizat”, bariera rămâne închisă și nu
se poate intra. Schema este repreze ntată în figura de mai jos (3.21 ).

40

Figura nr. 3.21 .– Schema logică pentru placa de dezvoltare 2
3.3. Testarea parcării inteligente
Deoarece am ales să folosesc două plăci de dezvoltare Arduino Mega, procesul de testare o să
îl împart în placa 1 și placa doi:
• Placa unu – cuprinde un arduino Mega, 6 senzori de parcare, 6 semafoare, 5
led-uri pentru iluminat și un switch. În primul rând trebuie să conectam Arduino la un
calculator pe care avem codul sursă și apoi trebuie sa scriem codul în memoria Arduino.
După ce codul a fost compilat cu succes, putem observa cele două mașini parcate pe locuri
2 și 4 , semaforul este roșu deoarece locurile sunt ocupate ( Figura nr. 3.2 2.) și pe display se
afișează locuri dispon ibile fiind 4 ( Figura nr. 3.2 3.).

41

Figura nr. 3.2 2.– Afișarea locurilor libere și ocupate cu semafoare

Figura nr. 3.2 3.– Afișarea locurilor libere pe display

Cele 4 locuri disponibile rămase sunt semnalizate cu verde deoarece sunt libere.
Pentru a testa ilumintaul, dacă led -urile sunt stinse, switch -ul trebuie să fie orientat
în jos, după ce acționăm switch în sus( on), led -urile se aprind și parcarea este
ilumi nată ( Figura nr. 3.2 4.).

42

Figura nr. 3.2 4.– Iluminatul parcării

• Placa doi – este alcătuită dintr -un Arduino Mega, un encoder, un display 1602,
modul RTC, două fotodiode, o barieră, două cititoare RFID. Pentru a începe testarea
circuitului trebuie să conectăm Arduino la computer pentru a scrie codul în memoria
microcontrolerului. După inițializare, pe display apar locurile locurile disponibile, ora și
data ( Figura nr. 3.2 5.).

Figura nr. 3.2 5.– Mesajul după inițializare

43
Când sosește o mașină în dreptul fotodiodei și scanează cartela( Figura nr. 3.2 6.)
pentru a intra în parcare, bariera stă deschisă până când mașina se miscă din fa ța
fotodiodei ( Figura nr. 3.2 7.).

Figura nr. 3.2 6.– Mașina a ajuns în dreptul fotodiodei

Figura nr. 3.2 7.– Barieră deschisă când mașina se află în dreptul fotodiodei

După scanare, pe display apare mesajul „ Bine ati venit ” (Figura nr. 3.28 .).

44

Figura nr. 3.2 8.– Afișarea mesajului de bun venit
Fiecare utilizator care este intrat în parcare poate adăuga timp pe cartela prin a
scana încă o dată la cititorul de la intrare și apoi cu ajutorul encoder -ului, poate
incremeta timp ( Figura nr. 3.2 9.).

Figura nr. 3.2 9.– Meniul de incrementare timp pe cartelă

Dacă cineva încearcă să intre în parcare cu altă cartelă, pe display apare mesajul „
Acces neautorizat ” (Figura nr. 3.30 .).

Figura nr. 3.30 .– Mesajul pentru scanarea cu o cartelă neautorizată

45
Când parcare este plină, apare mesajul „Parcare plină ” (Figura nr. 3.31 .).

Figura nr. 3.31 .– Mesajul când cineva încearcă sa intre în parcare, dar toate
locurile sunt ocupate
După ce am testat tot sistemul de parcare și totul este funcțional, putem spune ca atât părțile
mecanice, hardware și software au fost realizate cu succes.

46
Capitolul 4
Concluzii
De la un an la altul, tot mai multe mașini apar în special în orașele mari și odată cu asta,
locurile de parcare devin insuficiente. O soluție pentru viitor sunt parcările inteligente pe mai multe
niveluri, care oferă multe locuri de parcare pe un spațiu redus.
Acest studi u face referire la parcarea inteligentă cu acces autorizat prin cartel ă individuală.
În acest studiu, au fost prezentate diferitele tipuri de sisteme de parcare și inteligente. Din
diferite exemple de punere în aplicare a sistemului de parcare inteligent fiind prezentate, eficiența sa în
atenuarea problemei traficului, apare mai ales în zona orașel or unde locurile de parcare sunt
insuficiente. Cu studiul acesta, privind toate tehnologiile de senzori utilizate în detectarea vehiculelor,
care sunt una dintre cele mai importante ale sistemului de parcare intelligent. [6]
Senzorii cu ultrasunete sunt fol osiți ca principala componentă pentru a detecta posturile
vacante de parcare. Tehnologiile RFID sunt, de asemenea, utilizate pentru a calcula taxele de parcare
și pentru a ghida proprietarii la vehiculele lor parcate. Semafoarele indică daca locul este lib er (verde)
sau ocupat (roșu). Fotodioda este folosită ca senzor de prezență pentru a nu se închide bariera peste
mașină. Display -ul afișează toate informațiile necesare pentru conducătorii auto.
Acest sistem de parcare a fost proiectat pentru a minimiza mu nca umană și pentru a salva timp
prețios proprietarilor de automobile și de așteptare pentru a găsi un loc de parcare. Acest sistem de
date ar putea fi, de asemenea încorporate la o aplicație care ar permite utilizatorilor să acceseze
informații despre dis ponibilitatea locurilor de parcare în diferite locații cu acest sistem instalat în ele.

Caracteristicile care pot fi adăugate:
• Sistem de detectare număr de înmatriculare
• Folosirea unor senzori cu infraroșu mai buni pentru a citi la distanțe mai mari
• Folosirea unui senzor de lumină pentru a aprinde iluminatul automat
• Tonomat de plată cu cardul sau numerar la intrare
• Folosirea unui sistem automat de preluare a mașinii

47
Bibliografie

[1] Technical Solutions to Overcrowded Park and Ride Facilities
https://rosap.ntl.bts.gov/view/dot/16240/dot_16240_DS1.pdf
[2] Molnar -Matei, F., Sisteme încorporate , notițe de curs, 2013
[3]SmartCarParking System –
https://www.researchgate.net/publication/319345084_Smart_Car_Parking_System
[4] Low Cost Arduino Based Smart Parking Lo t Controller with Occupancy Counter
https://www.researchgate.net/publication/331812207_Low_Cost_Arduino_Based_Smart_Parki
ng_Lot_Controller_with_Occupancy_Counter
[5] The design and implementation of a smart -parking system for Helsinki Area
file:///E:/licenta/Licenta_Scris/documen tation/charles -thesis -formated -covered.pdf
[6] Banciu Doina ș.a., Sisteme inteligente de transport. Ed. Tehnică. București, 2003.
[7] Smart Parking: An Application of Optical Wireless Sensor Network
https://www.semanticscholar.org/paper/Smart -Parking%3A -An-Application -of-Optica l- Wireless –
Chinrungrueng -Sunantachaikul/46745e0168327646cf84718ad3c3f8de02e97d75
[8] Design and Implementation of Smart Car Parking System
https://www.researchgate.net/publication/320356747_Design_and_Implementation_of_Smart_ Car_
Parking_System
[9] Smart Parking System Based on Internet of Things
file:///E:/licenta/Licenta_Scris/documentation/ijaerv13n12_24.pdf
[10] Stanciu, I.R., Molnar -Matei, F., Sisteme de monitorizare și control în timp real, Editura
Eurost ampa, Timișoara 2013, ISBN 978 -606-569-542-9
[11] Proiectare schemă electrică și de principiu , http://fritzing.org/home/
[12] Proiectare schem ă logică, https://www.draw.io/
[13] Micro Servomotor SG90 180°
https://www.optimusdigital.ro/ro/ motoare -servomotoare/2261 -micro -servo -motor -sg90 –
180.html?search_query=sg90&results=5
[14] Senzor ultrasonic HC -SR04
https://www.optimusdigital.ro/ro/senzori -senzori -ultrasonici/9 -senzor -ultrasonic -hc-sr04-
.html?search_query=hc+sr04&results=16
[15] Placa de dezvoltare compatibila cu Arduino MEGA 2560 (ATmega2560 + CH340) și Cablu 50
cm
https://www.optimusdigital.ro/ro/compatibile -cu-arduino -mega/2560 -placa -de-dezvoltare -compatibila –
cu-arduino -mega -2560 -atmega2560 -ch340 -si-cablu -50-
cm.html?search_query=arduino+mega&results=40

48
[16] LED Bicolor de 3 mm Rosu si Verde
https://www.optimusdigital.ro/ro/optoelectronice -led-uri/704 -led-bicolor -de-3-mm-rosu-si-verde -cu-
catod -comun.html
[17] LCD 1602 cu Interfata I2C si Backlight Albastru
https://www.optimusdigital.ro/ro/optoelectronice -lcd-uri/2894 -lcd-cu-interfata -i2c-si-backlight –
albastru.html
[18] Modul Codor Rotativ – Encoder
https://www.optimusdigital.ro/ro/senzori -senzori -de-atingere/7150 -modul -encoder –
rotativ.html?search_query=encoder&results=31
[19] Senzor fotoelectric reflectiv TCRT5000
https://www.optimusdigital.ro/ro/senzori -senzori -optici/42 -senzor -fotoelectric -reflect iv-
tcrt5000.html?search_query=Senzor+fotoelectric+reflectiv&results=2
[20] Modul RFID RC522
https://www.optimusdigital.ro/ ro/wireless -rfid/67 -modul -cititor -rfid-
mfrc522.html?search_query=Modul+RFID&results=15

49
Anexa 1
Codul Surs ă
Placa 1
#include <SPI.h>
#include <MFRC522.h>
#include <LinkedList.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <Servo.h>
#include <RTClib.h>
#include <BiColorLED.h>

const int trigPin1 = 26;
const int echoPin1 = 27;
#define SENZOR_LED_PIN1_1 28
#define SEZONR_LED_PIN2_1 29
#define PIN_BUTTON_LEDURI 12
#define PIN_LEDURI 13
const int trigPin2 = 30 ;
const int echoPin2 = 31 ;
#define SENZOR_LED_PIN1_2 32
#define SEZONR_LED_PIN2_2 33
const int trigPin3 = 34;
const int echoPin3 = 35;
#define SENZOR_LED_PIN1_3 36
#define SEZONR_LED_PIN2_3 37
const int trigPin4 = 38;
const int echoPin4 = 39;
#define SENZOR_LED_PIN1_4 40
#define SEZONR_LED_PIN2_4 41
const int trigPin5 = 42;
const int echoPin5 = 43;
#define SENZOR_LED_PIN1_5 44
#define SEZONR_LED_PIN2_5 45
const int trigPin6 = 46;
const int echoPin6 = 47;
#define SENZOR_LED_PIN1_6 48
#define SEZONR_LED_ PIN2_6 49

long duration;
int distance;
long duration1;
int distance1;
long duration2;
int distance2;
long duration3;
int distance3;
long duration4;
int distance4;
long duration5;
int distance5;
int stateButton;
int previous = LOW;

50
long time = 0;
long debounce = 200;
int stateLED = LOW;
BiColorLED led1 = BiColorLED(SENZOR_LED_PIN1_1,SEZONR_LED_PIN2_1);
BiColorLED led2 = BiColorLED(SENZOR_LED_PIN1_2,SEZONR_LED_PIN2_2);
BiColorLED led3 = BiColorLED(SENZOR_LED_PIN1_3,SEZONR_LED_PIN2_3);
BiColorLED led4 = B iColorLED(SENZOR_LED_PIN1_4,SEZONR_LED_PIN2_4);
BiColorLED led5 = BiColorLED(SENZOR_LED_PIN1_5,SEZONR_LED_PIN2_5);
BiColorLED led6 = BiColorLED(SENZOR_LED_PIN1_6,SEZONR_LED_PIN2_6);

void setup() {

led1.setColor(1);
led2.setColor(1);
led3.setColor(1);
led4.setColor(1);
led5.setColor(1);
led6.setColor(1);
pinMode(trigPin1, OUTPUT); // Sets the trigPin as an Output
pinMode(trigPin2, OUTPUT); // Sets the trigPin as an Output
pinMode(trigPin3, OUTPUT); // Sets the trigPin as an Output
pinMode(trigPin4, OUTPUT) ; // Sets the trigPin as an Output
pinMode(trigPin5, OUTPUT); // Sets the trigPin as an Output
pinMode(trigPin6, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin1, INPUT); // Sets the echoPin as an Input
pinMode(echoPin2, INPUT); // Sets the echoPin as an Input
pinMode(echoPin3, INPUT); // Sets the echoPin as an Input
pinMode(echoPin4, INPUT); // Sets the echoPin as an Input
pinMode(echoPin5, INPUT); // Sets the echoPin as an Input
pinMode(echoPin6, INPUT); // Sets the echoPin as an Input
pinMode(PIN_BUTTON_LEDURI, INPUT);
pinMode(PIN_LEDURI, OUTPUT);

Serial.begin(9600); // Starts the serial communication
}

void loop() {
digitalWrite(trigPin1, LOW);
delayMicroseconds(2);
digitalWrite(trigPin1, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin1, LOW);
duration = pulseIn(echoPin1, HIGH);
distance= duration*0.034/2;
Serial.print("Distance: ");
Serial.println(distance);

digitalWrite(trigPin2, LOW);
delayMicroseconds(2);
digitalWrite(trigPin2, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin2, LOW);
duration1 = pulseIn(echoPin2, HIGH);
distance1= duration1*0.034/2;
Serial.print("Distance1: ");
Serial.println(distance1);

digitalWrite(trigPin3, LOW);

51
delayMicroseconds(2);
digitalWrite(trigPin3, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin3, LOW);
duration2 = pulseIn(echoPin3, HIGH);
distance2= duration2*0.034/2;
Serial.print("Distance2: ");
Serial.println(distance2);
digitalWrite(trigPin4, LOW);
delayMicroseconds(2);
digitalWrite(trigPin4, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin4, LOW);
duration3 = pulseIn(echoPin4, HIGH);
distance3= duration3*0.034/2;
Serial.print("Distance3: ");
Serial.println(distance3);

digitalWrite(trigPin5, LOW);
delayMicroseconds(2);
digitalWrite(trigPin5, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin5, LOW);
duration4 = pulseIn(echoPin5, HIGH);
distance4= duration4*0.034/2;
Serial.print("Distance4: ");
Serial.println(distance4);

digitalWrite(trigPin6, LOW);
delayMicroseconds(2);
digitalWrite(trigPin6, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin6, LOW);
duration5 = pulseIn(echoPin6, HIGH);
distance5= duration5*0.034/2;
Serial.print("Distance5: ");
Serial.println(distance5 );

long cm_1 = distance;
if(cm_1 > 5) led1.setColor(1); else led1.setColor(2);
long cm_2 = distance1;
if(cm_2 > 5) led2.setColor(1); else led2.setColor(2);
long cm_3 = distance2;
if(cm_3 > 5) led3.setColor(1); else led3.setColor(2);
long cm_4 = distance3;
if(cm_4 > 5) led4.setColor(1); else led4.setColor(2);
long cm_5 = distance4;
if(cm_5 > 5) led5.setColor(1); else led5.setColor(2);
long cm_6 = distance5;
if(cm_6 > 5) led6.setColor(1); else led6.setColor(2);

AprindeBecurile();

}
void AprindeBecurile(){
stateButton = digitalRead(PIN_BUTTON_LEDURI);
if(stateButton == HIGH && previous == LOW && millis() – time > debounce) {
if(stateLED == HIGH){

52
stateLED = LOW;
} else {
stateLED = HIGH;
}
time = millis();
}
digitalWrite(PIN_LEDURI, stateLED);
previous == stateButton;
}

Placa 2
#include <SPI.h>
#include <MFRC522.h>
#include <LinkedList.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <Servo.h>
#include <RTClib.h>
#include <BiColorLED.h>

#define SENZOR_CLOSE_IESIRE_BARRIER 3
#define SENZOR_CLOSE_BARRIER 4
#define RST_PIN 5
#define SS_1_PIN 10
#define SS_2_PIN 8
#define NR_OF_READERS 2
#define NumberOfCarParcs 6
#define BARIERA 9
#define Encoder_outputA 23
#define Encoder_outputB 22
#define Encoder_button 24
#define PIN_BUTTON_LEDURI 12
#define PIN_LEDURI 13

byte ssPins[] = {SS_1_PIN, SS_2_PIN};
String allIdCards[] =
{"1687bdf9","c68320f9","664975f9","3676b6f9","c65c4f9","b6a51ef9"};
LinkedList<String> masiniIntrat eInParcare = LinkedList<String>();
RTC_DS1307 RTC;

String allUsers[][4] = {
{"1687bdf9","10","0","0"},
{"c68320f9","10","0","0"},
{"664975f9","10","0","0"},
{"3676b6f9","10","0","0"},
{"c65c4f9","10","0","0"},
{"b6a51ef9","10","0","0"}
};

MFRC522 mfrc522[NR_OF_READERS]; // Create MFRC522 instance.
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo myservo;

53
int locuriLibere;
int pozitieBariera = 0;
int counter = 0;
String EncoderPosition = "add";
int LastEnconderButto nPositon = 0;
bool addTimeSession = false;
String idForSession = "";
String latestTimpAfisare = "";
String latestFinalTimpAfisare = "";
String finalTimeToAdd = "";
bool ShowCarparcMessage = true;
int lastSecond;
bool InchideBarieraIntrare = false;
bool Inc hideBarieraIesire = false;

void setup() {

pinMode (Encoder_outputA,INPUT);
pinMode (Encoder_outputB,INPUT);
pinMode(Encoder_button, INPUT_PULLUP);
pinMode(SENZOR_CLOSE_BARRIER, INPUT);
pinMode(SENZO R_CLOSE_IESIRE_BARRIER, INPUT);
Serial.begin(9600);
while (!Serial);
Wire.begin();
RTC.begin();
RTC.adjust(DateTime(__DATE__, __TIME__));
if (! RTC.isrunning()) {
Serial.println("RTC is NOT running!");
RTC.adjust(DateTime(__DATE__, __TIME__));
}
SPI.begin(); // Init SPI bus

DateTime now = RTC.now();
for(int i = 0; i < NumberOfCarParcs; i++){
float unixTime = now.unixtime();
float unixFinalTime = (allUsers[i][1].toInt() * 1000.00) + unixTime;

allUsers[i][2] = String(unixTime);
allUsers[i][3] = String(unixFinalTime);
}

for (uint8_ t reader = 0; reader < NR_OF_READERS; reader++) {
mfrc522[reader].PCD_Init(ssPins[reader], RST_PIN); // Init each MFRC522 card
mfrc522[reader].PCD_DumpVersionToSerial();
}

locuriLibere = NumberOfCarParcs;
analogWrite(6, 125);
lcd.begin();
lcd.backlight();
ShowLocuriLibere();

myservo.attach(BARIERA);
myservo.write(0); // attaches the servo on pin 9 to the servo object

}

54
void loop() {

citesteCartele();

AddTimeToAccount();

if(ShowCarparcMessage){
DateTime now = RTC.now();
if(now.second() != lastSecond){
ShowLocuriLibere();
RemoveTime();

}
lastSecond = now.second();
}
if(!addTimeSession){
InchidereBariera();
}
}
void RemoveTime(){
for(int i = 0; i < masiniIntrateInParcare.size(); i++){
for(int j = 0; j < sizeof(allUsers) – 1; j++){
if(masiniIntrateInParcare.get(i) == allUsers[j][0]){
float value = allUsers[j][2].toFloat();
float currentTime = allUsers[j][1].toInt();
currentTime –;
value += 1000;
allUsers[j][2] = String(value);
allUsers[j][1] = String(curre ntTime);
break;
}
}
}
}

String dump_byte_array(byte *buffer, byte bufferSize) {
String idCard = "";
for (byte i = 0; i < bufferSize; i++) {
idCard += String((buffer[i]), HEX);
}

return idCard;
}

void citesteCartele(){

for (uint8_t reader = 0; reader < NR_OF_READERS; reader++) {
if (mfrc522[reader].PICC_IsNewCardPresent() &&
mfrc522[reader].PICC_ReadCardSerial()) {
String idCard = dump_byte_array(mfrc522[reader].uid.uidByte,
mfrc522[reader].uid.size);

if(reader == 1){
procesareIesire(idCard);
}
else if(reader == 0){
procesareIntrare(idCard);
}

55

mfrc522[reader].PICC_HaltA();
mfrc522[reader].PCD_StopCrypto1();
}
}
}

void InchidereBariera(){
int valin=digitalRead(SENZOR_CLOSE_BARRIER);
Serial.println("IN: " + String(valin) + " Inchidere Barie ra: " +
(InchideBarieraIntrar e == true ? "true" : "false"));
if(valin == 1 && InchideBarieraIntrare == true){
InchideBarieraIntrare = false;
delay(2000);
myservo.write(0); // tell servo to g o to position in variable 'pos'
}

int valout = digitalRead(SENZOR _CLOSE_IESIRE_BARRIER);
Serial.println("OUT: " + String(valout) + " Inchidere Bariera: " +
(InchideBarieraIesire == true ? "true" : "false"));
if(valout == 1 && InchideBarieraIesire == true){
InchideBarieraIesire = false;
delay(2000);
myservo.write(0);
}
}

void procesareIesire(String id){

for(int i = 0; i < sizeof(allIdCards) – 1; i++){
if(allIdCards[i] == id){
for(int j = 0; j < masiniIntrateInParcare.size(); j++){

if(masiniIntrateInParcare.get(j) == id){
masiniIntrateInParcare.remove(j);
locuriLibere++;
myservo.write(90); // tell servo to go to position in variable 'pos'

InchideBarieraIesire = true;
ShowCarparcMessage = true;
}
}
}
}
}

void ShowLocuriLibere(){
DateTime now = RTC.now();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Locuri Libere: " + String(locuriLibere));
lcd.setCursor(0, 1);
lcd.print(String(now.year()) + "/" + (now.month() < 10 ? "0" + String(now.month())
: String(now.month())) + "/" + String(now.day()) +
" " + String(n ow.hour()) + ":" + (now.minute() < 10 ? "0" + String(now.minute()) :
String(now.minute())));
}

56
void procesareIntrare(String id){

int nuAmGasitCartela = 0;
for(int i = 0; i < sizeof(allIdCards) – 1; i++){

if(addTimeSession == true){

if(allIdCards[i] == id && id == idForSession){
for(int i = 0; i < NumberOfCarParcs; i++){
if(allUsers[i][0] == idForSession){
allUsers[i][1] = finalTimeToAdd;
addTimeSession = false;
ShowCarparcMessage = true;
counter = 0;
break;
}
}
}
}
else {

if(locuriLibere == 0){
ShowCarparcMessage = false;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Parcare plina! ");
lcd.setCursor(0, 1);
lcd.print("Locuri libere: 0");
ShowCarparcMessage = true;
break;
}

if(allIdCards[i] == id){
AdaugaMasinaInSystem(id);
break;
}
nuAmGasitCarte la++;
}
}

if(nuAmGasitCartela == sizeof(allIdCards) – 1){
ShowCarparcMessage = false;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" ACCESS ");
lcd.setCursor(0, 1);
lcd.print(" NEAUTORIZAT ");

delay(3000);
ShowCarparcMessage = true;
}
}

void AddTimeToAccount(){
int aState = digitalRead(Encoder_outputA); // Reads the "current" state of the
outputA
int bState = digitalRead(Encoder_outputB);
int btn = digitalRead(Encoder_button);

57

if(aState != bState){
if(EncoderPosition == "add"){
Serial.pr intln("Intru aici");
counter += 10;
}
else{
counter -= 10;
if(counter < 0){
counter = 0;
}
}
}

if(btn == 0 && LastEnconderButtonPositon == 0){
EncoderPosition = "remove";
}

if(btn == 1 && LastEnconderButtonPositon == 1){
EncoderPosition = "add";
}

LastEnconderButtonPositon = btn;
if(addTimeSession == true){
ShowCarparcMessage = true;
String timp = "";
for(int i = 0; i < NumberOfCarParcs; i++){
if(allUsers[i][0] == idForSession){
timp = allUsers[i][1];
}
}

int timpInt = timp.toInt();
int timpFinal = counter;

String timpDeAFisare = "DISP: " + String(timpInt);
String timpFinalDeAfisare = "SELECT: " + String(timpFinal);

finalTimeToAdd = String(timpInt + timpFinal);
if(timpDeAFisare != latestTimpAfisare || timpFinalDeAfisare !=
latestFinalTimpAfisare){
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(timpDeAFisare);
lcd.setCursor(0, 1);
lcd.print(timpFinalDeAfisare);
}
latestTimpAfisare = timpDeAFisare;
latestFinalTimpAfisare = timpFinalDeAfisare;
ShowCarparcMessage = false;
}
}
void AdaugaMasinaInSystem(String id){
bool potSaAdaug = true;
bool schimbaSesiunea = false;
for(int i = 0; i < masiniIntrateInParcare.size(); i++){
if(masiniIntrateInParcare.get(i) == id){
potSaAdaug = false;

58
schimbaSesiunea = true;
idForSession = id;
}
}
if(potSaAdaug == true){
masiniIntrateInParcare.add(id);
locuriLibere –;
myservo.write(90);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" BINE ATI ");
lcd.setCursor(0, 1);
lcd.print(" VENIT ");
InchideBarieraIntrare = true;
ShowCarparcMessage = tru e;
}
if(schimbaSesiunea == true){
addTimeSession = true;
ShowCarparcMessage = true;
}
}

Similar Posts