This shows you the differences between two versions of the page.
pm:prj2024:aungureanu:constantin.croicia [2024/05/26 14:11] constantin.croicia [Descriere generală] |
pm:prj2024:aungureanu:constantin.croicia [2024/05/26 14:52] (current) constantin.croicia [Download] |
||
---|---|---|---|
Line 21: | Line 21: | ||
* Arduino UNO R3 | * Arduino UNO R3 | ||
- | * Senzori Temperatura + Umiditate + Luminozitate | + | * Senzori Temperatura + Umiditate (ala de luminozitate mi-a venit stricat cu 3 zile inainte de PM Fair...) |
- | * Modul Wi-Fi (To be decided) | + | |
* Butoane | * Butoane | ||
- | * LED/Afisaj LCD | + | * Afisaj LCD |
+ | * Buzzer | ||
+ | * Rezistente 1K | ||
* Fire (Tata-Tata, Mama-Tata) | * Fire (Tata-Tata, Mama-Tata) | ||
Schema proiectului: | Schema proiectului: | ||
- | {{ pm:prj2024:aungureanu:proiectarecroiciarares.jpeg }} | + | {{ pm:prj2024:aungureanu:schema_electrica_croicia.jpg }} |
===== Software Design ===== | ===== Software Design ===== | ||
+ | ** Mediu de dezvoltare folosit** | ||
+ | * **Arduino IDE**: Dezvoltarea codului pentru arduino | ||
+ | * **VS Code**: Dezvoltarea codului pentru aplicatia Web | ||
+ | * **dht11.h**: Am folosit aceasta [[https://github.com/adidax/dht11|biblioteca]] pentru ca avea deja implementata citirea datelor de pe senzor | ||
+ | * **LiquidCrystal_I2C.h**: Am folosit biblioteca existenta in library manager-ul de la Arduino pentru a folosi implementarea oficiala pentru output pe LCD. | ||
+ | |||
+ | ** Detalii de implementare ** | ||
+ | |||
+ | * Pentru LCD am folosit un modul I2C pentru a fi mai usor de comunicat pe placuta. | ||
+ | * Exista 2 intreruperi legate la cele doua butoane, cand un buton este apasat, intervalul la care se trimit date scade sau creste cu 10 secunde. | ||
+ | * Buzzer-ul scoate sunet la fiecare apasare de buton sau cand se trimit date. | ||
+ | * Exista un timer bazat pe functia millis() care la fiecare secunda updateaza variabila de timp si verifica daca trebuie sa trimita date | ||
+ | * Datele se trimit serial prin cablul USB, existand un mic protocol prin care se trimit datele. | ||
+ | * Datele sunt incapsulate astfel: | ||
+ | * Sirul Begin care spune ca incepe mesajul | ||
+ | * un numar care reprezinta temperatura in grade Celsius | ||
+ | * Good/Bad in functie de temperatura | ||
+ | * un numar care reprezinta nivelul de umiditate din zona | ||
+ | * Good/Bad in functie de umiditate | ||
+ | * Sirul End care spune ca s-a terminat mesajul. | ||
+ | * Mai departe este treaba aplicatiei din celalalt end sa gestioneze parsarea acestor date si folosirea lor. | ||
+ | * Senzorul citeste date o data la cat este intervalul. Initial acesta e 5 secunde pentru a fi usor la debug, intr-un mediu de productie ar varia acest numar. | ||
+ | |||
+ | ** Laboaratoare folosite ** | ||
+ | * Intreruperi - Pentru butoane | ||
+ | * SPI - Pentru trimiterea datelor Serial | ||
+ | * I2C - LCD | ||
+ | * Timere - Timerul variabil | ||
- | <note tip> | ||
- | Descrierea codului aplicaţiei (firmware): | ||
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | ||
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | ||
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | ||
- | * (etapa 3) surse şi funcţii implementate | ||
- | </note> | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
Line 49: | Line 71: | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | |||
+ | Cam [[https://imgur.com/a/W7H7Xbe|asa]] arata! | ||
+ | Uite si un [[https://youtube.com/shorts/akxlRMO4TzU?feature=share|video]]! | ||
+ | |||
===== Download ===== | ===== Download ===== | ||
+ | |||
+ | Proiectul se poate descarca apasand [[https://github.com/RaresCroicia/PM/archive/refs/heads/main.zip|aici]]. | ||
+ | Poate fi vizualizat pe [[https://github.com/RaresCroicia/PM/|repo]]. | ||
<note warning> | <note warning> |