This is an old revision of the document!


Smart Thermometer System

Introducere

  • Proiectul constă într-un sistem embedded ce măsoară temperatura ambientală folosind senzorul analogic LM35 și afișează valoarea citită pe un LCD 16×2.
  • Scopul este dezvoltarea unui sistem embedded complet funcțional, cu integrare hardware și software, folosind periferice standard ale microcontrollerului STM32F103CBTx.
  • 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.

Descriere generală

Schemă bloc cu modulele hardware și software + descrierea interacțiunii dintre ele.

Schema bloc a proiectului

* LM35 convertește temperatura în semnal analogic * ADC0804 convertor analog-digital legat la PA0–PA7 * STM32F103 procesează valorile convertite * LCD 16×2 conectat prin GPIO controlează afișarea * PWM controlează un buzzer de semnalizare termică * UART trimite temperatura la PC pentru logging * Butonul generează întreruperi pentru calibrare/reset

Hardware Design

  • Listă de componente + datasheet/linkuri
  • Scheme electrice (urmează a fi realizate)
  • Diagrame de semnal (ADC + PWM)

Bill of Materials (BOM)

Componentă Model Interfață Link / Datasheet
Microcontroller STM32F103CBTx GPIO, UART, ADC, PWM [STM32F103CBT6 datasheet](https://www.st.com/resource/en/datasheet/stm32f103c8.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)
Afișaj LCD LCD 16×2 GPIO 4-bit [HD44780 LCD](https://www.sparkfun.com/datasheets/LCD/HD44780.pdf)
Buzzer pasiv - PWM -
Buton calibrate - GPIO (EXTI) -

Pini utilizați:

Componentă Pin STM32 Funcție
———————–———
LCD 16×2 PB0–PB7 GPIO (D4–D7 + RS, E)
ADC0804 PA0–PA7 GPIO input
LM35 ADC0804 IN Analog
UART TX PA9 Serial out
UART RX PA10 Serial in
PWM out PA8 Semnal buzzer
Buton PC13 EXTI13

Software Design

  • PlatformIO (STM32 + libopencm3)
  • Biblioteci proprii pentru LCD
  • Algoritmi: citire periodică ADC, afișare LCD, transmitere UART, PWM alert, EXTI reset

  • IDE: Visual Studio Code + PlatformIO
  • Framework: STM32 + libopencm3
  • Funcționalități:
    • Inițializare GPIO, ADC, UART, EXTI, PWM
    • Loop de citire periodică temperatură + afișare pe LCD
    • Trimitere serială a valorii măsurate
    • Pornire buzzer dacă temperatura depășește un prag
    • Întrerupere buton pentru reset

Rezultate Obţinute

În prezent se lucrează la partea fizică. Codul software a fost generat și testat în simulator.

Concluzii

Proiectul este în stadiu de dezvoltare. Toate funcționalitățile software au fost scrise și urmează integrarea fizică a componentelor pentru testare și validare.

Codul sursă include:

  • main.c
  • lcd.c/.h
  • uart.c/.h
  • adc.c/.h
  • timer_pwm.c/.h
  • Makefile / platformio.ini

</note>

pm/prj2025/avaduva/andrei_vlad.iancu.1748201738.txt.gz · Last modified: 2025/05/25 22:35 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