This shows you the differences between two versions of the page.
pm:prj2025:avaduva:andrei.nedelcu2002 [2025/05/18 16:42] andrei.nedelcu2002 |
pm:prj2025:avaduva:andrei.nedelcu2002 [2025/05/28 09:24] (current) andrei.nedelcu2002 [Youtube & Download] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Dozator Inteligent de Apă ====== | + | ====== Dozator Inteligent de Apa ====== |
===== Introducere ===== | ===== Introducere ===== | ||
<note tip> | <note tip> | ||
- | 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ă. | + | Proiectul consta intr-un sistem automatizat pentru dozarea apei, cu posibilitatea alegerii cantitatii prin telecomanda. Am pornit de la ideea de a crea un dispozitiv util in medii aglomerate (birouri, laboratoare, etc.) unde dozarea apei poate fi repetitiva si anevoioasa. |
- | 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ă. | + | Scopul este de a oferi un mod hands-free, rapid si sigur de a umple pahare cu apa, cu verificarea automata a disponibilitatii apei si a recipientului. Consideram ca un astfel de dispozitiv poate avea aplicabilitate practica. |
</note> | </note> | ||
- | ===== Descriere generală ===== | + | ===== Descriere generala ===== |
<note tip> | <note tip> | ||
- | 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. | + | Sistemul este compus din mai multe module hardware si software care colaboreaza pentru a permite dozarea controlata a apei. Utilizatorul selecteaza cantitatea dorita folosind o telecomanda IR. Un senzor ultrasonic detecteaza prezenta unui pahar, iar un al doilea senzor verifica nivelul apei in rezervor. Daca oricare dintre conditii nu este indeplinita, utilizatorul este informat printr-un mesaj pe LCD si un semnal sonor. Daca totul este in regula, o pompa este activata pentru a doza cantitatea corespunzatoare. |
</note> | </note> | ||
+ | Schema bloc: | ||
+ | {{:pm:prj2025:avaduva:2.jpeg?200|}} | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Line 19: | Line 20: | ||
Lista componentelor: | Lista componentelor: | ||
* Arduino UNO | * Arduino UNO | ||
- | * Senzor ultrasonic HC-SR04 x2 (pentru nivel apă și detecție pahar) | + | * Senzor ultrasonic HC-SR04 x2 (pentru nivel apa si detectie pahar) |
* Display LCD 1602 cu I2C | * Display LCD 1602 cu I2C | ||
* Modul Releu 5V | * Modul Releu 5V | ||
- | * Pompă de apă submersibilă | + | * Pompa de apa submersibila |
* Receptor IR | * Receptor IR | ||
- | * Telecomandă IR standard | + | * Telecomanda IR standard |
* Buzzer pasiv | * Buzzer pasiv | ||
- | * Fire de conectare, breadboard și sursă de alimentare | + | * Fire de conectare, breadboard si sursa de alimentare |
- | Schema electrică și diagrame de semnal vor fi atașate mai jos. | + | Schema electrica si diagrame de semnal vor fi atasate mai jos. |
</note> | </note> | ||
+ | Schema electrica: | ||
+ | {{:pm:prj2025:avaduva:1.jpeg?200|}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
<note tip> | <note tip> | ||
- | 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. | + | Codul implementat pentru acest proiect controleaza intregul proces de dozare automata a apei, fiind scris pentru platforma **Arduino UNO**. Functioneaza cu o telecomanda IR pentru inputul utilizatorului, iar feedback-ul vizual este oferit de un ecran LCD 1602 cu interfata I2C. Sistemul foloseste doi senzori ultrasonic HC-SR04: unul pentru detectarea nivelului de apa din rezervor, iar celalalt pentru a verifica prezenta unui pahar. |
+ | |||
+ | Codul utilizeaza urmatoarele biblioteci externe: | ||
+ | - `Wire.h`: pentru comunicatia I2C; | ||
+ | - `LiquidCrystal_I2C.h`: pentru controlul afisajului LCD; | ||
+ | - `IRremote.h`: pentru interpretarea semnalelor de la telecomanda. | ||
+ | |||
+ | Display-ul LCD este configurat pe adresa I2C `0x27`, cu 16 coloane si 2 randuri. Receptorul IR este conectat la un pin digital definit ca `IRPIN`. Senzorii ultrasonic folosesc perechi de pini `TRIG`/`ECHO` pentru masuratori. Buzzer-ul este conectat la `BUZZER_PIN`, iar pompa este controlata printr-un releu conectat la `RELAY_PIN`. | ||
+ | |||
+ | Sunt definite coduri pentru butoanele de pe telecomanda: | ||
+ | - stanga pentru selectarea paharului mic, | ||
+ | - dreapta pentru selectarea paharului mare, | ||
+ | - OK pentru confirmarea selectiei si initierea procesului de dozare. | ||
+ | |||
+ | Durata de turnare este stabilita in functie de selectie, iar valorile pentru nivelul minim si maxim de apa, respectiv distanta maxima admisa pentru detectarea paharului, sunt configurate ca variabile constante. | ||
+ | |||
+ | Functia `setup()` initializeaza componentele hardware, configurand pinii si pornind comunicarea cu LCD-ul si receptorul IR. In bucla principala `loop()`, codul citeste valorile senzorilor si asteapta o comanda de la telecomanda. Daca este selectat un pahar, sistemul seteaza durata de turnare si actualizeaza afisajul. La apasarea butonului OK, se verifica daca exista suficienta apa si daca este detectat un pahar. Daca una dintre conditii nu este indeplinita, se declanseaza un semnal sonor si se afiseaza un mesaj de eroare. In caz contrar, pompa este activata pentru timpul setat. | ||
+ | |||
+ | Printre functiile implementate se numara: | ||
+ | - `beep()`: genereaza un semnal sonor prin buzzer; | ||
+ | - `pourWater()`: activeaza pompa pentru perioada configurata; | ||
+ | - `isWater()`: returneaza true daca nivelul apei este suficient; | ||
+ | - `isGlass()`: verifica prezenta unui pahar; | ||
+ | - `readWaterLevel()` si `readGlassDistance()`: returneaza valorile masurate de cei doi senzori ultrasonic. | ||
+ | |||
+ | Fluxul de utilizare este simplu: utilizatorul selecteaza marimea paharului, confirma cu OK, iar sistemul valideaza conditiile si actioneaza pompa daca totul este in regula. In caz contrar, utilizatorul este notificat corespunzator. | ||
</note> | </note> | ||
- | ===== Download ===== | + | |
+ | ===== Youtube & Download ===== | ||
<note warning> | <note warning> | ||
- | Fișierele proiectului (schemă, cod sursă, documentație) vor fi atașate în acest spațiu. | + | - Link video:https://youtu.be/Zt5q7LeTAOQ?si=VO7BnMt8LUti_yVh |
+ | - Download:{{:pm:prj2025:avaduva:dozator_apa.rar|}} | ||
</note> | </note> | ||
+ |