This is an old revision of the document!


Dozator Inteligent de Apă

Introducere

Proiectul constă într-un sistem automatizat pentru dozarea apei, cu posibilitatea alegerii cantității prin telecomandă. Am pornit de la ideea de a crea un dispozitiv util în medii aglomerate (birouri, laboratoare, etc.) unde dozarea apei poate fi repetitivă și anevoioasă. Scopul este de a oferi un mod hands-free, rapid și sigur de a umple pahare cu apă, cu verificarea automată a disponibilității apei și a recipientului. Considerăm că un astfel de dispozitiv poate avea aplicabilitate practică.

Descriere generală

Sistemul este compus din mai multe module hardware și software care colaborează pentru a permite dozarea controlată a apei. Utilizatorul selectează cantitatea dorită folosind o telecomandă IR. Un senzor ultrasonic detectează prezența unui pahar, iar un al doilea senzor verifică nivelul apei în rezervor. Dacă oricare dintre condiții nu este îndeplinită, utilizatorul este informat printr-un mesaj pe LCD și un semnal sonor. Dacă totul este în regulă, o pompă este activată pentru a doza cantitatea corespunzătoare.

Hardware Design

Lista componentelor:

  • Arduino UNO
  • Senzor ultrasonic HC-SR04 x2 (pentru nivel apă și detecție pahar)
  • Display LCD 1602 cu I2C
  • Modul Releu 5V
  • Pompă de apă submersibilă
  • Receptor IR
  • Telecomandă IR standard
  • Buzzer pasiv
  • Fire de conectare, breadboard și sursă de alimentare

Schema electrică și diagrame de semnal vor fi atașate mai jos.

Software Design

Codul implementat pentru acest proiect controlează întregul proces de dozare automată a apei, fiind scris pentru platforma Arduino UNO. Funcționează cu o telecomandă IR pentru inputul utilizatorului, iar feedback-ul vizual este oferit de un ecran LCD 1602 cu I2C. Sistemul se bazează pe doi senzori ultrasonic HC-SR04 pentru a evalua atât nivelul apei din rezervor, cât și prezența unui pahar la punctul de umplere. Acțiunile sunt coordonate în funcție de comenzile IR și de starea senzorilor.

🔧 Biblioteci utilizate

- `Wire.h`: pentru comunicația I2C necesară LCD-ului - `LiquidCrystal_I2C.h`: controlul afișajului LCD - `IRremote.h`: pentru decodarea semnalelor de la telecomandă

📌 Configurarea componentelor

- LCD 1602 I2C: adresa `0x27`, dimensiune 16×2 - Receptor IR: conectat la pinul `IRPIN` - Senzori ultrasonic:

  1. `TRIG_PIN1` & `ECHO_PIN1`: nivelul apei
  2. `TRIG_PIN2` & `ECHO_PIN2`: detecția paharului

- Releu: conectat la `RELAY_PIN`, comandă pompa - Buzzer: pe `BUZZER_PIN`, avertizare sonoră - Coduri IR:

  1. `BUTTON_LEFT`: selectează pahar mic
  2. `BUTTON_RIGHT`: selectează pahar mare
  3. `BUTTON_OK`: confirmă selecția

🧮 Variabile și constante

- `pourTime`: durata de activare a pompei - `MAX_WATER_LEVEL`, `MIN_WATER_LEVEL`: praguri nivel apă - `MAX_GLASS_DISTANCE`: distanță maximă pentru detectarea paharului - `SMALL_GLASS`, `BIG_GLASS`: timpi prestabiliți de turnare

🔄 Structura codului

setup():

  1. Inițializează componentele hardware
  2. Configurează pinii și pornește comunicarea cu LCD și IR

loop():

  1. Citește datele de la senzori și le trimite prin serial
  2. Așteaptă comenzi IR:
    1. Selectează tipul de pahar
    2. Afișează informația pe LCD
    3. La apăsarea OK:
      1. Verifică paharul și nivelul apei
      2. Dacă sunt condiții ok → se activează pompa
      3. Altfel → avertizare cu buzzer și mesaj pe LCD

🧩 Funcții auxiliare

- `beep()`: activează buzzer-ul pentru avertizare - `pourWater()`: comandă releul pentru o durată prestabilită - `isWater()`: verifică dacă rezervorul are apă suficientă - `isGlass()`: verifică prezența unui pahar - `readWaterLevel()`: returnează distanța până la nivelul apei - `readGlassDistance()`: returnează distanța față de pahar

🔁 Fluxul general de utilizare

1. Utilizatorul alege dimensiunea paharului prin telecomandă 2. Codul IR este decodificat și interpretat 3. La apăsarea OK:

  1. Se verifică prezența unui pahar și nivelul apei
  2. Dacă ambele sunt valabile → se activează pompa
  3. Dacă nu → sistemul avertizează și nu pornește pompa

Download

Fișierele proiectului (schemă, cod sursă, documentație) vor fi atașate în acest spațiu.

pm/prj2025/avaduva/andrei.nedelcu2002.1747575691.txt.gz · Last modified: 2025/05/18 16:41 by andrei.nedelcu2002
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