This shows you the differences between two versions of the page.
pm:prj2025:ccristi:mario.sampetru [2025/05/27 10:26] mario.sampetru [Schema Bloc] |
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 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ă; aș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ă, aș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 148: | Line 159: | ||
* **Demo Video 1**: https://github.com/mariosam23/SmartRecycleBin/blob/main/demo1.gif | * **Demo Video 1**: https://github.com/mariosam23/SmartRecycleBin/blob/main/demo1.gif | ||
* **Demo Video 2**: https://github.com/mariosam23/SmartRecycleBin/blob/main/demo2.gif | * **Demo Video 2**: https://github.com/mariosam23/SmartRecycleBin/blob/main/demo2.gif | ||
- | * **Codul arhivat**: {{:pm:prj2025:ccristi:cod_smart_recycle_bin.zip|}} | + | * **Codul arhivat**: {{:pm:prj2025:ccristi:smart_r_b_code.zip|}} |
</note> | </note> | ||
Line 160: | 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 | - | | + | |