This is an old revision of the document!
1. Arduino UNO
Deschide capacul coșului de gunoi și reacționează automat la apropierea utilizatorului.
Conectat la:
2. ESP32-WROOM
Comunicare wireless și extinderea funcționalității prin senzori suplimentari.
Conectat la:
3. Interfață Grafică (Python)
Descriere:
Listă piese:
Componentă | Cantitate | Preț |
Arduino UNO | 1 | 49 Lei |
ESP-Wroom 32 | 1 | 45 Lei |
Servomotor SG90 | 1 | 15 Lei |
SL067 (Water Sensor) | 1 | 10 Lei |
HC-SR04 | 1 | 12 Lei |
LCD I2C | 1 | 14 Lei |
Buzzer | 1 | 2 Lei |
Baterie 9V 650mAh | 1 | 57 Lei |
Baterie 5V 2Ah | 1 | 100 Lei |
Listă Librării și Surse Terțe Utilizate
Nume Librărie | Descriere și Utilizare |
tkinter | Bibliotecă GUI nativă Python. A fost folosită pentru a crea interfața grafică din care se trimit comenzile (deschidere/închidere capac) către ESP32. |
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. |
soc/gpio_reg.h | oferă definiții pentru registrele GPIO, facilitând controlul pinilor ESP32. |
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). |
SoftwareSerial.h | Permite crearea de canale seriale software pe Arduino Uno, facilitând comunicarea cu ESP32. |
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. |
handleEspCommand() | Procesează comenzile primite (de ex. OPEN sau CLOSE ) de la ESP32 pentru a controla deschiderea/închiderea servo-ului. |
autoCloseCheck() | Închide automat servo-ul după 3000 ms dacă acesta este deschis. |
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ă. |
measureDistance() | Utilizează senzorul HC-SR04 pentru a măsura distanța. |
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() | . |
sendToArduino(String& cmd) | . |
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. |
Funcție | Descriere |
send() | Trimite cereri GET către ESP32 (cu timeout de 2 secunde) pentru a executa comenzi precum deschiderea sau închiderea capacului. |
poll_status() | Interoghează periodic ESP32 pentru a verifica starea și a afișa avertismente dacă se detectează WATER . |
Componentă | Cantitate | Datasheet |
Arduino UNO | 1 | Arduino UNO |
ESP-Wroom 32 | 1 | ESP-Wroom 32 |
Servomotor SG90 | 1 | Servomotor SG90 |
SL067 | 1 | Water Sensor SL067 |
HC-SR04 | 1 | HC-SR04 |
LCD I2C | 1 | LCD |