Differences

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

Link to this comparison view

pm:prj2025:ccristi:mario.sampetru [2025/05/25 11:39]
mario.sampetru [Imagini cu Hardware-ul]
pm:prj2025:ccristi:mario.sampetru [2025/05/27 22:35] (current)
mario.sampetru [Download]
Line 23: Line 23:
   * **Conexiune serială cu ESP32** – primește comenzi de la ESP32 pentru control de la distanță.   * **Conexiune serială cu ESP32** – primește comenzi de la ESP32 pentru control de la distanță.
   * **SL067** – detectează nivelul de apă și anunță utilizatorul prin intermediul aplicației.   * **SL067** – detectează nivelul de apă și anunță utilizatorul prin intermediul aplicației.
 +  * **Buzzer** - Trimite alertă sonoră când senzorul de apă detectează o valoare peste prag.
 +  * **LCD** - Afișează statusul capacului (deschis/​închis) și valoarea citită de la senzorul de apă.
  
  
Line 31: Line 33:
 //Conectat la:// //Conectat la://
  
-  * **LED** – semnalizează coș plin. 
   * **HC-SR04** – detectează apropierea utilizatorului pentru deschiderea automată.   * **HC-SR04** – detectează apropierea utilizatorului pentru deschiderea automată.
   * **Conexiune Wi-Fi** – permite controlul coșului de la distanță printr-o interfață grafică.   * **Conexiune Wi-Fi** – permite controlul coșului de la distanță printr-o interfață grafică.
 +  * **Conexiune serială cu Arduino UNO**
 +
  
 3. **Interfață Grafică (Python)** 3. **Interfață Grafică (Python)**
Line 45: Line 48:
 ===== Schema Bloc ===== ===== Schema Bloc =====
  
-{{:​pm:​prj2025:​ccristi:​uml_s_r_b.png?​700 |}} 
  
 +{{:​pm:​prj2025:​ccristi:​diagrama_finala_s_r_b.png?​700 |}}
 ===== Hardware Design ===== ===== Hardware Design =====
  
Line 57: Line 60:
 | SL067 (Water Sensor) ​  | 1             | 10 Lei     | | SL067 (Water Sensor) ​  | 1             | 10 Lei     |
 | HC-SR04 ​               | 1             | 12 Lei    | | HC-SR04 ​               | 1             | 12 Lei    |
 +| LCD I2C                | 1             | 14 Lei    |
 +| Buzzer ​                | 1             | 2 Lei    |
 | Baterie 9V 650mAh ​     | 1             | 57 Lei     | | Baterie 9V 650mAh ​     | 1             | 57 Lei     |
 | Baterie 5V 2Ah         | 1             | 100 Lei     | | Baterie 5V 2Ah         | 1             | 100 Lei     |
Line 63: Line 68:
  
  
- +{{:​pm:​prj2025:​ccristi:​circuit_final_s_r_b.png?650 |}}
-{{:​pm:​prj2025:​ccristi:​circuit.png?650 |}}+
 ===== Imagini cu Hardware-ul ​ ===== ===== Imagini cu Hardware-ul ​ =====
  
Line 71: Line 75:
  
  
-{{:​pm:​prj2025:​ccristi:​hw_srb1.jpg?700 |}} +{{:​pm:​prj2025:​ccristi:​s_r_b_hw_1_.jpg?700 |}} 
- +{{:​pm:​prj2025:​ccristi:​s_r_b_hw_2_.jpg?700 |}}
-{{:​pm:​prj2025:​ccristi:​hw_srb2.jpg?700 |}}+
  
 ===== Software Design ===== ===== Software Design =====
Line 90: Line 93:
 | //​requests// ​       | Modulul HTTP pentru Python, folosit în aplicația GUI pentru a trimite cereri GET către ESP32 și a comunica cu dispozitivul. ​                                                    | | //​requests// ​       | Modulul HTTP pentru Python, folosit în aplicația GUI pentru a trimite cereri GET către ESP32 și a comunica cu dispozitivul. ​                                                    |
 | //​WiFi.h// ​        | Oferă conectivitate Wi-Fi și gestionează serverul HTTP care primește comenzile de la interfața Python. ​                                                  | | //​WiFi.h// ​        | Oferă conectivitate Wi-Fi și gestionează serverul HTTP care primește comenzile de la interfața Python. ​                                                  |
-| //HardwareSerial.h// | Permite ESP32 să comunice în mod serial cu Arduino Uno.                                      |+| //soc/​gpio_reg.h//         ​oferă definiții pentru registrele GPIO, facilitând controlul pinilor ESP32. ​                                                  | 
 +| //​LiquidCrystal_I2C.h.h//​ | Pentru controloul display-ului LCD.                                      |
 | //​Servo.h// ​        | A fost utilizată pentru a controla mișcarea servo-ului (deschiderea/​închiderea capacului). ​   | | //​Servo.h// ​        | A fost utilizată pentru a controla mișcarea servo-ului (deschiderea/​închiderea capacului). ​   |
-| //​SoftwareSerial.h//​ | Permite crearea de canale seriale software pe Arduino Uno, facilitând comunicarea cu ESP32. ​     |+ 
  
 ===== Funcții Arduino UNO ===== ===== Funcții Arduino UNO =====
  
-| **Funcție** ​            | **Descriere** ​   |                                                                                                                                                              ​+| **Funcție** ​            | **Descriere** ​   ​
 +| ''​setupServo()'' ​ | Configurează servo-motorul prin intermediul librăriei ''​Servo.h'' ​                                                                          | 
 +| ''​openServo()'' ​ | Modifică unghiul de deschidere al servo-ului astfel încât să poată efectua deschiderea capacului. ​                                                                             ​|                                                                                                                                                              ​ 
 +| ''​closeServo()'' ​ | Operația inversă ''​openServo()''​. ​                                                                           | 
 +| ''​updateLcd()'' ​ | Actualizează afișajul LCD folosind librăria ''​LiquidCrystal_I2C''​. Mesajele afișate reprezintă statusul capacului (deschis/​închis),​ precum și valoarea citită de senzorul de apă.                                                                            |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
 | ''​checkWaterSensor()'' ​ | Citește valoarea analogică de la senzorul de apă și trimite o alertă dacă valoarea depășește pragul. ​                                                                           | | ''​checkWaterSensor()'' ​ | Citește valoarea analogică de la senzorul de apă și trimite o alertă dacă valoarea depășește pragul. ​                                                                           |
 | ''​handleEspCommand()'' ​ | Procesează comenzile primite (de ex. ''​OPEN''​ sau ''​CLOSE''​) de la ESP32 pentru a controla deschiderea/​închiderea servo-ului. ​                                                 | | ''​handleEspCommand()'' ​ | Procesează comenzile primite (de ex. ''​OPEN''​ sau ''​CLOSE''​) de la ESP32 pentru a controla deschiderea/​închiderea servo-ului. ​                                                 |
Line 104: Line 113:
  
 | **Funcție** ​             | **Descriere** ​ |                                                                                                                                                              | **Funcție** ​             | **Descriere** ​ |                                                                                                                                                             
-| ''​setupWiFi()'' ​         | Conectează ESP32 la rețeaua Wi-Fi folosind SSID și parolăteaptă până când se atinge starea ''​WL_CONNECTED''​ pentru o conexiune stabilă                               +| ''​setupWiFi()'' ​         | Conectează ESP32 la rețeaua Wi-Fi folosind SSID și parolăteptând obținerea unei conexiuni stabile                            ​
-| ''​measureDistance()'' ​   | Utilizează senzorul HC-SR04 pentru a măsura distanța. ​                                                                                                                    |+| ''​measureDistance()'' ​   | Utilizează senzorul HC-SR04 pentru a măsura distanța ​dintre senzorul //HC-SR04// și cel mai apropiat obiect.                                                                                                                     |
 | ''​handleHandDetection()''​| Detectează prezența unei mâini la distanțe între 2.0 și 15.0 cm și declanșează comanda de deschidere a capacului când pragul este atins. ​                               | | ''​handleHandDetection()''​| Detectează prezența unei mâini la distanțe între 2.0 și 15.0 cm și declanșează comanda de deschidere a capacului când pragul este atins. ​                               |
 +| ''​handleSerialInput()''​ | Monitorizează conexiunea serială (Serial2) pentru a prelua mesajele trimise de la Arduino. La primirea unui mesaj, acesta este afișat pe consolă și transmis funcției //​updateStatus()//​ pentru eventuale acțiuni ulterioare. |
 +| ''​sendToArduino(String&​ cmd)''​ | Trimite comenzi (cum ar fi "​OPEN"​ sau "​CLOSE"​) către placa Arduino prin intermediul conexiunii Serial2. |
 | ''​handleHttpRequest()'' ​ | Gestionează cererile HTTP GET pentru ''/​open'',​ ''/​close''​ și ''/​status'',​ permițând controlul de la distanță al funcțiilor dispozitivului. ​                              | | ''​handleHttpRequest()'' ​ | Gestionează cererile HTTP GET pentru ''/​open'',​ ''/​close''​ și ''/​status'',​ permițând controlul de la distanță al funcțiilor dispozitivului. ​                              |
-| ''​updateStatus()'' ​      | Procesează mesajele primite de la Arduino. ​     |+| ''​updateStatus()'' ​      | Procesează mesajele primite de la Arduino ​pentru a actualiza starea sistemului.      |
  
 ===== Funcții Python ===== ===== Funcții Python =====
Line 144: Line 155:
 ===== Download ===== ===== Download =====
  
-<​note ​warning+<​note>​ 
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectuluisurse, scheme, etcUn fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). +  * **Codul:** https://​github.com/​mariosam23/​SmartRecycleBin 
- +  * **Demo Video 1**: https://​github.com/​mariosam23/​SmartRecycleBin/​blob/​main/​demo1.gif 
-Fişierele se încarcă pe wiki folosind facilitatea ​**Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:prj20??:​c?:​nume_student** (dacă este cazul). **Exemplu:** Dumitru Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**.+  ​* **Demo Video 2**: https://github.com/​mariosam23/​SmartRecycleBin/​blob/​main/​demo2.gif 
 +  ​* **Codul arhivat**: {{:pm:prj2025:ccristi:smart_r_b_code.zip|}}
 </​note>​ </​note>​
  
Line 159: Line 171:
 | SL067                               | 1         | [[https://​curtocircuito.com.br/​datasheet/​sensor/​nivel_de_agua_analogico.pdf | Water Sensor SL067]] | | SL067                               | 1         | [[https://​curtocircuito.com.br/​datasheet/​sensor/​nivel_de_agua_analogico.pdf | Water Sensor SL067]] |
 | HC-SR04 ​                            | 1         | [[https://​cdn.sparkfun.com/​datasheets/​Sensors/​Proximity/​HCSR04.pdf | HC-SR04]] ​   | | HC-SR04 ​                            | 1         | [[https://​cdn.sparkfun.com/​datasheets/​Sensors/​Proximity/​HCSR04.pdf | HC-SR04]] ​   |
-Baterie 9V 650mAh ​                  | 1         ​| ​-                 | +LCD I2C                             | 1         ​| ​[[https://​www.handsontec.com/​dataspecs/​module/​I2C_1602_LCD.pdf ​LCD]] |
-| Baterie 5V 2Ah                      | 1         | -                 |+
  
  
pm/prj2025/ccristi/mario.sampetru.1748162369.txt.gz · Last modified: 2025/05/25 11:39 by mario.sampetru
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