This shows you the differences between two versions of the page.
pm:prj2025:abirlica:cristian.nastase03 [2025/05/06 17:13] cristian.nastase03 |
pm:prj2025:abirlica:cristian.nastase03 [2025/05/27 17:56] (current) cristian.nastase03 |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Parcare pentru Masini ====== | ====== Parcare pentru Masini ====== | ||
+ | |||
+ | {{pm\:prj2025\:abirlica\:crnastase_poza_proiect.jpg?600x}} | ||
===== Introducere ===== | ===== Introducere ===== | ||
- | <note tip> | + | Proiectul "Parcare pentru Masini" simuleaza o parcare automata, controlata cu ajutorul unui microcontroler Arduino Uno. Sistemul afiseaza in timp real starea fiecarui loc de parcare pe un ecran LCD si controleaza accesul in parcare prin intermediul unui card RFID (RC522). Accesul este permis doar daca UID-ul cardului corespunde unuia dintre cele autorizate. In plus, fiecare loc de parcare este monitorizat de un fotorezistor, iar statusul fiecarui loc este afisat individual pe LCD si trimis in Serial Monitor. |
- | Prezentarea pe scurt a proiectului vostru: | + | |
- | * ce face | + | |
- | * care este scopul lui | + | |
- | * care a fost ideea de la care ati pornit | + | |
- | * de ce credeti ca este util pentru altii si pentru voi | + | |
- | </note> | + | |
- | + | ||
- | Proiectul „Parcare pentru Masini” simuleaza o parcare automata, controlata cu ajutorul unui microcontroler Arduino Uno. Sistemul afiseaza in timp real numarul de locuri disponibile pe un ecran LCD, controleaza accesul in parcare prin intermediul unui card NFC (RFID) si monitorizeaza starea fiecarui loc de parcare folosind fotorezistori. LED-urile semnalizeaza vizual daca un loc este ocupat (rosu) sau liber (verde). | + | |
- | Scopul proiectului este sa invatam cum sa integram senzori, module de comunicatie si elemente de control pentru a automatiza un proces real, utilizand concepte de embedded systems. | + | Scopul proiectului este sa integram senzori, module de comunicatie si actionari intr-un sistem embedded complet. Acesta simuleaza un scenariu real de automatizare urbana si este util ca aplicatie practica si ca exercitiu educativ pentru invatarea lucrului cu senzori, LCD-uri, RFID, servomotoare si intreruperi externe. |
- | Ideea a pornit de la necesitatea tot mai mare de a gestiona eficient parcarile, mai ales in orasele aglomerate. Un astfel de sistem poate reduce timpul petrecut in cautarea unui loc liber si poate fi extins cu functionalitati moderne de smart city. Este util atat ca aplicatie practica, cat si ca exercitiu educativ pentru aprofundarea notiunilor de hardware si software embedded. | + | Ideea a pornit de la nevoia de a gestiona eficient locurile de parcare in spatii limitate. Un sistem automatizat reduce timpul petrecut pentru gasirea unui loc liber. |
===== Descriere generala ===== | ===== Descriere generala ===== | ||
- | |||
- | <note tip> | ||
- | O schema bloc cu toate modulele proiectului vostru, atat software cat si hardware insotita de o descriere a acestora precum si a modului in care interactioneaza. | ||
- | </note> | ||
**Schema bloc:** | **Schema bloc:** | ||
- | {{pm:prj2025:abirlica:cristian.nastase03_pm.jpg}} | + | {{pm\:prj2025\:abirlica\:cristian.nastase03\_pm\_v2.jpg}} |
^ Componenta ^ Conexiuni / Functie ^ | ^ Componenta ^ Conexiuni / Functie ^ | ||
- | | Card RFID (RC522) | transmite UID catre Arduino | | + | | Card RFID (RC522) | transmite UID catre Arduino prin SPI si semnaleaza detectia prin IRQ | |
- | | Arduino Uno | primeste date de la senzori, controleaza LCD-ul, LED-urile si servomotorul | | + | | Arduino Uno | controleaza toate modulele: citire card, citire senzori, actionare servo, afisare LCD | |
- | | LCD 16x2 | afiseaza locurile libere | | + | | LCD 16x2 | afiseaza mesajele sistemului si statusul locurilor | |
- | | Servomotor SG90 | actioneaza bariera de acces | | + | | Servomotor SG90 | actioneaza bariera de acces | |
- | | Fotorezistori (LDR) | detecteaza prezenta masinilor | | + | | Fotorezistori (LDR) | detecteaza prezenta masinilor pe locuri | |
- | | LED-uri rosu/verde | semnalizeaza vizual starea locurilor | | + | |
**Descriere functionala:** | **Descriere functionala:** | ||
- | Cardul RFID permite accesul in parcare. La detectia unui card valid, Arduino actioneaza servomotorul pentru a ridica bariera. LDR-urile detecteaza ocuparea locurilor de parcare, iar LED-urile semnalizeaza vizual starea acestora. Numarul de locuri libere este afisat pe LCD. | + | Cand un card este apropiat de cititor, modulul RC522 genereaza o intrerupere. Daca UID-ul cardului este valid, Arduino ridica bariera folosind un servomotor, apoi o coboara dupa un scurt delay. In paralel, sistemul citeste valorile de la 4 fotorezistori conectati pe intrari analogice si pe LCD se contorizeaza numarul de locuri libere din parcare |
===== Hardware Design ===== | ===== Hardware Design ===== | ||
- | |||
- | <note tip> | ||
- | Aici puneti tot ce tine de hardware design: | ||
- | * lista de piese | ||
- | * scheme electrice | ||
- | * diagrame de semnal | ||
- | * rezultatele simularii | ||
- | </note> | ||
**Lista de piese:** | **Lista de piese:** | ||
- | * 1x Arduino Uno | ||
- | * 1x Modul RFID RC522 + carduri/tag-uri | ||
- | * 1x Servomotor SG90 | ||
- | * 1x LCD 16x2 (cu/sau fara I2C) | ||
- | * 6x Fotorezistori (LDR) | ||
- | * 6x LED-uri verzi | ||
- | * 6x LED-uri rosii | ||
- | * 6x rezistente (3x 10kΩ, 3x 220Ω) | ||
- | * Breadboard, fire jumper, protoboard | ||
- | * Sursa de alimentare | ||
- | **Scheme electrice:** | + | * Arduino Uno |
- | (Se vor include in sectiunea //Download//) | + | * Modul RFID RC522 + carduri/taguri |
+ | * Servomotor SG90 | ||
+ | * LCD 16x2 (fara I2C) | ||
+ | * 4x Fotorezistori (LDR) | ||
+ | * 4x rezistente 10kΩ (pentru divizoare tensiune LDR) | ||
+ | * Breadboard | ||
+ | * Fire jumper mama-tata | ||
+ | * Sursa alimentare externa 5V sau USB | ||
- | **Rezultatele simularii:** | + | **Schema electrica:** |
- | Testele au fost efectuate cu succes in Tinkercad pentru: | + | |
- | * citirea cardului RFID | + | {{pm\:prj2025\:abirlica\:cristian.nastase03\_sch.jpg.png?800x}} |
- | * control servomotor | + | |
- | * functionarea LDR-urilor si LED-urilor | + | **Rezultatele simularii:** |
- | * afisare pe LCD | + | |
+ | Testele fizice au confirmat: | ||
+ | |||
+ | * citirea corecta a cardurilor RFID | ||
+ | * ridicarea si coborarea precisa a barierei cu servomotorul | ||
+ | * detectia fiabila a ocuparii locurilor de parcare folosind fotorezistori | ||
+ | * afisaj LCD sincronizat cu starea reala a locurilor | ||
+ | * afisarea valorilor senzorilor in Serial Monitor pentru debugging | ||
===== Software Design ===== | ===== Software Design ===== | ||
- | |||
- | <note tip> | ||
- | Descrierea codului aplicatiei (firmware): | ||
- | * mediu de dezvoltare | ||
- | * librarii si surse 3rd-party | ||
- | * algoritmi si structuri pe care planuiti sa le implementati | ||
- | </note> | ||
**Mediu de dezvoltare:** Arduino IDE | **Mediu de dezvoltare:** Arduino IDE | ||
Line 84: | Line 62: | ||
**Librarii folosite:** | **Librarii folosite:** | ||
- | to be continued | + | * <SPI.h> |
+ | * <MFRC522.h> | ||
+ | * <LiquidCrystal.h> | ||
+ | * <Servo.h> | ||
- | **Structuri implementate:** | + | **Structuri si concepte implementate:** |
+ | |||
+ | * tratarea unei intreruperi externe generate de modulul RFID RC522 prin pinul IRQ | ||
+ | * PWM - controlul unui servomotor pentru bariera folosind biblioteca Servo | ||
+ | * ADC - citirea valorilor de la mai multi senzori analogici (fotorezistori) pentru monitorizarea locurilor | ||
+ | * actualizarea dinamica a afisajului LCD in functie de starea parcarii | ||
+ | * validarea cardurilor RFID (SPI) prin compararea UID-urilor cu o lista prestabilita | ||
+ | * sincronizarea fluxului in functia `loop()` prin utilizarea unei etichete `goto` pentru separarea logicii de control acces si monitorizare | ||
- | to be continued | ||
**Functii principale:** | **Functii principale:** | ||
- | to be continued | + | * `setup()` - initializare module, activare intreruperi, configurare pinuri |
+ | * `loop()` - gestioneaza detectia cardului, verifica UID-ul, controleaza bariera, afiseaza statusul locurilor | ||
===== Rezultate Obtinute ===== | ===== Rezultate Obtinute ===== | ||
- | <note tip> | + | Sistemul a functionat stabil si eficient in testele fizice. Bariera raspunde corect doar la carduri valide, fotorezistorii detecteaza precis starea locurilor, iar informatia este afisata atat pe LCD cat si pe Serial Monitor. |
- | Care au fost rezultatele obtinute in urma realizarii proiectului vostru. | + | |
- | </note> | + | |
- | + | ||
- | to be continued | + | |
===== Concluzii ===== | ===== Concluzii ===== | ||
- | Proiectul a demonstrat eficienta unui sistem embedded simplu dar util. Este o aplicatie relevanta pentru orasele moderne si ofera o platforma buna de invatare pentru interactiunea intre senzori, afisaje si actionari. Sistemul poate fi extins in viitor cu conectivitate WiFi, aplicatii mobile sau interfete web. | + | Proiectul demonstreaza ca este posibila construirea unui sistem embedded interactiv care simuleaza o aplicatie reala: control acces si monitorizare locuri parcare. Este extensibil si poate fi adaptat pentru mai multe locuri, retele wireless, aplicatii mobile sau interfete web. A fost un bun exercitiu pentru integrarea hardware-software in context real. |
===== Download ===== | ===== Download ===== | ||
+ | |||
+ | **Codul sursa si fisierele proiectului sunt disponibile pe GitHub:** | ||
+ | |||
+ | 👉 https://github.com/Nastyst16/Parking_for_Cars.git | ||
<note warning> | <note warning> | ||
- | O arhiva ZIP va contine: | + | Recomandare: clonati repository-ul folosind comanda: |
+ | git clone https://github.com/Nastyst16/Parking_for_Cars.git | ||
+ | |||
+ | Arhiva ZIP va contine: | ||
* codul sursa `.ino` | * codul sursa `.ino` | ||
- | * schemele electrice in format PNG/PDF | + | * schemele electrice in format PNG |
- | * README cu instructiuni de conectare | + | |
</note> | </note> | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
- | <note tip> | + | * Saptamana 1: Alegere tema, documentare, selectie componente |
- | * Saptamana 1: Idee, alegere componente | + | * Saptamana 2: Testare individuala module (LCD, RFID, servo, LDR) |
- | * Saptamana 2: Testare individuala module (LCD, RFID, LDR) | + | * Saptamana 3: Integrare hardware si testare completa |
- | * Saptamana 3: Integrare hardware complet | + | * Saptamana 4: Finalizare cod, validare functionare, redactare documentatie |
- | * Saptamana 4: Testare, corecturi, documentatie | + | |
- | </note> | + | |
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
Line 128: | Line 116: | ||
**Resurse Software:** | **Resurse Software:** | ||
- | to be continued | + | * Documentatia oficiala Arduino: https://www.arduino.cc/reference/en/ |
+ | * MFRC522 Library (GitHub): https://github.com/miguelbalboa/rfid | ||
+ | * Servo Library (Arduino built-in): https://www.arduino.cc/en/Reference/Servo | ||
+ | * Exemple si tutoriale LCD 16x2: https://docs.arduino.cc/learn/electronics/lcd-displays/ | ||
+ | * Forum Arduino pentru depanare si exemple practice: https://forum.arduino.cc/ | ||
**Resurse Hardware:** | **Resurse Hardware:** | ||
- | to be continued | + | * Datasheet RC522: https://www.nxp.com/docs/en/data-sheet/MFRC522.pdf |
+ | * Arduino Uno pinout: https://content.arduino.cc/assets/UNO-TH_Rev3e_sch.pdf | ||
+ | * Tutorial fotorezistor + divizor tensiune: https://projecthub.arduino.cc/tropicalbean/how-to-use-a-photoresistor-1143fd | ||
+ | * Datasheet Servo: https://docs.arduino.cc/learn/electronics/servo-motors/ | ||
+ | * Proiecte similare in comunitatea Arduino Forum | ||