This is an old revision of the document!
Smart Outfit Advisor - Craciun Mara 333CA
Introducere
Proiectul are ca scop usurarea vietii utilizatorului prin sfatuirea acestuia cu ce sa se imbrace in functie de vreme. Acesta inregistreaza temperatura si umiditatea din jur si, in functie de valorile acestora, afiseaza pe un ecran LCD propuneri de imbracaminte.
Ideea proiectului mi-a venit in speranta de a putea evita situatiile in care nu imi luam umbrela si ma prindea ploaia, in care imi luam o geaca groasa si o tineam in mana deoarece afara era foarte cald sau cele in care nu ma imbracam destul de gros pentru frigul de afara.
Descriere generală
Pentru realizarea proiectului si a crea o experienta cat mai distractiva pentru utilizator, am pus la un loc urmatoarele feature-uri:
Senzor de temperatura si umiditate conectat la placuta, care inregistreaza temperatura si umiditatea din exterior si returneaza cate o valoare pentru acestea
Un istoric al temperaturilor va fi salvat pe un card SD conectat la placuta prin adaptor
Alta caracteristica a proiectului sunt cele 4 LED-uri, 2 pentru umiditate si 2 pentru temperatura: un led se va aprinde daca temperatura/umiditatea sunt considerate ridicate/scazute
In final, cel mai important aspect al proiectului este algoritmul care sta in spatele sfaturilor afisate. Valorile de temperatura si umiditate sunt inregistrate prin senzorul conectat la placuta si, in functie de acestea, algoritmul verifica imbracamintea adecvata (exemplu: geaca groasa daca temperatura e foarte scazuta, umbrela daca temperatura si umiditatea indica ca ar ploua etc.) si o afiseaza pe ecranul LCD pentru a ajuta utilizatorul sa ia o decizie.
Hardware Design
Componentele proiectului sunt:
Schema proiectului:
Software Design
In implementarea proiectului, am folosit urmatoarele laboratoare:
Laboratorul 0: pentru aprinderea LED-urilor
Laboratorul 4: ADC folosit pentru citirea valorilor de la senzorul de temperatura si umiditate si procesarea acestora
Laboratorul 5: SPI este protocolul folosit pentru legatura cu modulul adaptor de card SD
Laboratorul 6: I2C folosit ca protocol pentru legatura cu ecranul LCD
Am implementat proiectul folosind Arduino IDE.
Librariile utilizate:
DHT.h : folosita pentru citirea temperaturii si umiditatii de la senzor
LiquidCrystal_I2C.h : folosita pentru a afisa mesaje pe ecranul LCD utilizand protocolul I2C
SPI.h : folosita pentru comunicarea prin protocolul SPI intre placuta Arduino si adaptorul de card SD
SD.h : folosita pentru scrierea pe cardul SD
Proiectul se bazeaza pe verificarea valorilor obtinute de la senzorul de temperatura si umiditatea, de la care citeste o data la 5 secunde. In momentul in care umiditatea este mai mare de 70%, sunt sanse foarte mari sa indice precipitatii (ploaie sau zapada, in functie de temperatura). Daca umiditatea este mai mica, atunci ne concentram doar pe temperatura pentru a gasi cele mai potrivite haine.
Pentru temperatura foarte ridicata/scazuta, exista cate un LED care se aprinde pentru a anunta utilizatorul sa aiba grija la temperaturile extreme. De asemenea, proiectul are cate un LED pentru valori foarte mici ale umiditatii (mai putin de 25%) si unul pentru valori foarte ridicate ale umiditatii (in functie de temperatura, sunt valori peste care umiditatea nu ar trebui sa treaca).
Rezultate Obţinute
Cum senzorul citeste o data la 5 secunde, fiecare afisare consecutiva nu este foarte diferita, insa acesta functioneaza corect pentru fiecare situatie. Acestea sunt 3 scenarii care au avut loc:
Temperatura de 26 de grade si umiditate normala, deci proiectul doar va afisa sugestii pe ecran
Temperatura de 26 de grade si umiditatea crescuta, insa nu mai mare de 70% pentru a indica precipitatii
poza
- Temperatura de 26 de grade si umiditatea foarte crescuta (peste 70%), deci indica precipitatii
poza
Concluzii
Download
O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună

.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.
Jurnal
12 aprilie: idee initiala de proiect
18 aprilie: achizitionare majoritatea pieselor
19 aprilie: discutie cu laborantul legata de tema proiectului
26 aprilie: finalizare idee proiect
2 mai: inceput partea software
20 mai: achizitionat fire si breadboard suplimentare
22 mai: terminat hardware
23 mai: finalizat software
Bibliografie/Resurse