Ventilatorul inteligent va fi de dimensiune mica, putand sa fie plasat pe un birou de lucru si va avea doua moduri de functionare:
Scopul acestuia, fata de un ventilator obisnuit este de a detecta singur temperatura si a folosi bateria conectata cat mai optim.
In opinia mea proiectul este util si am de gand sa-l folosesc la vara cand va fi foarte cald.
Schema bloc este destul de simpla si intuitiva.
Astfel, telecomanda actioneaza asupra senzorului infrarosu, avand urmatoarele functionalitati:
Cei doi senzori, de temperatura si de miscare, functioneaza doar in modul auto. Astfel, in momentul in care este detectata miscarea, ventilatorul se roteste in functie de temperatura masurata. Cand nu exista miscare din mediul exterior, bateria de 9V nu se descarca in mod inutil.
Trazistorul are rolul de a transmite ventilatorului curentul electric debitat de baterie si nu direct de la placuta Arduino.
Pe ecran se vor afisa mesaje de tipul:
Componentele folosite sunt urmatoarele:
Am lipit LCD-ul deasupra ventilatorului (am cautat sa aiba dimensiuni compatibile) pentru a avea o forma mai compacta.
Schema electrica este urmatoarea:
Am folosit IDE-ul oferit de Arduino, ultima versiune de la momentul respectiv.
Bibliotecile folosite au fost urmatoarele:
Detectia unei taste apasate se face la constant, in cazul in care ea exista, pentru a nu oferi utilizatorului senzatia de lag. Ulterior am decodificat tasta apasata, folosind functii din biblioteca IRremote.h. Astfel, orice interactiune cu ventilatorul inteligent trebuie sa fie precedata mai inainte de toate de pornirea acestuia.
Miscarea se detecteaza folosind starea pinului la care este conectat senzorul, astfel, aceasta fiind citita permanent, atunci cand ventilatorul este in modul auto. Temperatura este si ea masurata folosind biblioteca DHT.h, doar cand este in starea auto si cand este simtita miscarea. Astfel, am folosit o functie care sa-mi calculeze cu ce procent din puterea puterea maxima se invarte ventilatorul la un moment dat. Mai exact acest procent se calculeaza in functie de temperatura curenta (exemplu temp > 25°C ⇒ procent = 100% etc) si calculez, folosind PWM, ce valoare scriu pe acel pin la care este conectat tranzistorul (care va face ca bateria sa alimenteze ventilatorul) in fiecare moment. De exemplu pentru procent 100% scriu 255, pentru 50% scriu 127 etc.
In modul auto pot controla viteza cu care se roteste ventilatorul, verificand tasta apasata la fiecare moment de timp si scriind valoarea corespunzatoare in pinul placutei Arduino, la fel cum am descris mai sus.
In fiecare moment afisez mesaje sugestive pe ecranul LCD, folosind functii din biblioteca LiquidCrystal_I2C.h, pentru a informa utilizatorul despre starea de functionare a dispozitivului.
Acest proiect reprezinta prima mea interactiune mai in detaliu asupra a ceea ce inseamna Arduino si ce poti face cu o astfel de placuta. Am intampinat cateva dificultati in ceea ce priveste conectarea pieselor si a pozitionarii tranzistorului. De asemenea, am facut destul de mult research in ceea ce priveste controlarea ventilatorului cu telecomanda, deoarece nu functiona foarte bine la inceput. Am observat de asemenea ca telecomanda trebuie tinuta cu fata spre senzorul infrarosu pentru a-si da seama de butonul apasat.
Personal, sunt mandru de rezultatul final si am de gand sa folosesc ventilatorul pe parcursul acestei veri in camera de camin. (Regie Rullz )