This shows you the differences between two versions of the page.
pm:prj2024:aungureanu:constantin.croicia [2024/05/05 19:11] constantin.croicia [Introducere] |
pm:prj2024:aungureanu:constantin.croicia [2024/05/26 14:52] (current) constantin.croicia [Download] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Nume proiect ====== | + | ====== Plant Info Collector ====== |
* Nume: Croicia Constantin Rares Alexandru | * Nume: Croicia Constantin Rares Alexandru | ||
Line 12: | Line 12: | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | <note tip> | + | Sistemul este amplasat langa planta, iar senzorii sunt pusi astfel incat sa extraga date despre planta si ambientul acesteia. Sistemul extrage date o data la un timp ajustabil, default fiind 1 minut, insa poate sa trimita date si la orice moment doreste utilizatorul. Exista 3 butoane si un led/afisaj LCD(Subject to be decided) instalate pe sistem, 2 dintre butoane sunt folosite pentru a ajusta intervalul la care se trimit date, iar al treilea buton este folosit pentru a trimite datele in momentul apasarii. Led-ul clipoceste de fiecare data cand sunt trimise date / LCD-ul va arata cate secunde mai sunt pana la urmatoarea trimitere a datelor. Sistemul se conecteaza Wireless/Serial prin USB(Subject to be decided) la o aplicatie web care primeste datele extrase de senzori si acestea pot fi folosite oricum. In cazul de fata, acestea vor fi afisate intr-un tabel cu optiunea de a putea fi descarcate ca CSV. Sistemul va merge pe baterie. |
- | O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează. | + | |
- | Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html | + | {{ pm:prj2024:aungureanu:schema_vizuala_croicia_rares.png }} |
- | </note> | + | |
===== Hardware Design ===== | ===== Hardware Design ===== | ||
- | <note tip> | + | Lista Piese: |
- | Aici puneţi tot ce ţine de hardware design: | + | |
- | * listă de piese | + | * Arduino UNO R3 |
- | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | * Senzori Temperatura + Umiditate (ala de luminozitate mi-a venit stricat cu 3 zile inainte de PM Fair...) |
- | * diagrame de semnal | + | * Butoane |
- | * rezultatele simulării | + | * Afisaj LCD |
- | </note> | + | * Buzzer |
+ | * Rezistente 1K | ||
+ | * Fire (Tata-Tata, Mama-Tata) | ||
+ | |||
+ | Schema proiectului: | ||
+ | |||
+ | {{ 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 46: | 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> |