This shows you the differences between two versions of the page.
pm:prj2021:apredescu:ventilator_inteligent [2021/05/02 21:19] tudor.calafeteanu [Descriere generală] |
pm:prj2021:apredescu:ventilator_inteligent [2021/05/30 18:44] (current) tudor.calafeteanu |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Ventilator inteligent ====== | ====== Ventilator inteligent ====== | ||
+ | <note tip> | ||
* Autor: Calafeteanu Tudor-Alexandru | * Autor: Calafeteanu Tudor-Alexandru | ||
* Grupa: 336CC | * Grupa: 336CC | ||
+ | </note> | ||
+ | <note important>Prezentare video : https://youtu.be/zDpJHCvYeNk</note> | ||
===== Introducere ===== | ===== Introducere ===== | ||
- | * Ventilatorul inteligent are viteza de rotatie dependenta de temperatura camerei, marindu-si viteza atunci cand detecteaza miscare pe o raza de 3m. Se calculeaza o noua temperatura medie la un interval de timp prestabilit. Logul temperaturilor medii este salvat pe un card microSD, de care apoi, pus in laptop, se foloseste un program care genereaza un grafic. | + | * Ventilatorul inteligent are viteza de rotație dependentă de temperatura camerei, fiind activ doar atunci când senzorul de proximitate detectează mișcare. Senzorul de proximitate poate fi montat după bunul plac, însă, din motive ergonomice, în prezentarea video a proiectului, senzorul a fost fixat pe breadboard. Temperaturile sunt calculate la un interval de timp prestabilit, fiind salvate pe un card microSD, realizând, astfel, un data logger. Datele sunt apoi introduse în Excel, care generează un grafic ce surprinde evoluția temperaturii camerei în timp. |
- | * Scopul ventilatorului inteligent, fata de unul normal, este sa isi schimbe singur viteza de rotatie in functie de temperatura si detectarea miscarii. | + | * Scopul ventilatorului inteligent, față de unul normal, este să își schimbe singur viteza de rotație în funcție de temperatura camerei și să funcționeze doar atunci când detectează mișcare, pentru a eficientiza consumul de energie electrică. |
- | * Am plecat de la ideea de a crea o dependenta intre procesul de ventilatie si temperatura camerei. | + | * Am plecat de la ideea de a crea o dependență între procesul de ventilație și temperatura camerei. |
- | * Utilitatea lui consta in ventilatia inteligenta fata de un ventilator normal. | + | * Utilitatea lui derivă din diferențierea sa față de un ventilator clasic de birou. |
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | {{:pm:prj2021:apredescu:ventilator_inteligent_diagrama_block.png?400|}} | ||
+ | {{:pm:prj2021:apredescu:ventilator_inteligent_diagrama_block.png?450|}} | ||
+ | |||
+ | * Senzorul de temperatură, precum și cel de proximitate, transferă date către Arduino. | ||
+ | * Arduino controlează motorul prin PWM, folosind un driver de control al turației motorului. Controlul turației se realizează având în vedere datele primite de la cei doi senzori. | ||
+ | * Servomotorul este controlat direct de Arduino. | ||
+ | * Datele recepționate de Arduino sunt stocate într-un fișier aflat pe cardul SD, care se comportă ca un data logger pentru senzorul de temperatură. | ||
+ | * Cardul este citit de laptop, apoi se generează un grafic ce evidențiază fluctuația temperaturii în timp. | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
+ | * **Listă de componente:** | ||
- Arduino UNO | - Arduino UNO | ||
- Breadboard | - Breadboard | ||
- | - Senzor de temperatura | + | - Senzor de temperatură DHT11 |
- Motor cu elice | - Motor cu elice | ||
- | - Servomotor | + | - Servomotor |
- | - Card microSD | + | - Card microSD + adaptor |
- | - Adaptor card microSD | + | - Senzor PIR HC-SR505 |
- | - Senzor PIR | + | - Modul sursă de alimentare + alimentator |
- | - Modul sursa de alimentare | + | - Driver (1 diodă, 1 rezistență 1kOhm, 1 tranzistor NPN) |
- | - Alimentator | + | |
- | - Diode | + | |
- | - Rezistente | + | |
- Fire | - Fire | ||
- | - Tranzistor | + | |
+ | * **Schema electrică** | ||
+ | {{:pm:prj2021:apredescu:ventilator_inteligent_bb.png?800|}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | <note tip>Mediul de dezvoltare folosit este Arduino IDE.</note> | ||
+ | <note tip>Bibliotecile externe folosite au fost: | ||
+ | - **SPI.h.h** (pentru adaptorul microSD) | ||
+ | - **Servo.h** (pentru Servomotor) | ||
+ | - **SD.h** (pentru cardul microSD) | ||
+ | - **DHT.h** (pentru modulul de temperatură DHT11) | ||
+ | </note> | ||
+ | * Detecția mișcării se face o dată după fiecare ciclu de mișcare a servomotorului. Un ciclu reprezintă trecerea servomotorului din poziția 0, la poziția 180, apoi din nou la poziția 0 (1 ciclu = 0° -> 180° -> 0°). Dacă senzorul PIR nu detectează mișcare (output 0) și starea ventilatorului este //running// (flag-ul stopMoving este setat pe 0), se incrementează un counter (counterMovement). Dacă acest counter ajunge la valoarea 3, atunci ventilatorul își schimbă starea din //running// în //blocked//, revenind la starea //running// abia când detectează, din nou, mișcare. De fiecare dată când senzorul detectează mișcare, iar ventilatorul este activ, counter-ul se resetează. | ||
+ | * Mișcarea motorului DC se face prin PWM, mapând range-ul de temperaturi care poate fi detectat de senzorul de temperatură (0-50), la range-ul de viteze (100 - 255). Astfel, elicea se va învârti cu o viteză direct proporțională cu temperatura camerei. | ||
+ | * După fiecare ciclu de mișcare a servomotorului, se scrie valoarea temperaturii detectate, împreună cu timpul trecut, în secunde, de la pornirea ventilatorului, într-un fisier //logger.txt//. Punctele rezultate sunt apoi trecute în Excel pentru generarea graficului. | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
+ | <note important>**Poză proiect de ansamblu:**</note> | ||
+ | {{:pm:prj2021:apredescu:ventilator_inteligent_poza.png?700|}} | ||
+ | <note important>**Exemplu rezultat generare grafic din data logger, folosind Excel:**</note> | ||
+ | {{:pm:prj2021:apredescu:ventilator_inteligent_grafic.jpeg?700|}} | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | A fost prima oară când am lucrat cu hardware. Am întâmpinat unele dificultăți în conectarea unelor componente pe breadboard, însă au fost rezolvate rapid. Consider o lucrare foarte interesantă pentru un student care nu a mai avut tangențe cu proiecte în Arduino, am învățat lucruri noi și sunt mândru de rezultatul final. | ||
===== Download ===== | ===== Download ===== | ||
- | Documentația în format <html><a class="media mediafile mf_pdf" href="?do=export_pdf">PDF</a></html> | + | <note tip>Sursa: {{:pm:prj2021:apredescu:ventilatorinteligent.rar|}}</note> |
+ | <note tip>Documentația în format <html><a class="media mediafile mf_pdf" href="?do=export_pdf">PDF</a></html> </note> | ||
- | ===== Jurnal ===== | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
+ | * https://www.instructables.com/Controlling-a-Motor-an-NPN-Transistor-on-the-Ardui/ | ||
+ | * https://www.youtube.com/watch?v=-AvF2TsB2GI | ||
+ | * https://youtu.be/8TnrozK_384 | ||
+ | * https://youtu.be/5Dp-XatLySM | ||
+ | * https://www.arduino.cc/reference/en/language/functions/math/map/ |