This shows you the differences between two versions of the page.
pm:prj2021:dbrigalda:liquid_temperature_alert [2021/04/25 12:21] adumbrava [Nume proiect] |
pm:prj2021:dbrigalda:liquid_temperature_alert [2021/06/02 23:06] (current) adumbrava [Rezultate Obţinute] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Liquid Temperature Alert ====== | ====== Liquid Temperature Alert ====== | ||
===== Introducere ===== | ===== 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. Cat timp temperatura nu este | + | 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 un LED RGB care va fi rosu si un buzzer care canta, iar atunci cand temperatura atinge valoarea dorita, LED-ul va | + | 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:). |
- | deveni verde si buzzer-ul se va opri. De asemenea, am un ecran LCD pe care este afisata valoarea curenta a temperaturii din lichid. | + | |
===== Descriere generală ===== | ===== 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: | ||
+ | {{:pm:prj2021:dbrigalda:screenshot_from_2021-05-27_18-06-28.png?300|}} | ||
+ | ===== Hardware Design ===== | ||
* **Lista de Componente**: | * **Lista de Componente**: | ||
- Arduino UNO; | - Arduino UNO; | ||
Line 12: | Line 16: | ||
- Ecran LCD; | - Ecran LCD; | ||
- LED RGB; | - LED RGB; | ||
- | - 2 butoane; | + | - 1 buton; |
- Buzzer piezoelectric activ; | - Buzzer piezoelectric activ; | ||
- Modul Joystick Biaxial cu 5 pini; | - Modul Joystick Biaxial cu 5 pini; | ||
- | - Rezistente. | + | - 5 rezistente. |
- | ===== Hardware Design ===== | + | |
- | <note tip> | + | |
- | Aici puneţi tot ce ţine de hardware design: | + | Schema electrica: |
- | * listă de piese | + | |
- | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | {{:pm:prj2021:dbrigalda:screenshot_from_2021-06-02_01-34-43.png?300|}} |
- | * diagrame de semnal | + | |
- | * rezultatele simulării | + | |
- | </note> | + | |
===== Software Design ===== | ===== Software Design ===== | ||
- | <note tip> | + | 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. |
- | Descrierea codului aplicaţiei (firmware): | + | |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | In setup, am setat pinii de input si output corespunzatori componentelor folosite si am initializat LCD-ul si senzorul de temperatura. |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | {{:pm:prj2021:dbrigalda:first_picture_liquid_temperature_alert.png?300|}} |
- | * (etapa 3) surse şi funcţii implementate | + | |
- | </note> | + | 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. | ||
+ | |||
+ | {{:pm:prj2021:dbrigalda:second_picture_liquid_temperature_alert.png?300|}} | ||
+ | |||
+ | {{:pm:prj2021:dbrigalda:screenshot_from_2021-06-01_13-34-26.png?300|}} | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | 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. |
- | </note> | + | |
+ | 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: | ||
+ | |||
+ | {{:pm:prj2021:dbrigalda:whatsapp_image_2021-06-02_at_15.12.56_1_.jpeg?300|}} | ||
+ | |||
+ | Senzorul de temperatura DS18B20: | ||
+ | |||
+ | {{:pm:prj2021:dbrigalda:whatsapp_image_2021-06-02_at_15.12.57_1_.jpeg?300|}} | ||
+ | |||
+ | Joystick-ul: | ||
+ | |||
+ | {{:pm:prj2021:dbrigalda:whatsapp_image_2021-06-02_at_15.12.56.jpeg?300|}} | ||
+ | |||
+ | LED-ul si Buzzer-ul: | ||
+ | |||
+ | {{:pm:prj2021:dbrigalda:whatsapp_image_2021-06-02_at_15.12.57.jpeg?300|}} | ||
+ | |||
+ | Link prezentarea proiectului youtube: | ||
+ | |||
+ | [[https://www.youtube.com/watch?v=GezUaQN6GBk|{{:pm:prj2021:dbrigalda:whatsapp_image_2021-06-02_at_23.02.56.jpeg?300|}}]] | ||
===== Concluzii ===== | ===== 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 ===== | ===== Download ===== | ||
- | <note warning> | + | |
- | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). | + | Arhiva proiect: |
- | Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:prj20??:c?:nume_student** (dacă este cazul). **Exemplu:** Dumitru Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**. | + | |
- | </note> | + | {{:pm:prj2021:dbrigalda:dumbrava_alexandru_331cc_liquid_temperature_alert.zip|}} |
- | ===== Jurnal ===== | + | |
- | <note tip> | + | |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | |
- | </note> | + | |
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | Documentația în format <html><a class="media mediafile mf_pdf" href="?do=export_pdf">PDF</a></html> |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | |
- | </note> | + | https://www.youtube.com/watch?v=q9YC_GVHy5A&t=316s |
- | <note tip>Export în PDF: Adăugați următorul parametru la URL-ul paginii astfel: <URL>?do=export_pdf</note> | + | |
+ | https://www.youtube.com/watch?v=lIpgGru2Wv0&t=38s | ||
+ | |||
+ | https://www.youtube.com/watch?v=MlDi0vO9Evg&t=35s | ||
+ | |||
+ | https://ocw.cs.pub.ro/courses/pm/prj2021/dbrigalda/liquid_temperature_alert |