This is an old revision of the document!
Ventilator inteligent
Introducere
Ventilatorul inteligent are viteza de rotatie dependenta de temperatura camerei, fiind activ doar atunci cand senzorul de proximitate detecteaza miscare. Senzorul de proximitate poate fi montat dupa bunul plac, insa, din motive ergonomice, in 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, realizand, astfel, un data logger. Datele sunt apoi introduse in Excel, care genereaza un grafic ce surprinde evolutia temperaturii camerei in timp.
Scopul ventilatorului inteligent, fata de unul normal, este sa isi schimbe singur viteza de rotatie in functie de temperatura camerei si sa functioneze doar atunci cand detecteaza miscare, pentru a eficientiza consumul de energie electrica.
Am plecat de la ideea de a crea o dependenta intre procesul de ventilatie si temperatura camerei.
Utilitatea lui deriva din diferentierea sa fata de un ventilator clasic de birou.
Descriere generală
Senzorul de temperatura, precum si cel de proximitate, transfera date catre Arduino.
Arduino controleaza motorul prin PWM, folosind un driver de control al turatiei motorului. Controlul turatiei se realizeaza avand in vedere datele primite de la cei doi senzori.
Servomotorul este controlat direct de Arduino.
Datele receptionate de Arduino sunt stocate intr-un card SD care se comporta ca un data logger pentru senzorul de temperatura.
Cardul este citit de laptop, apoi se genereaza un grafic ce evidentiaza fluctuatia temperaturii in timp.
Hardware Design
Arduino UNO
Breadboard
Senzor de temperatura DHT11
Motor cu elice
Servomotor
Card microSD + adaptor
Senzor PIR HC-SR505
Modul sursa de alimentare + alimentator
Driver (1 dioda, 1 rezistenta 1kOhm, 1 tranzistor NPN)
Fire
Software Design
Mediul de dezvoltare folosit este Arduino IDE.
Bibliotecile externe folosite au fost:
SPI.h.h (pentru sdaptorul microSD)
Servo.h (pentru Servomotor)
SD.h (pentru cardul microSD)
DHT.h (pentru modulul de temperatura DHT11)
Detectia miscarii se face o data dupa fiecare ciclu de miscare a servomotorului. Un ciclu il reprezinta trecerea servomotorului din pozitia 0, la pozitia 180, apoi din nou la pozitia 0 (1 ciclu = 0° → 180° → 0°). Daca senzorul PIR nu detecteaza miscare (output 0) si starea ventilatorului este running (flag-ul stopMoving este setat pe 0), se incrementeaza un counter (counterMovement). Daca acest counter ajunge la valoarea 3, atunci ventilatorul isi schimba starea din running in blocked, revenind la starea running abia cand detecteaza, din nou, miscare. De fiecare data cand senzorul detecteaza miscare, iar ventilatorul este activ, counter-ul se reseteaza.
Miscarea motorului DC se face prin PWM, mapand range-ul de temperaturi care poate fi detectat de senzorul de temperatura (0-50), la range-ul de viteze (100 - 255). Astfel, elicea se va invarti cu o viteza direct proportionala cu temperatura camerei.
Dupa fiecare ciclu de miscare a servomotorului, se scrie valoarea temperaturii detectate, impreuna cu timpul trecut, in secunde, de la pornirea ventilatorului, intr-un fisier logger.txt. Punctele rezultate sunt apoi trecute in Excel pentru generarea graficului.
Rezultate Obţinute
Poza proiect de ansamblu:
Exemplu rezultat generare grafic din data logger, folosind Excel:
Concluzii
Download
Documentația în format
PDF
Bibliografie/Resurse