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 21:30]
constantin.croicia [Descriere generală]
pm:prj2024:aungureanu:constantin.croicia [2024/05/26 14:52] (current)
constantin.croicia [Download]
Line 12: Line 12:
 ===== Descriere generală ===== ===== Descriere generală =====
  
-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 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. Sistemul se conecteaza Wireless 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.+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.
  
-{{ pm:​prj2024:​aungureanu:​schemabloccroiciarares.png }}+{{ pm:​prj2024:​aungureanu:​schema_vizuala_croicia_rares.png }}
  
 ===== Hardware Design ===== ===== Hardware Design =====
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+
   * Butoane   * Butoane
-  * LED+  * Afisaj LCD 
 +  * Buzzer 
 +  * Rezistente 1K
   * Fire (Tata-Tata, Mama-Tata)   * Fire (Tata-Tata, Mama-Tata)
  
-<note tip> +Schema proiectului:​ 
-Ce a ramas de pus + 
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri,​ e.g. http://www.captain.at/​electronic-atmega16-mmc-schematic.png) +{{ pm:prj2024:​aungureanu:​schema_electrica_croicia.jpg  }}
-  * diagrame de semnal  +
-  * rezultatele simulării +
-</​note>​+
  
 ===== 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 52: 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.1714933802.txt.gz · Last modified: 2024/05/05 21:30 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