This shows you the differences between two versions of the page.
pm:prj2025:avaduva:andrei.nedelcu2002 [2025/05/18 20:51] 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 interfață I2C. Sistemul folosește doi senzori ultrasonic HC-SR04: unul pentru detectarea nivelului de apă din rezervor, iar celălalt pentru a verifica prezența unui pahar. | + | 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 utilizează următoarele biblioteci externe: | + | Codul utilizeaza urmatoarele biblioteci externe: |
- | - `Wire.h`: pentru comunicația I2C; | + | - `Wire.h`: pentru comunicatia I2C; |
- | - `LiquidCrystal_I2C.h`: pentru controlul afișajului LCD; | + | - `LiquidCrystal_I2C.h`: pentru controlul afisajului LCD; |
- | - `IRremote.h`: pentru interpretarea semnalelor de la telecomandă. | + | - `IRremote.h`: pentru interpretarea semnalelor de la telecomanda. |
- | Display-ul LCD este configurat pe adresa I2C `0x27`, cu 16 coloane și 2 rânduri. Receptorul IR este conectat la un pin digital definit ca `IRPIN`. Senzorii ultrasonic folosesc perechi de pini `TRIG`/`ECHO` pentru măsurători. Buzzer-ul este conectat la `BUZZER_PIN`, iar pompa este controlată printr-un releu conectat la `RELAY_PIN`. | + | 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 telecomandă: | + | Sunt definite coduri pentru butoanele de pe telecomanda: |
- | - stânga pentru selectarea paharului mic, | + | - stanga pentru selectarea paharului mic, |
- dreapta pentru selectarea paharului mare, | - dreapta pentru selectarea paharului mare, | ||
- | - OK pentru confirmarea selecției și inițierea procesului de dozare. | + | - OK pentru confirmarea selectiei si initierea procesului de dozare. |
- | Durata de turnare este stabilită în funcție de selecție, iar valorile pentru nivelul minim și maxim de apă, respectiv distanța maximă admisă pentru detectarea paharului, sunt configurate ca variabile constante. | + | 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. |
- | Funcția `setup()` inițializează componentele hardware, configurând pinii și pornind comunicarea cu LCD-ul și receptorul IR. În bucla principală `loop()`, codul citește valorile senzorilor și așteaptă o comandă de la telecomandă. Dacă este selectat un pahar, sistemul setează durata de turnare și actualizează afișajul. La apăsarea butonului OK, se verifică dacă există suficientă apă și dacă este detectat un pahar. Dacă una dintre condiții nu este îndeplinită, se declanșează un semnal sonor și se afișează un mesaj de eroare. În caz contrar, pompa este activată pentru timpul setat. | + | 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 funcțiile implementate se numără: | + | Printre functiile implementate se numara: |
- | - `beep()`: generează un semnal sonor prin buzzer; | + | - `beep()`: genereaza un semnal sonor prin buzzer; |
- | - `pourWater()`: activează pompa pentru perioada configurată; | + | - `pourWater()`: activeaza pompa pentru perioada configurata; |
- | - `isWater()`: returnează true dacă nivelul apei este suficient; | + | - `isWater()`: returneaza true daca nivelul apei este suficient; |
- | - `isGlass()`: verifică prezența unui pahar; | + | - `isGlass()`: verifica prezenta unui pahar; |
- | - `readWaterLevel()` și `readGlassDistance()`: returnează valorile măsurate de cei doi senzori ultrasonic. | + | - `readWaterLevel()` si `readGlassDistance()`: returneaza valorile masurate de cei doi senzori ultrasonic. |
- | Fluxul de utilizare este simplu: utilizatorul selectează mărimea paharului, confirmă cu OK, iar sistemul validează condițiile și acționează pompa dacă totul este în regulă. În caz contrar, utilizatorul este notificat corespunzător. | + | 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> | ||
+ |