Differences

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

Link to this comparison view

pm:prj2025:avaduva:andrei_vlad.iancu [2025/05/25 22:51]
andrei_vlad.iancu
pm:prj2025:avaduva:andrei_vlad.iancu [2025/05/25 23:31] (current)
andrei_vlad.iancu
Line 1: Line 1:
 +
 ====== Smart Thermometer System ====== ====== Smart Thermometer System ======
  
Line 5: Line 6:
 <note tip> <note tip>
   * Proiectul constă într-un sistem embedded ce măsoară temperatura ambientală folosind senzorul analogic LM35 și afișează valoarea citită pe un LCD 16x2.   * Proiectul constă într-un sistem embedded ce măsoară temperatura ambientală folosind senzorul analogic LM35 și afișează valoarea citită pe un LCD 16x2.
-  * Scopul este dezvoltarea unui sistem embedded complet funcțional,​ cu integrare hardware și software, folosind periferice standard ale microcontrollerului STM32F103CBTx.+  * Scopul este dezvoltarea unui sistem embedded complet funcțional,​ cu integrare hardware și software, folosind periferice standard ale unui microcontroller Arduino Uno.
   * Ideea proiectului a plecat de la necesitatea unui instrument simplu și eficient de măsurare a temperaturii ambientale, integrabil ușor în aplicații casnice sau industriale.   * Ideea proiectului a plecat de la necesitatea unui instrument simplu și eficient de măsurare a temperaturii ambientale, integrabil ușor în aplicații casnice sau industriale.
-  * Este un proiect util atât educațional cât și practic, exersând concepte embedded precum GPIO, ADC, LCD, UART, întreruperi,​ temporizatoare ​și PWM.+  * Este un proiect util atât educațional cât și practic, exersând concepte embedded precum GPIO, ADC, LCD, PWM, UART și întreruperi externe.
 </​note>​ </​note>​
  
Line 19: Line 20:
  
   * LM35 convertește temperatura în semnal analogic   * LM35 convertește temperatura în semnal analogic
-  * ADC0804 convertește semnalul analogic în valoare digitală +  * ADC0804 convertește semnalul analogic în date digitale pe 8 biți 
-  * STM32F103 primește datele ​convertite prin GPIO +  * Arduino Uno citește datele ​digitale, le interpretează și decide acțiunile 
-  * LCD 16x2 afișează temperatura ​măsurată +  * LCD 16x2 afișează temperatura 
-  * Buzzerul pornește dacă temperatura depășește un prag critic +  * Buzzer-ul este activat prin PWM când temperatura depășește un prag critic 
-  * UART trimite valorile către ​un PC pentru monitorizare +  * Ventilatorul este acționat de un motor controlat de Arduino când temperatura e prea mare 
-  * Butonul permite ​calibrare ​sau reset prin întrerupere externă+  * Butonul permite ​resetarea sistemului ​sau calibrare 
 +  * UART trimite date seriale către un PC pentru logging
  
 ===== Hardware Design ===== ===== Hardware Design =====
  
 <note tip> <note tip>
-  * Listă de piese +  * Listă de componente + datasheet/​linkuri 
-  * Scheme electrice (urmează) +  * Scheme electrice (urmează ​a fi realizate
-  * Diagrame de semnal (PWM, ADC)+  * Diagrame de semnal (ADC + PWM)
 </​note>​ </​note>​
  
 **Bill of Materials (BOM)** **Bill of Materials (BOM)**
  
-^ Componentă ​        ^ Model         ​^ Interfață ​    ​^ Link / Datasheet ^ +^ Componentă ​        ^ Model          ^ Interfață ​       ^ Link / Datasheet ^ 
-| Microcontroller ​   | STM32F103CBTx ​| GPIO, UART    | [STM32F103CBT6 datasheet](https://www.st.com/resource/en/​datasheet/​stm32f103c8.pdf) | +| Microcontroller ​   | Arduino Uno    ​| GPIO, UART, ADC, PWM | [Arduino Uno](https://store.arduino.cc/products/arduino-uno-rev3) | 
-| Senzor temperatură | LM35DZ ​       | Analog ​       | [LM35 Datasheet](https://​www.ti.com/​lit/​ds/​symlink/​lm35.pdf) | +| Senzor temperatură | LM35DZ ​        ​| Analog ​           | [LM35 Datasheet](https://​www.ti.com/​lit/​ds/​symlink/​lm35.pdf) | 
-| Convertor ADC      | ADC0804 ​      ​| Paralel (8b)  | [ADC0804 Datasheet](https://​www.ti.com/​lit/​ds/​symlink/​adc0804.pdf) | +| Convertor ADC      | ADC0804 ​       | Paralel (8b)      | [ADC0804 Datasheet](https://​www.ti.com/​lit/​ds/​symlink/​adc0804-n.pdf) | 
-| LCD 16x2           HD44780 ​      | GPIO 4-bit    | [HD44780 LCD](https://​www.sparkfun.com/​datasheets/​LCD/​HD44780.pdf) | +Afișaj ​LCD         ​LCD 16x2       | GPIO 4-bit        | [HD44780 LCD](https://​www.sparkfun.com/​datasheets/​LCD/​HD44780.pdf) | 
-| Buzzer ​            ​| -             ​| PWM           ​| - | +| Buzzer ​pasiv       | -              | PWM               ​| - | 
-Ventilator ​DC      -             | PWM (motor) ​  | - | +Motor cu ventilator| ​DC 5V Motor + Propeller ​GPIO cu tranzistor driver ​| - | 
-| Buton calibrate ​   | -             ​| GPIO (EXTI  ​| - |+| Buton calibrate ​   | -              | GPIO (INT0      ​| - |
  
 **Pini utilizați:​** **Pini utilizați:​**
  
-Componentă ​^ Pini STM32        ^ Funcție ​          ^ +Componentă ​        | Pin Arduino | Funcție ​
-| LCD        PB0PB7           | GPIO (D4–D7 + RS, E) | +|--------------------|-------------|---------| 
-| ADC0804 ​   PA0PA7           | GPIO input       ​+| LCD 16x2           D2D7       | GPIO (D4–D7 + RS, E) | 
-| LM35       ​| ADC0804 IN        | Analog ​          ​+| ADC0804 ​           D8D13      ​| GPIO input | 
-| UART       | PA9 (TX), PA10(RX)Comunicație PC   +| LM35               ​| ADC0804 IN  | Analog | 
-Buzzer ​    PA8               | PWM              +| UART TX            | D1          | Serial out | 
-| Motor DC   | TIM PWM (ex. PA1| Răcire activă ​   ​+| UART RX            D0          | Serial in 
-| Buton      | PC13              ​| ​EXTI13 ​          |+PWM buzzer ​        D9          ​Semnal ​PWM | 
 +| Motor ventilator ​  | D10         | Control motor (cu tranzistor) | 
 +| Buton              | D3 (INT1) ​  | Întrerupere externă ​|
  
 ===== Software Design ===== ===== Software Design =====
  
 <note tip> <note tip>
-  * PlatformIO (STM32 + libopencm3+  * PlatformIO (Arduino Uno
-  * Biblioteci proprii pentru LCD, ADC, UART +  * Biblioteci proprii pentru LCD 
-  * Algoritmi: citire ADC, afișare LCD, transmitere UART, PWM buzzer/motor, întrerupere ​buton+  * Algoritmi: citire ​periodică ​ADC, afișare LCD, transmitere UART, PWM alert, control ​motor, întrerupere ​reset
 </​note>​ </​note>​
  
-**Mediu dezvoltare:**   +  ​IDE: Visual Studio Code + PlatformIO 
-  * Visual Studio Code + PlatformIO ​  +  * Framework: ​Arduino (C++) 
-  * Framework: ​libopencm3 ​  +  * Funcționalități:​ 
- +    * Inițializare GPIO, UART, PWM, ADC software 
-**Funcționalități ​implementate:**  ​ +    Loop de citire periodică temperatură ​+ afișare ​pe LCD 
-  * Inițializare ​periferice: ​GPIO, ADC, PWM, UART, EXTI  ​ +    Trimitere ​serială ​a valorii măsurate 
-  Afișare continuă temperatură pe LCD   +    Activare ​buzzer și ventilator dacă temperatura e prea mare 
-  Transmitere ​serială ​(UART) pentru logging  ​ +    * Întrerupere buton pentru ​reset sau calibrare
-  Pornire ​buzzer și ventilator dacă temperatura ​depășește pragul  ​ +
-  * Întrerupere ​externă de la buton pentru calibrare/​reset  ​+
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
 <note tip> <note tip>
-  * Proiectul este în stadiu de dezvoltare. Codul software ​este implementat ​și testat ​parțial ​în simulare. Urmează integrarea fizică a componentelor.+În prezent se lucrează la partea fizică. Codul software ​a fost generat ​și testat în simulator.
 </​note>​ </​note>​
  
 ===== Concluzii ===== ===== Concluzii =====
  
-Toate funcționalitățile software au fost definite ​și implementate modular. Integrarea fizică se va face în săptămânile următoare. Proiectul include concepte din minim 5 laboratoare (GPIO, ADC, UART, PWM, întreruperi). +Proiectul este în stadiu de dezvoltare. ​Toate funcționalitățile software au fost scrise ​și urmează ​integrarea fizică a componentelor pentru testare ​și validare.
- +
-===== Download ===== +
- +
-<note warning>​ +
-Codul sursă este disponibil în repository GitHub (urmează ​publicarea). +
-</​note>​ +
- +
-===== Jurnal ===== +
- +
-<note tip> +
-  * 25.05 – Finalizare arhitectură software ​și generare cod de bază +
-  * 26.05 – Creare documentație wiki și schemă bloc +
-</​note>​+
  
-===== Bibliografie/Resurse =====+Codul sursă include: 
 +  * main.cpp 
 +  * lcd.c/.h 
 +  * uart.c/.h 
 +  * adc.c/.h 
 +  * pwm.c/.h 
 +  * delay.c/​.h 
 +  * gpio.c/.h 
 +  * platformio.ini
  
-**Resurse Software** +GIT - https://​github.com/​WhyNotZebra/smart-thermometer
-  * [libopencm3](https://​github.com/​libopencm3/libopencm3) +
-  * [PlatformIO Docs](https://​docs.platformio.org/​)+
  
-**Resurse Hardware** 
-  * [LM35 Datasheet](https://​www.ti.com/​lit/​ds/​symlink/​lm35.pdf) 
-  * [ADC0804 Datasheet](https://​www.ti.com/​lit/​ds/​symlink/​adc0804.pdf) 
-  * [STM32F103CBT6 Datasheet](https://​www.st.com/​resource/​en/​datasheet/​stm32f103c8.pdf) 
-  * [HD44780 LCD](https://​www.sparkfun.com/​datasheets/​LCD/​HD44780.pdf) 
pm/prj2025/avaduva/andrei_vlad.iancu.1748202676.txt.gz · Last modified: 2025/05/25 22:51 by andrei_vlad.iancu
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