Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2024:aungureanu:constantin.croicia [2024/05/05 19:04]
constantin.croicia [Nume proiect]
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 5: Line 5:
 ===== Introducere ===== ===== Introducere =====
  
-<note tip> +  ​Plant Info Collector este un proiect care extrage date despre o planta si trimite date la o aplicatie web care mai departe se ocupa cu manipularea acestora. 
-Prezentarea pe scurt a proiectului vostru: +  * Scopul proiectului ​este acela de a imbina utilul cu placutul, invatand mai bine cum functioneaza un astfel de sistem. 
-  ​ce face +  * Ideea de baza a fost incercarea ​de a gasi ceva util, chiar daca nu e atat de complex. 
-  * care este scopul lui +  * Toti avem plante in casa, uneori ne intereseaza sa stim daca trebuie udate/​mutate din cauza luminii, asa ca putem lasa sistemul acesta pornit sa trimita date catre un server si sa le putem folosi cand dorim. 
-  * care a fost ideea de la care aţi pornit +
-  * de ce credeţi că este util pentru alţii şi pentru voi +
-</​note>​+
 ===== Descriere generală ===== ===== Descriere generală =====
  
-<note tip> +Sistemul este amplasat langa plantaiar senzorii sunt pusi astfel incat sa extraga date despre planta si ambientul acesteia. Sistemul extrage date 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 ​ajusta intervalul la care se trimit date, iar al treilea buton este folosit pentru ​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 vostruatât software cât şi hardware însoţită de descriere ​acestora precum şi modului în care interacţionează.+
  
-Exemplu de schemă blochttp://​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.ghttp://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 48: 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>
pm/prj2024/aungureanu/constantin.croicia.1714925076.txt.gz · Last modified: 2024/05/05 19:04 by constantin.croicia
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