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:52]
mario.sampetru [Download]
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 145: Line 156:
  
 <​note>​ <​note>​
-https://​github.com/​mariosam23/​SmartRecycleBin+  * **Codul:​** ​https://​github.com/​mariosam23/​SmartRecycleBin 
 +  * **Demo Video 1**: https://​github.com/​mariosam23/​SmartRecycleBin/​blob/​main/​demo1.gif 
 +  * **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 157: 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.1748163142.txt.gz · Last modified: 2025/05/25 11:52 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