Table of Contents

FluidWatch

Introducere

Sistemele de măsurare a nivelului de lichid din rezervoare sunt instrumente esențiale într-o gamă largă de industrii, de la producția chimică și petrolieră până la agricultură și industria alimentară. Acestea sunt utilizate pentru monitorizarea stocurilor, prevenirea scurgerilor, asigurarea conformității și siguranței. Ele aduc beneficii semnificative în eficiență și siguranță.

Descriere generala

Sistemul are la baza un rezervor/recipient în care se găsește un lichid pană la o anumită înălțime. Cu ajutorul unui senzor ultrasonic plasat în partea superioară a recipientului vom putea determina distanța până la suprafața lichidului. Dacă știm această distanță și înălțimea rezervorului putem determina nivelul. Acest nivel va fi afișat sub forma de procente pe un display.

Pe lângă acesta vom măsura și temperatura lichidului, deoarece combustibilii spre exemple trebuia să ajungă la o temperatură optimă înainte de utilizare. Vom folosi o senzor sondă care va furniza temperatura.

Avem 3 led-uri de culori distincte (rosu, galben, verde) care vor determina gradul termic al lichidului, astfel încât la aprinderea led-ului verde știm că s-a atins temperatura optimă.

Ambele funționalități vor avea o implemetare bazată pe o plăcuță Arduino Uno.

Hardware Design

-Arduino Uno

-senzor sonda impermeabil DS18B20

-senzor ultrasonic HC-SR04

-display LCD 16×2

-led

-buton

-rezistori

-breadbord

-fire de conexiune

acaim_p1.jpeg acaim_p2.jpeg

Software Design

Biblioteci :

  1. OneWire.h, DallasTemperature : utilizate pentru citirea temperaturii, date obtinute cu ajutorul senzorului DS18B20
  2. LiquidCrystal_I2C : rol in afisarea pe display-ul cu I2C

Setup :

  1. setăm pinii destinați pentru echo și trigger (echo = in, trigger = out)
  2. inițializăm display-ul, setăm cursorul și afișăm mesajul de întâmpinare
  3. pinilor pentru led-uri li se vor atribui caracteristica de output

Loop :

  1. aflăm state-ul butonului
  2. dacă acest state este low și starea precedentă era high atunci butonul este apăsat
  3. în acest caz procurăm de la senzori datele necesare
  4. temperatura se va calcula și afișa în grade Celsius și Fahrenheit
  5. nivelul se va calcula ca diferența dintre înălțimea rezervorului și distanța determinată de senzorul ultrasonic
  6. va exista un delay de o secundă între afișări
  7. încadrăm temperatura în gradul termic potrivit și aprindem led-ul corespunzător
  8. la final resetăm display-ul și reafișăm mesajul de întâmpinare

Rezultate

Rezultatele au fost la început decente, dar am ajuns la o acuratețe mult mai buna a nivelului de lichid. Erorile inițiale au fost datorate precizării inexacte a înălțimii recipientului. Astfel, am golit recipientul și am încercat să ajung aproape de 0% în urma calculelor. Rezultatele finale sunt satisfăcătoare.

Jurnal

8 mai : primul set de piese a ajuns

10 mai : montarea senzorului de temperatura

14,15 mai : conectarea senzorului ultrasonic si a display-ului

18 mai : achizitionarea unui recipient de 3l cu capac detasabil

19 mai : al doilea set de piese a ajuns

20 mai : realizarea funtionalitatilor corelate cu display-ul

21 mai : adaugarea led-urilor

24 mai : adaugarea butonului

25 mai : finalizarea proiectului

Concluzii

Din punctul meu de vedere, acest proiect reprezinta poate cea mai clară dovadă a încadrării noastre într-o facultate de inginerie. Chiar dacă am acordat un timp considerabil proiectului, în fiecare zi în care am progresat am fost entuziasmat și mândru de ce realizam. Chiar dacă hardware-ul nu era un punct forte al meu, am învățat multe lucruri utile și folositoare.

Download