This shows you the differences between two versions of the page.
pm:prj2025:ccristi:mario.sampetru [2025/05/27 10:40] mario.sampetru [Bibliografie/Resurse] |
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 72: | 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 93: | Line 95: | ||
| //soc/gpio_reg.h// | oferă definiții pentru registrele GPIO, facilitând controlul pinilor ESP32. | | | //soc/gpio_reg.h// | oferă definiții pentru registrele GPIO, facilitând controlul pinilor ESP32. | | ||
| //LiquidCrystal_I2C.h.h// | Pentru controloul display-ului LCD. | | | //LiquidCrystal_I2C.h.h// | Pentru controloul display-ului LCD. | | ||
- | | //HardwareSerial.h// | Permite ESP32 să comunice în mod serial cu Arduino Uno. | | ||
| //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. | | ||
Line 101: | Line 101: | ||
===== 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 109: | 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 153: | 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> | ||