Table of Contents

Ventilator Inteligent cu Monitorizare Mediu

Introducere

Proiectul este unul de automatizare care combină controlul industrial cu monitorizarea siguranței ambientale. Este un sistem de ventilație inteligent, ce gestionează calitatea aerului și temperatura într-o incintă.

Dispozitivul monitorizează constant doi parametri critici: temperatura (prin senzorul analogic LM35D) și prezența gazelor inflamabile sau a fumului (prin senzorul MQ-2). În funcție de valorile citite, sistemul ajustează automat turația unui ventilator folosind semnale PWM, afișează datele în timp real pe un ecran LCD I2C și avertizează vizual utilizatorul prin LED-uri de stare.

Am ales acest proiect deoarece integrează fluxuri de date analogice cu logică de control în timp real. Direcția este una utilă în scenarii reale, precum camere de servere sau ateliere, unde ventilația trebuie să fie eficientă energetic dar și să reacționeze instantaneu la pericole (scurgeri de gaze). Elementul central este logica de override: indiferent de temperatură, detectarea fumului forțează sistemul în mod de alertă maximă.

Descriere generală

Proiectul utilizează microcontrolerul ATmega328P ca unitate centrală de procesare. Acesta interfațează cu mediul prin senzori analogici, procesează datele prin unitatea ADC internă și comandă perifericele de ieșire. Cum interacționează modulele:

• Senzor LM35D - furnizează o tensiune proporțională cu temperatura ambientală.

• Senzor MQ-2 - detectează concentrația de gaz/fum și trimite un semnal analogic (pentru măsurare pe PC0), dar și un semnal digital (pe PB4) pentru întreruperi sau override rapid la depășirea pragului hardware.

• Driver L298N + Ventilator - primește semnal PWM pentru a varia viteza motorului de 12V.

• LCD 1602 (I2C) - afișează temperatura în grade Celsius și statusul sistemului (Low/Med/High/Alarm).

• LED-uri (Verde, Galben, Roșu) - oferă feedback vizual rapid asupra stării curente.

Concepte din laboratoare folosite:

• Laboratorul 3: PWM - pentru controlul vitezei ventilatorului prin registrul OCR1A (Timer 1, Fast PWM pe pinul PB1).

• Laboratorul 4: ADC - pentru citirea valorilor analogice de la LM35D și MQ-2.

• Laboratorul 6: I2C - pentru comunicarea cu ecranul LCD folosind pinii SDA/SCL.

Schema bloc ventilator

Hardware Design

Componentă Rol
ATmega328P (Xplained Mini) Microcontroler principal
LM35D Analog Sensor Măsurarea temperaturii ambientale (10mV/°C)
MQ-2 Gas Sensor Detectarea fumului și a gazelor inflamabile
L298N Driver Interfață de putere între MCU și ventilator
DC Fan (12V) Actuator pentru răcire și evacuare
LCD 1602 cu adaptor I2C Afișaj alfanumeric pentru telemetrie
3x LED-uri (V, G, R) Indicatori vizuali pentru praguri și alerte
Sursă externă 12V Alimentarea ventilatorului și a driverului

Schema bloc ventilator

Stările Sistemului:

1. Stare Normală: Temperatura este sub pragul de alertă, mediul este curat. Ventilatorul este oprit. Schema bloc ventilator

2. Stare Atenție Temperatură: Temperatura crește peste pragul setat, sistemul pornește evacuarea aerului. Schema bloc ventilator

3. Stare Alarma Gaz: Senzorul MQ-2 detectează gaz. Sistemul ignoră temperatura și intră în modul de siguranță. Schema bloc ventilator

Software Design

Firmware-ul este scris în C (AVR Libc) la nivel de regiștri (bare-metal) pentru ATmega328P, dezvoltat în mediul VS Code cu PlatformIO. Logica software este structurată modular:

1.Inițializare: Configurare ADC (prescaler, referință), PWM (Timer 1), I2C (frecvență bus 100kHz) și pini I/O.

2.Bucla principală :

• Eșantionare ciclică a canalelor ADC0 (MQ-2) și ADC1 (LM35).

• Oversampling și Filtru EMA: Pentru a elimina zgomotul electric de masă (Ground Bounce) generat de comutația motorului DC pe breadboard, citirile senzorului LM35D sunt trecute printr-un filtru EMA (Exponential Moving Average) combinat cu o medie aritmetică din 20 de eșantioane.

• Logică de Histerezis: S-a implementat o zonă tampon (dead-band) de 2.0°C pentru a preveni oscilația ventilatorului (pornit/oprit repetat) când temperatura fluctuează fix la valoarea de graniță.

3.Logica de decizie:

• Dacă Gaz > Prag (Analogic > 130 sau Pin Digital activ): Override activat, viteză 100% (PWM 255), LED Roșu intermitent, LCD afișează alarmă.

• Dacă Gaz < Prag: Viteza se ajustează după temperatură (Oprit sub 33°C, Viteză medie între 33-38°C, Maxim peste 38°C).

• Actualizare continuă a display-ului LCD și a interfeței UART pentru telemetrie.

Rezultate Obţinute

Sistemul reușește să filtreze cu succes zgomotul electric puternic indus de motor pe o sursă de alimentare comună (breadboard), oferind citiri stabile de temperatură. De asemenea, funcția de “Hardware Override” a senzorului MQ-2 răspunde aproape instantaneu (sub 1 secundă) la prezența gazului, demonstrând un nivel de fiabilitate esențial pentru un sistem de siguranță.

Concluzii

Realizarea acestui proiect a scos în evidență discrepanțele dintre teoria ideală a circuitelor și limitările fizice ale hardware-ului real (inerție termică, zgomot pe linia de GND). Rezolvarea acestor probleme pur hardware prin metode software (filtre exponențiale și histerezis) a demonstrat că un sistem embedded stabil necesită o fuziune echilibrată între electronică și programare.

Download

Codul sursă complet, schemele și imaginile sunt disponibile în repo-ul:

https://github.com/MMihnea04/Ventilator-Inteligent-cu-Monitorizare-Mediu.git

Jurnal

•8-10 Aprilie 2026 : Alegerea temei proiectului, cât și gândirea funcționalităților pentru a incorpora 3 laboratoare.

•15-16 Aprilie 2026 : Realizarea documentației + schema bloc.

•17 Aprilie 2026 : Achiziția componentelor (LM35D, MQ-2, L298N,…).

•10-15 Mai 2026 : Asamblare proiect.

•21-22 Mai 2026 : Scriere cod și testare finală.

Bibliografie/Resurse

https://ww1.microchip.com/downloads/en/DeviceDoc/50002659A.pdf

https://ocw.cs.pub.ro/courses/pm/tutorial/proiect

https://ocw.cs.pub.ro/courses/pm/lab/lab6-2023-2024

https://ocw.cs.pub.ro/courses/pm/lab/lab4-2023-2024

https://ocw.cs.pub.ro/courses/pm/lab/lab3-2023-2024

https://www.pololu.com/file/0J309/MQ2.pdf

Export to PDF