Monitorizeaza nivelul apei cu 2 senzori XKC-Y25 fara contact si Arduino

Monitorizeaza nivelul apei cu 2 senzori XKC-Y25 fara contact si Arduino
Salutare, sunt Oana de la Bitmi.ro si astazi iti arat cum am construit un sistem simplu si eficient de monitorizare a nivelului apei intr-un recipient, folosind doi senzori de nivel lichid XKC-Y25 fara contact, un Arduino UNO si un ecran LCD 16x2 cu interfata I2C. Proiectul este perfect pentru situatiile in care vrei sa afli cand nivelul lichidului este prea scazut sau cand recipientul este plin, fara sa folosesti senzori care intra direct in lichid.
 

Ce sunt senzorii de nivel lichid fara contact XKC-Y25

Daca ai nevoie sa detectezi nivelul unui lichid fara sa introduci vreun dispozitiv in interiorul recipientului, senzorul de nivel lichid XKC-Y25 este o alegere excelenta. Acest senzor foloseste tehnologia capacitativa pentru a detecta prezenta lichidului prin peretele unui recipient nemetalic. Mai exact, senzorul emite un camp electric slab si masoara modificarile de capacitate care apar cand lichidul se apropie de zona activa. Diferentele dintre dielectricul peretelui si cel al lichidului sunt suficiente pentru ca senzorul sa „simta” daca in acel punct se afla sau nu lichid. Daca da, semnalul de iesire (OUT) devine activ.

Ce mi-a placut cel mai mult este ca nu trebuie sa calibrezi nimic – senzorul functioneaza direct din cutie. Pur si simplu il alimentezi cu 5V si conectezi iesirea la un pin digital pe Arduino. Cand lichidul se afla in dreptul senzorului, iesirea devine activa (nivel HIGH), iar tu poti decide ce vrei sa faci cu aceasta informatie – afisaj, LED, alarma sau control automat.



 

De ce am ales un ecran LCD cu interfata I2C in acest proiect

In proiectele cu microcontrolere, gestionarea eficienta a pinilor GPIO este esentiala, mai ales atunci cand folosesti mai multi senzori si module. Un ecran LCD standard 16x2 necesita cel putin 6 pini digitali daca este conectat in mod paralel (RS, E, D4–D7, plus GND si VCC). Acest lucru poate limita extensibilitatea sistemului sau poate impune utilizarea unui microcontroler cu mai multi pini disponibili.

Pentru a evita acest lucru, am folosit un modul LCD 1602 cu interfata I2C (bazata pe integratul PCF8574). Acesta permite controlul afisajului prin doar doua linii de comunicatie: SDA (Serial Data) si SCL (Serial Clock), care pot fi partajate cu alte dispozitive I2C. Astfel, am redus semnificativ numarul de pini ocupati pe Arduino UNO, eliberand resurse pentru alte functii ale proiectului, cum ar fi citirea starii senzorilor de nivel sau integrarea unui sistem de alarma.

Un alt avantaj important al interfetei I2C este usurinta in utilizare. Cu ajutorul librariei LiquidCrystal_I2C.h, comunicarea cu ecranul este simplificata: poti initializa rapid afisajul, pozitiona cursorul pe ecran si afisa mesaje informative. In cazul acestui proiect, folosesc LCD-ul pentru a afisa starea nivelului lichidului in timp real, cu trei mesaje distincte: „Nivel scazut”, „Nivel OK” si „Rezervor plin”, in functie de semnalele primite de la cei doi senzori XKC-Y25.

Alegerea unei interfete I2C nu doar optimizeaza conectica, ci incurajeaza si bune practici in designul electronic, mai ales atunci cand se lucreaza cu microcontrolere cu resurse limitate. Este o solutie robusta si scalabila, potrivita atat pentru prototipuri educationale, cat si pentru proiecte embedded mai complexe.

Componente necesare

1 x Placa de dezvoltare compatibila Arduino Uno R3
2 x Senzor nivel lichid XKC-Y25, fara contact
1 x Ecran LCD1602 cu modul I2C/IIC
1 x Breadboard 400 puncte
4 fire tata - mama 
8 fire tata - tata

Schema de conectare

Cod sursa

Dupa ce ai realizat circuitul, e timpul sa introduci codul sursa, pentru a descarca codul sursa clic AICI.

Conecteaza placa de dezvoltare compatibila Arduino Uno la computer folosind portul USB. Apoi, mergi la meniul Tools si selecteaza tipul de placa si portul serial pe care il folosesti (optiunile Board si Port). 

Pentru a descarca biblioteca LiquidCrystal_I2C, clic AICI. Acum trebuie sa adaugi biblioteca in mediul de dezvoltare Arduino IDE, deschide Arduino IDE si din meniul Sketch acceseaza Include Library biblioteca si apoi selecteaza Add .zip Library. Aici va trebui sa gasesti si sa selectezi fisierul .zip al bibliotecii LiquidCrystal_I2C. Dupa ce ai deschis fisierul .zip si cand procesul de instalare s-a terminat cu succes, va aparea un mesaj in partea de jos a ferestre care iti va confirma ca fisierul a fost adaugat in biblioteca.   

Pentru a incarca codul pe placa, apasa butonul Upload (simbolul cu sageata spre dreapta). In partea de jos a ferestrei, vei putea urmari mesajele de stare: Compiling Sketch, Uploading si Done. Odata ce incarcarea s-a finalizat cu succes, placa Arduino va incepe sa ruleze codul pe care l-ai incarcat.

 
Cum functioneaza proiectul


In proiectul meu, am folosit doi senzori: unul lipit aproape de baza recipientului pentru a detecta cand nivelul este scazut, si unul in partea superioara pentru a sti cand s-a umplut. Datorita iesirii digitale, integrarea cu Arduino este extrem de simpla. Nu trebuie sa folosesti conversie analogica sau librarii complicate, doar citesti starea pinului si reactionezi in functie de ea. Arduino citeste starea fiecarui senzor si afiseaza pe un ecran LCD unul dintre urmatoarele mesaje:

  • „Nivel scazut” – cand senzorul de jos nu detecteaza apa

  • „Nivel OK” – cand senzorul de jos detecteaza lichid, dar cel de sus nu

  • „Rezervor plin” – cand ambii senzori detecteaza apa

Este o metoda eleganta de a monitoriza vizual nivelul apei in timp real, fara sa fie nevoie de piese in contact direct cu lichidul.

Daca ai intrebari sau sugestii, scrie-mi la electronica@bitmi.ro. Trimite-mi poze sau videoclipuri cu proiectele tale - sunt curioasa sa vad ce ai realizat!

Compara produse

Trebuie sa mai adaugi cel putin un produs pentru a compara produse.

A fost adaugat la favorite!

A fost sters din favorite!