Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2024:mdinica:bianca.dumitru0711 [2024/05/22 13:50]
bianca.dumitru0711 [Bibliografie/Resurse]
pm:prj2024:mdinica:bianca.dumitru0711 [2024/05/27 14:18] (current)
bianca.dumitru0711 [Software Design]
Line 6: Line 6:
 ===== Introducere ===== ===== Introducere =====
  
-Proiectul își propune verificarea și monitorizarea participanților unei săli de sport. Acesta are două funcționalități principale: verificarea validității abonamentului personal și contorizarea numarului de prezențe la sală. ​+Proiectul își propune ​**verificarea și monitorizarea participanților unei săli de sport**. Acesta are două funcționalități principale: verificarea validității abonamentului personal și contorizarea numarului de prezențe la sală. ​
  
-Identificarea userilor se face pe baza unui card personal, iar sistemul comunică direct cu utilizatorul prin diverse mijloace (audio, vizual) în funcție de validitatea abonamentului. Există și posibilitatea înregistrării unui user nou, atunci când el își scanează pentru prima dată cardul.+Identificarea userilor se face pe baza unui **card personal**, iar sistemul comunică direct cu utilizatorul prin diverse mijloace (audio, vizual) în funcție de validitatea abonamentului. Există și posibilitatea ​**înregistrării** unui user nou, atunci când el își scanează pentru prima dată cardul.
  
 La fiecare scanare a cardului unui utilizator cu abonament valid, acestuia i se adaugă câte o prezență. Numărul de prezențe al fiecărui user poate fi vizualizat în timp real în cadrul unui site web. La fiecare scanare a cardului unui utilizator cu abonament valid, acestuia i se adaugă câte o prezență. Numărul de prezențe al fiecărui user poate fi vizualizat în timp real în cadrul unui site web.
Line 14: Line 14:
 Ideea proiectului este inspirată din sistemele de același tip folosite în prezent de sălile din oraș. Ideea proiectului este inspirată din sistemele de același tip folosite în prezent de sălile din oraș.
  
-Consider că proiectul aduce beneficii atât pentru operatorii de săli de sport, care automatizează o parte din muncă prin folosirea identificării pe bază de carduri, cât și userilor, cărora li se poate pune la dispoziție cu ușurință un rezumat al vizitelor la sală. ​ +Consider că proiectul aduce beneficii atât pentru operatorii de săli de sport, care automatizează o parte din muncă prin folosirea identificării pe bază de carduri, cât și userilor, cărora li se poate pune la dispoziție cu ușurință un rezumat al vizitelor la sală. ​ 
 + 
 +Elementul de noutate pe care l-am introdus, comparand sistemul cu cele pe care le-am intalnit in cadrul salilor de fitness, este afisajul numelui si al contorului de prezente odata cu scanarea cardului. ​
 ===== Descriere generală ===== ===== Descriere generală =====
  
Line 20: 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 32: 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 54: Line 57:
 ===== Software Design ===== ===== Software Design =====
  
-Mediu de dezvoltareArduino IDE+**Stadiul actual al implementării software**În momentul de față, proiectul este finalizat și complet funcțional,​ înglobând toate funcționalitățile pe care mi-am propus de la început să le aibă.
  
-Biblioteci utilizateWiFi.h, HTTPClient.h,​ ArduinoJson.h (pentru comunicarea cu serverul web), LiquidCrystal_I2C.h (pentru LCD-ul cu modul I2C), MFRC522.h (pentru cititorul de carduri RFID)+**Repo GitHub**https://​github.com/​dumitrustefania/​Gym-Attendance-System
  
-Repo GitHubhttps://​github.com/​dumitrustefania/​Gym-Attendance-System+**Mediu de dezvoltare**Arduino IDE
  
-Software design:+**Biblioteci utilizate**WiFi.h, HTTPClient.h,​ ArduinoJson.h (pentru comunicarea cu serverul web), LiquidCrystal_I2C.h (pentru LCD-ul cu modul I2C), MFRC522.h (pentru cititorul de carduri RFID)
  
-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.+**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 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**:​ 
 +  * Laboratorul 0: GPIO - Configurarea și utilizarea pinilor GPIO pentru LED-ul RGB și buzzer 
 +  * Laboratorul 1: UART - Comunicarea serială pentru debug 
 +  * Laboratorul 3: Timere. PWM - Utilizarea PWM pentru controlul buzzer-ului 
 +  * Laboratorul 5: SPI - Comunicarea cu cititorul RFID si modului WiFi 
 +  * 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**: 
 + 
 +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 69: 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 212: Line 240:
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-Demo: +Demo-ul exemplifică funcționalitatea proiectului prin scanarea unui card înregistrat cu abonament valid, a unui card înregistrat cu abonament invalid și prin înregistrarea unui card nou
-<iframe width="​560" height="​315" src="​https://​www.youtube.com/​embed/​WW0er__Tu5o?​si=zjbmJfucLypmDqBp"​ title="​YouTube video player"​ frameborder="​0"​ allow="​accelerometer;​ autoplay; clipboard-write;​ encrypted-media;​ gyroscope; picture-in-picture;​ web-share"​ referrerpolicy="​strict-origin-when-cross-origin"​ allowfullscreen></​iframe>​+ 
 +<​html>​<iframe width="​700" height="​400" src="​https://​www.youtube.com/​embed/​WW0er__Tu5o?​si=zjbmJfucLypmDqBp"​ title="​YouTube video player"​ frameborder="​0"​ allow="​accelerometer;​ autoplay; clipboard-write;​ encrypted-media;​ gyroscope; picture-in-picture;​ web-share"​ referrerpolicy="​strict-origin-when-cross-origin"​ allowfullscreen></​iframe></​html>
  
 ===== Concluzii ===== ===== Concluzii =====
  
 +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 =====
  
Line 229: Line 259:
   * 16-17 mai - realizare carcasă și asamblarea componentelor în aceasta   * 16-17 mai - realizare carcasă și asamblarea componentelor în aceasta
   * 22 mai - filmare demo   * 22 mai - filmare demo
 +  * 24 mai - finalizare documentație
  
  
pm/prj2024/mdinica/bianca.dumitru0711.1716375052.txt.gz · Last modified: 2024/05/22 13:50 by bianca.dumitru0711
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