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:

  • Arduino Uno
  • Modul adaptor SD
  • Card SD
  • Senzor de temperatura si umiditate DHT11
  • Ecran LCD 1602 IIC/I2C
  • 4 LED-uri
  • 4 rezistori
  • calburi mama-tata si tata-tata

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:

  1. Temperatura de 26 de grade si umiditate normala, deci proiectul doar va afisa sugestii pe ecran

  2. Temperatura de 26 de grade si umiditatea crescuta, insa nu mai mare de 70% pentru a indica precipitatii

  3. Temperatura de 26 de grade si umiditatea foarte crescuta (peste 70%), deci indica precipitatii


Pentru a vedea un demo care trece prin toate scenariile posibile, urmariti link-ul:
https://youtu.be/jkqMEPNs_YE

Download

Arhiva cu codul pentru proiect: craciunmara.zip
De asemenea, in fisierul arduino se gaseste la final, comentat, si un demo pentru testarea tuturor scenariilor posibile.

Concluzii

Desi la inceput nu stiam cat de bine o sa ma descurc sau cat de mult o sa imi placa, am ajuns sa ma distrez lucrand la proiect si cautand metode de legare a componentelor. Mi-a placut sa ma gandesc la scenarii posibile si sa vad cum luau viata odata ce implementam si partea de hardware.
In final, pot sa spun ca am invatat foarte multe din proiectul acesta si ca ma bucur ca am avut ocazia sa il fac.

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
  • 26 mai: finalizare documentatie

Bibliografie/Resurse

pm/prj2023/adarmaz/mara.craciun.txt · Last modified: 2023/05/28 11:57 by mara.craciun
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0