Liquid Temperature Alert

Introducere

Proiectul isi propune sa masoare temperatura dintr-un lichid prin intermediul unui senzor rezistent la apa. Prin intermediul unui joystick se seteaza temperatura dorita si apasand pe un buton incepe masurarea temperaturii din lichid. Daca butonul este pe OFF, LED-ul are culoare albastra si buzzer-ul nu canta indiferent de temperatura. Daca butonul este pe ON, cat timp temperatura nu este cea dorita, exista LED-ul RGB va fi rosu si buzzer-ul canta, iar atunci cand temperatura este intre temperatura dorita -0.5 grade si temperatura dorita + 0.5 grade, LED-ul va deveni verde si buzzer-ul se va opri. De asemenea, am un ecran LCD pe care sunt afisate permanent temperatura dorita in grade celsius(Want Temp:) si temperatura actuala a lichidului(Liq Temp:).

Descriere generală

Placa de dezvoltare Arduino UNO R3 oferă suport complet atât pentru manipularea componentelor fizice cat si pentru realizarea algoritmului de control ce sta in spatele funcționarii componentelor hardware. Pe ecranul LCD va fi afisata permanent temperatura din lichid, temperatura ce va fi masurata prin intermediul senzorului rezistent la apa si temperatura dorita. Temperatura dorita se poate seta prin intermediul joystick-ului(creste sau scade din 0.5 grade in 0.5 grade). Daca apasam pe butonul este pe ON, atunci tinem cont de temperatura dorita si LED-ul este sau rosu sau verde, in functie de valoarea temperaturii actuale in raport cu temperatura dorita, iar buzzer-ul canta daca LED-ul este rosu pentru a ne alerta ca temperatura nu este in parametrii si nu scoate nici un sunet daca LED-ul este verde, semn ca temperatura este in parametrii buni. Daca butonul este pe OFF, putem vedea in continuare cele 2 temperaturi pe ecran, insa LED-ul este permanent albastru, iar buzzer-ul nu canta niciodata, adica nu se tine cont de temperatura dorita.

Diagrama bloc:

Hardware Design

  • Lista de Componente:
    1. Arduino UNO;
    2. BreadBoard;
    3. Fire de legatura;
    4. Senzor de temperatura ds18b20;
    5. Ecran LCD;
    6. LED RGB;
    7. 1 buton;
    8. Buzzer piezoelectric activ;
    9. Modul Joystick Biaxial cu 5 pini;
    10. 5 rezistente.

Schema electrica:

Software Design

Pentru a putea folosi senzorul de temperatura rezistent la apa ds18b20 si afisajul LCD cu modul I2C, in mediul de dezvoltare Arduino IDE a fost nevoie si de importarea bibliotecilor DallasTemperature.h, Wire.h, OneWire.h si LiquidCrystal_I2C.h.

In setup, am setat pinii de input si output corespunzatori componentelor folosite si am initializat LCD-ul si senzorul de temperatura.

Variabila buttonValue citeste valoarea butonului, 0 sau 1 si variabila buttonSwitch imi zice daca butonul este pe ON sau pe OFF(la inceput este pe OFF, dupa care daca apasam pe buton o data e pe ON si tot asa). Am folosit aceasta variabila pentru a nu fi nevoie sa tin apasat butonul incontinuu cand e pe ON. Variabila Xval reprezinta valoare joystick-ului de pe axa OX si in functie de aceasta maresc sau micsorez temperatura dorita din lichid reprezentata de variabila wantedTemperature. Apeland sensors.getTempCByIndex(0), citim temperatura in grade celsius de la senzorul de temperatura, iar functia RGB_color da culoarea LED-ului(face digitalWrite cu valorile respective pe pinii LED-ului). Apeland tone si noTone facem buzzer-ul sa cante sau nu, in functie de temperatura si de buton (daca e pe ON sau pe OFF). La final, cu lcd.print() printam temperatura dorita si temperatura curenta in grade celsius pe ecranul LCD.

Rezultate Obţinute

Proiectul a fost implementat in totalitate si functioneaza cum ar trebui. Temperatura dorita si temperatura din lichid este afisata constant pe LCD, alertarea utilizatorului functioneaza bine si temperatura dorita poate fi marita si micsorata cu succes.

Cateodata, din cauza delay-ului trebuie apasat mai mult pe butonul de ON/OFF pana sa porneasca/sa se opreasca alertarea utilizatorului, iar senzorul de temperatura rezistent la apa nu este foarte precis.

Ecranul LCD cu modul I2C:

Senzorul de temperatura DS18B20:

Joystick-ul:

LED-ul si Buzzer-ul:

Link prezentarea proiectului youtube:

Concluzii

Proiectul Liquid Temperature Alert este un proiect interesant si bun pentru a invata cum functioneaza Arduino. De asemenea are utilitate practica mare, fiind bun pentru masurarea temperaturii apei din piscina de exemplu sau pentru masurarea temperaturii laptelui la bebelusi, unde temperatura trebuie sa fie in anumiti parametrii.

Pentru realizarea proiectului s-au investit aproximativ 150 de lei plus mai multe ore de munca efectiva si documentatie, dar eu cred ca a meritat si a fost o experienta frumoasa.

Download

Bibliografie/Resurse

pm/prj2021/dbrigalda/liquid_temperature_alert.txt · Last modified: 2021/06/02 23:06 by adumbrava
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