Differences

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

Link to this comparison view

pm:prj2024:aungureanu:constantin.croicia [2024/05/21 13:32]
constantin.croicia [Hardware Design]
pm:prj2024:aungureanu:constantin.croicia [2024/05/26 14:52] (current)
constantin.croicia [Download]
Line 14: Line 14:
 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. 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 (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>
pm/prj2024/aungureanu/constantin.croicia.1716287568.txt.gz · Last modified: 2024/05/21 13:32 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