This shows you the differences between two versions of the page.
pm:prj2021:agrigore:2048 [2021/06/02 21:02] vlad.sandu0308 [Schemă electrică] |
pm:prj2021:agrigore:2048 [2021/06/03 14:11] (current) vlad.sandu0308 [Funcționalitate] |
||
---|---|---|---|
Line 5: | Line 5: | ||
[[vlad.sandu0308@stud.acs.upb.ro|Sandu Vlad]] | [[vlad.sandu0308@stud.acs.upb.ro|Sandu Vlad]] | ||
===== Introducere ===== | ===== Introducere ===== | ||
- | Acest proiect urmărește o implementare minimală a unui termostat. Acesta va afisa data si ora exacta (cu ajutorul unui RTC), temperatura si umiditatea (cu ajutorul modulului DHT22) pe un ecran LCD. De asemenea, voi implementa si un ventilator (motor DC + L293D). Voi implementa doua programe, de răcire și încălzire. Cu ajutorul a două potențiometre voi seta temperaturile de referință pentru cele 2 programe. Astfel, dacă temperatura din încăpere este mai mare decât temperatura de referință pentru modul de răcire, atunci pronesc ventilatorul pe acel mod. De asemenea, pentru confirmarea unei noi setari, voi semnaliza aceasta cu un sunet specific al unui buzzer, dar și cu câte un LED pentru fiecare program (roșu și albastru).\\ | + | Acest proiect urmărește o implementare minimală a unui termostat. Acesta va afisa data si ora exacta (cu ajutorul unui modul RTC), temperatura si umiditatea (cu ajutorul modulului DHT22) pe un ecran LCD. De asemenea, voi implementa si un ventilator (motor DC + L293D). Voi implementa doua programe, de răcire și încălzire. Cu ajutorul a două potențiometre voi seta temperaturile de referință pentru cele 2 programe. Astfel, dacă temperatura din încăpere este mai mare decât temperatura de referință pentru modul de răcire sau mai mică decât similiara pentru modul de încălzire. De asemenea, pentru confirmarea unei noi setari, voi semnaliza aceasta cu un sunet specific al unui buzzer, dar și cu câte un LED pentru fiecare program (roșu și albastru).\\ |
- | Scopul proiectului este de familiarizare cu Arduino și perifericele necesare, prin realizarea unui termostat. | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | ==== Schema bloc: ==== | + | ==== Schema bloc ==== |
{{:pm:prj2021:agrigore:shcema_bloc_vs.png?700}} | {{:pm:prj2021:agrigore:shcema_bloc_vs.png?700}} | ||
==== Funcționalitate ==== | ==== Funcționalitate ==== | ||
Line 20: | Line 20: | ||
Pentru ventilator voi utiliza un motoras DC simplu, pe care o sa il folosesc cu ajutorul unui driver L293D. | Pentru ventilator voi utiliza un motoras DC simplu, pe care o sa il folosesc cu ajutorul unui driver L293D. | ||
In momentul pornirii, acesta va invarti o elice ca sa simuleze procesul de ventilator. De asemenea, pentru semnalizarea | In momentul pornirii, acesta va invarti o elice ca sa simuleze procesul de ventilator. De asemenea, pentru semnalizarea | ||
- | momentul de start al ventilatorului am 2 LED-uri (pentru fiecare program) si un buzzer care produce un sunet specific. | + | momentul de start al ventilatorului am 2 LED-uri (albastru pentru programul de răcire și roșu pentru programul de încălzire), dar și un buzzer care produce un sunet specific (GoT related :D). |
===== Hardware Design ===== | ===== Hardware Design ===== | ||
==== Listă de piese ==== | ==== Listă de piese ==== | ||
Line 38: | Line 38: | ||
==== Schemă electrică ==== | ==== Schemă electrică ==== | ||
{{:pm:prj2021:agrigore:schema_electrica_vs.png?700 |}} | {{:pm:prj2021:agrigore:schema_electrica_vs.png?700 |}} | ||
+ | |||
===== Software Design ===== | ===== Software Design ===== | ||
+ | ==== Mediul de dezvoltare ==== | ||
+ | * Arduino IDE - cod | ||
+ | * Fritzing - schema electrică | ||
+ | * Draw.io - schema bloc | ||
+ | ==== Biblioteci ==== | ||
+ | * pitches.h - note pentru buzzer | ||
+ | * LiquidCrystal_I2C.h - ecran LCD | ||
+ | * DHT.h - temperatură + umiditate | ||
+ | ==== Funcții ==== | ||
+ | * lcd() - inițializarea ecranului LCD | ||
+ | - setCursor() | ||
+ | - print() | ||
+ | * dht() - inițializarea modulului DHT22 | ||
+ | - readHumidity() | ||
+ | - readTemperature() | ||
+ | * rtc() - inițializarea modulului RTC | ||
+ | - now() - preiau momentul în timp | ||
+ | * map() - mapez valorile unui potențiometru între 17 și 40 | ||
+ | * tone() - redarea sunetului pe buzzer | ||
+ | |||
+ | <note>Notă: Toată logica programului se află funcția loop(), în timp ce în setup() doar inițializez toate modulele și pinii</note> | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
+ | Demo: [[https://youtu.be/a0Q6aZpJA1w]] \\ | ||
- | ===== Concluzii ===== | + | {{:pm:prj2021:agrigore:whatsapp_image_2021-06-02_at_21.16.04.jpeg?500 |}} |
- | + | ||
- | ===== Download ===== | + | |
+ | {{:pm:prj2021:agrigore:whatsapp_image_2021-06-02_at_21.16.27.jpeg?500 |}} | ||
+ | ===== Concluzii ===== | ||
+ | Consider că acest proiect m-a ajutat să mă familiarizeze cu Arduino și perifericele necesare, într-un mod plăcut. | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
- | 24 Aprilie : alegerea temei proiectului | + | * 24 Aprilie : alegerea temei proiectului |
- | + | * 10 Mai : finalizare schema bloc, introducere si lista de piese | |
- | 10 Mai : finalizare schema bloc, introducere si lista de piese | + | * 15 Mai : achiziționare piese |
+ | * 18 Mai : schemă electrică | ||
+ | * 27 Mai : conectare modul DHT22 și ecran LCD | ||
+ | * 29 Mai : conectare modul RTC | ||
+ | * 30 Mai : conectare LED-uri, buzzer și potențiometre + retușuri afișare pe LCD | ||
+ | * 31 Mai : conectare motoraș | ||
+ | * 1 Iunie : finalizarea proietului | ||
+ | * 2 Iunie : finalizare wiki + demo | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
+ | * {{:pm:prj2021:agrigore:plusivo_nano_starter_kit_guide.pdf|}} | ||
+ | * [[https://ocw.cs.pub.ro/courses/pm]] | ||
+ | * [[https://create.arduino.cc/projecthub/woutvdr/arduino-weather-station-6d5ca2?ref=tag&ref_id=humidity&offset=3]] | ||
+ | * [[https://github.com/AraanBranco/arduino/blob/master/music/Game-of-thrones-song.txt]] | ||
+ | * [[https://lastminuteengineers.com/i2c-lcd-arduino-tutorial/]] | ||
+ | * [[https://arduino.stackexchange.com/questions/26357/change-max-and-min-read-value-of-potentiometer]] | ||
+ | |||
+ | |||
+ | Cod: {{:pm:prj2021:agrigore:termostat.zip|}} \\ | ||
Documentația: <html><a class="media mediafile mf_pdf" href="?do=export_pdf">PDF</a></html> | Documentația: <html><a class="media mediafile mf_pdf" href="?do=export_pdf">PDF</a></html> | ||