This is an old revision of the document!


Smart Recycle Bin

Autor: Sâmpetru Mario
Grupa: 331CA

Introducere

Am realizat un coș de gunoi inteligent care detectează apropierea utilizatorului prin intermediul unui senzor ultrasonic, deschide automat capacul folosind un servo. În plus, capacul acestuia se poate deschide de la distanță prin intermediul unei aplicații. Tot prin intermediul aplicației, utilizatorul poate verifica dacă a avut loc o scurgere de lichide.

Descriere generală

1. Arduino UNO

Deschide capacul coșului de gunoi și reacționează automat la apropierea utilizatorului.

Conectat la:

  • Servo motor – acționează capacul pentru deschidere/închidere.
  • 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.

2. ESP32-WROOM

Comunicare wireless și extinderea funcționalității prin senzori suplimentari.

Conectat la:

  • LED – semnalizează coș plin.
  • HC-SR04 – detectează apropierea utilizatorului pentru deschiderea automată.
  • Conexiune Wi-Fi – permite controlul coșului de la distanță printr-o interfață grafică.

3. Interfață Grafică (Python)

Descriere:

  • Permite introducerea adresei IP a ESP32.
  • Trimite comenzi HTTP (/open, /close, /status) către ESP32 pentru deschiderea sau închiderea capacului, și pentru a verifica dacă a avut loc un incident ce a cauzat scurgere de lichide în interiorul coșului.

Schema Bloc

Hardware Design

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

Schema circuitului

Imagini cu Hardware-ul

Software Design

Medii de dezvoltare: Arduino IDE pentru ESP32 și Arduino UNO; Vscode pentru Python

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ții Arduino UNO

Funcție Descriere
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ții ESP32

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.
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ții Python

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.

Rezultate Obţinute

  • Interfață GUI Python: Aplicația oferă o interfață prietenoasă, din care se pot trimite rapid comenzi către ESP32, facilitând controlul dispozitivului.
  • Conectivitate Wi-Fi și Server HTTP: ESP32 se conectează cu succes la rețeaua Wi-Fi, iar serverul HTTP integrat răspunde corect la cereri GET (/open, /close și /status), permițând controlul la distanță.
  • Măsurarea Distanței: Senzorul HC-SR04 a măsurat cu precizie distanțele, permițând detectarea prezenței unei mâini între 2.0 și 15.0 cm, activând comanda de deschidere.
  • Comunicare între ESP32 și Arduino Uno
  • Gestionarea Stării de Apă: Arduino Uno monitorizează senzorul de apă și transmite alerta “WATER” atunci când valoarea măsurată depășește pragul.

Jurnal

  • M-am gândit la proiect.
  • Am procurat piesele necesare. Până când au venit piesele, am lucrat la schema bloc și la schema electrică.
  • Odată ajunse piesele, am realizat etapa hardware, cu piesele conectate exact la fel ca în schema electrică.
  • Am lipit piesele în interiorul coșului de gunoi și am mai cumparat o baterie externa pentru a alimenta complet proiectul.
  • Am scris Software-ul pentru proiect.

Concluzii

  • Integrarea hardware-software a fost reușită, demonstrând control precis al servo-ului și monitorizarea senzorilor prin comunicare eficientă (HTTP, HardwareSerial, SoftwareSerial) între GUI (Python), ESP32 și Arduino Uno.
  • Conectivitatea Wi-Fi a fost stabilă, serverul HTTP răspunzând corect cererilor, permițând controlul la distanță.
  • Proiectul este scalabil, având potențial pentru îmbunătățiri și adăugiri viitoare.

Download

Bibliografie/Resurse

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

Export to PDF

pm/prj2025/ccristi/mario.sampetru.1748331601.txt.gz · Last modified: 2025/05/27 10:40 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