This shows you the differences between two versions of the page.
pm:prj2021:agrigore:2048 [2021/06/02 21:25] vlad.sandu0308 [Jurnal] |
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).\\ |
===== 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 45: | Line 45: | ||
* Draw.io - schema bloc | * Draw.io - schema bloc | ||
- | ==== Bibliotect folosite ==== | + | ==== Biblioteci ==== |
* pitches.h - note pentru buzzer | * pitches.h - note pentru buzzer | ||
* LiquidCrystal_I2C.h - ecran LCD | * LiquidCrystal_I2C.h - ecran LCD | ||
* DHT.h - temperatură + umiditate | * DHT.h - temperatură + umiditate | ||
- | ==== Funcții utilizate ==== | + | ==== Funcții ==== |
* lcd() - inițializarea ecranului LCD | * lcd() - inițializarea ecranului LCD | ||
- | - setCursor() | + | - setCursor() |
- | - print() | + | - print() |
* dht() - inițializarea modulului DHT22 | * dht() - inițializarea modulului DHT22 | ||
- | - readHumidity() | + | - readHumidity() |
- | - readTemperature() | + | - readTemperature() |
* rtc() - inițializarea modulului RTC | * rtc() - inițializarea modulului RTC | ||
- | - now() - preiau momentul în timp | + | - now() - preiau momentul în timp |
* map() - mapez valorile unui potențiometru între 17 și 40 | * map() - mapez valorile unui potențiometru între 17 și 40 | ||
* tone() - redarea sunetului pe buzzer | * tone() - redarea sunetului pe buzzer | ||
Line 66: | Line 66: | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
Demo: [[https://youtu.be/a0Q6aZpJA1w]] \\ | Demo: [[https://youtu.be/a0Q6aZpJA1w]] \\ | ||
- | Frontend:\\ | ||
- | {{:pm:prj2021:agrigore:whatsapp_image_2021-06-02_at_21.16.04.jpeg?500 |}} \\ | ||
- | Backend: \\ | ||
- | {{:pm:prj2021:agrigore:whatsapp_image_2021-06-02_at_21.16.27.jpeg?500 |}} \\ | ||
+ | {{:pm:prj2021:agrigore:whatsapp_image_2021-06-02_at_21.16.04.jpeg?500 |}} | ||
+ | |||
+ | {{:pm:prj2021:agrigore:whatsapp_image_2021-06-02_at_21.16.27.jpeg?500 |}} | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
Consider că acest proiect m-a ajutat să mă familiarizeze cu Arduino și perifericele necesare, într-un mod plăcut. | 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 | + | * 15 Mai : achiziționare piese |
- | 18 Mai : schemă electrică | + | * 18 Mai : schemă electrică |
- | 27 Mai : conectare modul DHT22 și ecran LCD | + | * 27 Mai : conectare modul DHT22 și ecran LCD |
- | 29 Mai : conectare modul RTC | + | * 29 Mai : conectare modul RTC |
- | 30 Mai : conectare LED-uri, buzzer și potențiometre + retușuri afișare pe LCD | + | * 30 Mai : conectare LED-uri, buzzer și potențiometre + retușuri afișare pe LCD |
- | 31 Mai : conectare motoraș | + | * 31 Mai : conectare motoraș |
- | 1 Iunie : finalizarea proietului | + | * 1 Iunie : finalizarea proietului |
- | 2 Iunie : finalizare wiki + demo | + | * 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> | ||