This shows you the differences between two versions of the page.
pm:prj2024:mdinica:bianca.dumitru0711 [2024/05/24 14:31] bianca.dumitru0711 [Introducere] |
pm:prj2024:mdinica:bianca.dumitru0711 [2024/05/27 14:18] (current) bianca.dumitru0711 [Software Design] |
||
---|---|---|---|
Line 22: | Line 22: | ||
Proiectul este controlat de către un modul ESP32 ce suportă comunicație prin Wi-Fi. Userul interacționează cu sistemul prin intermediul cardului de acces, ce este citit de către un modul RFID. Datele cardului sunt transmise ESP-ului, care, folosindu-se de modulul Wi-Fi, comunică cu un server web pentru a determina validitatea abonamentului userului. În funcție de răspunsul primit, modulul ESP acționează un buzzer, un led RGB și un display LCD pentru a-i transmite outputul userului. | Proiectul este controlat de către un modul ESP32 ce suportă comunicație prin Wi-Fi. Userul interacționează cu sistemul prin intermediul cardului de acces, ce este citit de către un modul RFID. Datele cardului sunt transmise ESP-ului, care, folosindu-se de modulul Wi-Fi, comunică cu un server web pentru a determina validitatea abonamentului userului. În funcție de răspunsul primit, modulul ESP acționează un buzzer, un led RGB și un display LCD pentru a-i transmite outputul userului. | ||
- | Schema bloc a proiectului: | + | **Schema bloc a proiectului**: |
{{:pm:prj2024:mdinica:bianca.dumitru0711.schema_logica.png?700|}} | {{:pm:prj2024:mdinica:bianca.dumitru0711.schema_logica.png?700|}} | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
- | Lista de componente: | + | **Lista de componente**: |
* ESP32 WROOM cu 38 de pini, modul Bluetooth și Wi-Fi | * ESP32 WROOM cu 38 de pini, modul Bluetooth și Wi-Fi | ||
* Led RGB | * Led RGB | ||
Line 34: | Line 34: | ||
* Carduri de acces | * Carduri de acces | ||
* Buzzer | * Buzzer | ||
+ | * Half-Breadboard | ||
* Fire | * Fire | ||
* Sursă de alimentare (baterie externă) | * Sursă de alimentare (baterie externă) | ||
- | Schema electrică: | + | **Schema electrică**: |
{{:pm:prj2024:mdinica:bianca.dumitru0711.schema-electrica-nou.png?700|}} | {{:pm:prj2024:mdinica:bianca.dumitru0711.schema-electrica-nou.png?700|}} | ||
- | Asamblarea componentelor: | + | **Asamblarea componentelor**: |
{{:pm:prj2024:mdinica:bianca.dumitru0711.poza_hard.jpeg?600|}} | {{:pm:prj2024:mdinica:bianca.dumitru0711.poza_hard.jpeg?600|}} | ||
Line 66: | Line 67: | ||
**Motivarea alegerii bibliotecilor folosite în cadrul proiectului**: Bibliotecile aduc simplitate și mai multă siguranță în cadrul proiectului, facilitând integrarea elementelor hardware cu cele software. | **Motivarea alegerii bibliotecilor folosite în cadrul proiectului**: Bibliotecile aduc simplitate și mai multă siguranță în cadrul proiectului, facilitând integrarea elementelor hardware cu cele software. | ||
- | **Elementul de noutate al proiectului**: | + | **Elementul de noutate al proiectului**: Elementul de noutate pe care l-am introdus, comparănd sistemul cu cele pe care le-am întălnit în cadrul sălilor de fitness, este afișajul numelui și al contorului de prezențe odată cu scanarea cardului. |
**Utilizarea funcționalităților din laborator**: | **Utilizarea funcționalităților din laborator**: | ||
- | * Laboratorul 0: GPIO - Configurarea și utilizarea pinilor GPIO pentru LED-ul RGB și buzzer: | + | * Laboratorul 0: GPIO - Configurarea și utilizarea pinilor GPIO pentru LED-ul RGB și buzzer |
- | * Laboratorul 1: UART - Comunicarea serială pentru debug și afișarea mesajelor în consola serială: | + | * Laboratorul 1: UART - Comunicarea serială pentru debug |
- | * Laboratorul 3: Timere. PWM - Utilizarea PWM pentru controlul buzzer-ului: | + | * Laboratorul 3: Timere. PWM - Utilizarea PWM pentru controlul buzzer-ului |
- | * Laboratorul 5: SPI - Comunicarea cu cititorul RFID si modului WiFi: | + | * Laboratorul 5: SPI - Comunicarea cu cititorul RFID si modului WiFi |
- | * Laboratorul 6: I2C - Comunicarea cu ecranul LCD: | + | * Laboratorul 6: I2C - Comunicarea cu ecranul LCD |
+ | **Calibrarea elementelor de senzoristică**: Elementele de senzoristică au fost calibrate pentru a garanta o funcționare corectă și precisă a fiecărei componente. În cadrul fișierelor header prezente în arhivă se pot observa metodele de calibrare utilizate pentru RFID, LCD, buzzer și LED, prin inițializarea corectă și prin setarea stării acestora în funcție de outputul propus. | ||
+ | |||
+ | **Optimizari**: | ||
+ | * folosirea protocolului stateless HTTP in loc de o conexiune continua cu serverul | ||
+ | * oprierea functiei Bluetooth a modulului ESP pentru a economisi energie | ||
+ | * revenirea la starea initiala a LED-ului si LCD-ului doar dupa modificarea acestora datorata de citirea unui card, nu la fiecare rulare a functiei loop | ||
**Software design**: | **Software design**: | ||
- | Codul este organizat în mai multe fișiere, fiind împărțit între fișierele header cu funcții helper pentru inițializare și setare de stări (http.h, lcd.h, rgb.h, buzzer.h, rfid.h) și fișierul main, ce conține logica principală a programului. | + | Codul este organizat în mai multe fișiere, fiind împărțit între **fișierele header** cu funcții helper pentru inițializare și setare de stări (http.h, lcd.h, rgb.h, buzzer.h, rfid.h) și fișierul **main**, ce conține logica principală a programului. |
Funcția de setup se ocupă cu inițializarea componentelor și realizarea conexiunii Wi-Fi: | Funcția de setup se ocupă cu inițializarea componentelor și realizarea conexiunii Wi-Fi: | ||
Line 84: | Line 91: | ||
void setup() { | void setup() { | ||
Serial.begin(9600); | Serial.begin(9600); | ||
+ | |||
+ | // Dezactivează complet stiva Bluetooth pentru a economisi energie | ||
+ | btStop(); | ||
+ | esp_bt_controller_disable(); | ||
+ | esp_bt_controller_deinit(); | ||
+ | | ||
connectToWiFi(); | connectToWiFi(); | ||
initializeRFID(rfid); | initializeRFID(rfid); | ||
Line 235: | Line 248: | ||
Realizarea proiectului a fost un proces interesant, fiind prima data cand am avut ocazia sa implementez un produs fizic, care include si hardware, nu doar software. Sunt multumita de ceea ce am realizat, si consider ca sistemul este unul complet, care ofera aceleasi capabilitati ca unul real, dintr-o sala de fitness. Singurul lucru la care consider ca ar mai trebui lucrat este aspectul, intrucat "carcasa" este improvizata de mine si nu se preteaza unui produs real. | Realizarea proiectului a fost un proces interesant, fiind prima data cand am avut ocazia sa implementez un produs fizic, care include si hardware, nu doar software. Sunt multumita de ceea ce am realizat, si consider ca sistemul este unul complet, care ofera aceleasi capabilitati ca unul real, dintr-o sala de fitness. Singurul lucru la care consider ca ar mai trebui lucrat este aspectul, intrucat "carcasa" este improvizata de mine si nu se preteaza unui produs real. | ||
===== Download ===== | ===== Download ===== | ||
- | Arhiva ce contine codul: {{:pm:prj2024:mdinica:main.zip|}} | + | Arhiva ce contine codul: {{:pm:prj2024:mdinica:gym-attendance-system-main.zip|}} |
===== Jurnal ===== | ===== Jurnal ===== | ||