Differences

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

Link to this comparison view

pm:prj2021:abirlica:environmental_monitoring_system [2021/05/25 15:50]
lucian_ioan.popescu [Concluzii]
pm:prj2021:abirlica:environmental_monitoring_system [2021/05/30 19:17] (current)
lucian_ioan.popescu [Software Design]
Line 8: Line 8:
 Ideea proiectului a plecat de la dorinta de a agrega si multiplexa cat mai multi senzori pe Arduino pentru a culege si lucra cu datele din mediul inconjurator. Proiectul e folositor deoarece el poate fi modelat astfel incat sa fie folosit in viata de zi cu zi pentru a colecta date legate de temperatura,​ umiditate, puritatea aerului intr-o casa sau masina smart. Ideea proiectului a plecat de la dorinta de a agrega si multiplexa cat mai multi senzori pe Arduino pentru a culege si lucra cu datele din mediul inconjurator. Proiectul e folositor deoarece el poate fi modelat astfel incat sa fie folosit in viata de zi cu zi pentru a colecta date legate de temperatura,​ umiditate, puritatea aerului intr-o casa sau masina smart.
 ===== Descriere generală ===== ===== Descriere generală =====
-{{:​pm:​prj2021:​abirlica:​environmental_monitoring_system_block_diagram.png?|}}+{{ :​pm:​prj2021:​abirlica:​ems_block_diagram.jpeg?500 |}}
  
 In loc de 4x7 display voi folosi tot un LED 1602 I2C deoarece pinii de pe placa nu sunt suficienti. In loc de 4x7 display voi folosi tot un LED 1602 I2C deoarece pinii de pe placa nu sunt suficienti.
Line 23: Line 23:
   * PC   * PC
  
-{{ :​pm:​prj2021:​abirlica:​ems_circuit_design.png?800 |}}+{{ :​pm:​prj2021:​abirlica:​ems_circuit_design.jpeg?800 |}}
 ===== Software Design ===== ===== Software Design =====
 Codul sursa se poate gasi in urmatorul repo: Codul sursa se poate gasi in urmatorul repo:
Line 30: Line 30:
 La fiecare moment de timp, in functia loop, se afiseaza pe LCD-ul 1 meniul utilizatorului. Pe LCD-ul 2 e afiseaza uptime-ul in secunde. Sistemul asteapta de la utilizator o comanda, iar atunci cand o primeste se decide ce meniu va afisa pe ecran. La fiecare moment de timp, in functia loop, se afiseaza pe LCD-ul 1 meniul utilizatorului. Pe LCD-ul 2 e afiseaza uptime-ul in secunde. Sistemul asteapta de la utilizator o comanda, iar atunci cand o primeste se decide ce meniu va afisa pe ecran.
  
-Functiile ​ajutatoare ​comunica cu senzorii sistemului pentru a colecta si afisa mai apoi date pe LCD.+Functiile ​statice definite in fisierul .ino comunica cu senzorii sistemului pentru a colecta si afisa mai apoi date pe LCD. 
 + 
 +A fost nevoie sa hardcodez tastele venite de la telecomanda,​ pentru asta am folosit urmatoarele define-uri: \\ 
 +    #define KEYONE 0XF30CFF00 
 +    #define KEYTWO 0XE718FF00 
 +    #define KEYTHREE 0XA15EFF00 
 +    #define KEYFOUR 0XF708FF00 
 +    #define KEYEQ 0XE619FF00 
 +    #define KEYUNDEF 0xFFFFFFF
  
 Pentru implementare am folosit urmatoarele biblioteci: Pentru implementare am folosit urmatoarele biblioteci:
Line 36: Line 44:
   * [[https://​github.com/​adafruit/​DHT-sensor-library | DHT]], pentru comunicarea cu senzorul de temperatura   * [[https://​github.com/​adafruit/​DHT-sensor-library | DHT]], pentru comunicarea cu senzorul de temperatura
   * [[https://​www.arduino.cc/​reference/​en/​libraries/​liquidcrystal-i2c/​ | LiquidCrystal_I2C]],​ pentru comunicarea cu ecranele LCD   * [[https://​www.arduino.cc/​reference/​en/​libraries/​liquidcrystal-i2c/​ | LiquidCrystal_I2C]],​ pentru comunicarea cu ecranele LCD
 +
 +Ca mediu de dezvoltare am folosit Arduino IDE.
 +
 +Diagrama de activitate:
 +{{ :​pm:​prj2021:​abirlica:​ems_activity_diagram.jpeg?​500 |}}
 ===== Rezultate obtinute ===== ===== Rezultate obtinute =====
 Meniurile de pe LCD care se afiseaza utilizatorului sunt: Meniurile de pe LCD care se afiseaza utilizatorului sunt:
Line 56: Line 69:
 {{ :​pm:​prj2021:​abirlica:​ir_receiver.jpeg?​500 |}} {{ :​pm:​prj2021:​abirlica:​ir_receiver.jpeg?​500 |}}
  
-Pentru ca am folosit 2 LCD-uri cu I2C a fost nevoie ca pentru unul dintre ei sa modific adresa. Pentru asta am legat cei doi pini din modulul I2C ca in poza de mai jos:+Pentru ca am folosit 2 LCD-uri cu I2C a fost nevoie ca pentru unul dintre ei sa modific adresa. Pentru asta am legat pinii de adresa A0 ca mai jos:
 {{ :​pm:​prj2021:​abirlica:​i2c_addressed.jpeg?​500 |}} {{ :​pm:​prj2021:​abirlica:​i2c_addressed.jpeg?​500 |}}
  
Line 64: Line 77:
 Am reusit sa implementez toata functionalitatea pe care mi-am propus-o. Am reusit sa implementez toata functionalitatea pe care mi-am propus-o.
  
-Cea mai dificila parte a fost legata interconectarea componentelor prin intermediul placutei. Initial mi-am propus sa folosesc un 4 digit 7 segment display pentru afisarea uptime-ului,​ dar mi-am dat seama ca nu-mi ajung pinii de pe placuta. In final am decis sa folosesc doua LCD-uri 16x2 cu I2C pentru ca folosesc doar 4 pini de pe placuta.+Cea mai dificila parte a fost legata ​de interconectarea componentelor prin intermediul placutei. Initial mi-am propus sa folosesc un 4 digit 7 segment display pentru afisarea uptime-ului,​ dar mi-am dat seama ca nu-mi ajung pinii de pe placuta. In final am decis sa folosesc doua LCD-uri 16x2 cu I2C pentru ca folosesc doar 4 pini de pe placuta.
  
 Implementarea software a mers foarte bine deoarece am gasit rapid biblioteci pentru componentele mele. Ce mi-a ramas de facut a fost sa creez logica pentru interactiunea cu utilizatorul. Implementarea software a mers foarte bine deoarece am gasit rapid biblioteci pentru componentele mele. Ce mi-a ramas de facut a fost sa creez logica pentru interactiunea cu utilizatorul.
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
-To do+[[https://​www.arduino.cc/​reference/​en/​libraries/​]] 
 + 
 +[[https://​ww1.microchip.com/​downloads/​en/​DeviceDoc/​Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf]] 
 + 
 +<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2021/abirlica/environmental_monitoring_system.1621947040.txt.gz · Last modified: 2021/05/25 15:50 by lucian_ioan.popescu
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