Table of Contents

Detector de CO2 in aer

Introducere

Acest sistem isi propune detectarea dioxidului de carbon din aer si semnalarea nivelului ridicat, daca este cazul, prin aprinderea unui led rosu. Dupa semnalare, led-ul poate fi oprit printr-o bataie din palme, fiind utilizat un senzor de sunet in acest sens.

Prezentarea pe scurt a proiectului:

  • detecteaza dioxidul de carbon din aer
  • acest detector poate fi integrat intr-un sistem automat de purificare a aerului
  • ideea cu acest proiect a pornit din curiozitate, in legatura cu sistemele de purificare a aerului
  • avand in vedere ca gradul de poluare din aer este in crestere, un astfel de detector este necesar

Descriere generală

Sistem de Detectare a CO2 cu Semnalizare LED și Oprire prin Sunet.

Acest proiect își propune să detecteze nivelul de dioxid de carbon (CO2) din aer și să semnalizeze nivelurile ridicate prin aprinderea unui LED roșu. După semnalizare, LED-ul poate fi oprit printr-o bătaie din palme, utilizând un senzor de sunet.

  • Componente Hardware:

- Arduino UNO: Placa de bază utilizată pentru controlul și procesarea semnalelor de la senzori. - MQ-2 Sensor: Senzor pentru detectarea nivelului de CO2 din aer. - KY-037 Sensor: Senzor de sunet pentru captarea sunetelor puternice, utilizat pentru oprirea LED-ului. - Red LED: Indicator vizual pentru nivelul ridicat de CO2. - 16×2 I2C LCD: Ecran pentru afișarea informațiilor despre nivelul de CO2. - Breadboard: Placă de încercare pentru realizarea conexiunilor hardware. - Fire de Conexiune: Fire tata-tata și tata-mama pentru realizarea conexiunilor între componente.

  • Funcționalități Software:

- Detectarea CO2: Citirea valorilor de la senzorul MQ-2 și maparea acestora într-un interval procentual. - Semnalizare LED: Aprinderea LED-ului roșu când nivelul de CO2 depășește un prag presetat. - Oprirea LED-ului prin Sunet: Detectarea sunetelor puternice (de ex., o bătaie din palme) cu ajutorul senzorului KY-037 și oprirea LED-ului. - Afișare pe LCD: Afișarea nivelului de CO2 și a mesajelor de avertizare pe ecranul LCD.

  • Schema bloc:

Hardware Design

In stadiul actual, toate componentele sunt conectate conform schemei atasate, partea hardware fiind in finalizata.

Componente:

  • MQ-2 sensor (co2) senzor pentru calcularea nivelului de dioxid de carbon din aer

→ GND, VCC (5V) si pinul A0 conectat la portul A0 din placuta Arduino, iar acest pin analog de iesire este folosit in vederea masurarii unui voltaj variabil care corespunde concentratiei de dioxid de carbon masurata → nivel ridicat de CO2 se aprinde led-ul rosu.

  • KY-037 sensor (senzor de sunet) pentru captarea sunetelor puternice in vederea stingerii LED-ului

→ GND, VCC (5V) si pinul A0 conectat la portul A1 din placuta Arduino, iar acest pin analog de iesire este folosit pentru analizarea unui semnal, HIGH(5V) sau LOW(0V), in functie de sunetul captat de senzor. In acest mod, prin captarea unui sunet destul de puternic (de exemplu, o bataie din palme), putem stinge LED-ul de pe breadboard.

  • LED rosu
  • Resistor 220 ohms
  • Ecran LCD 16*2 I2C

→ GND, VCC (5V), SDA (Serial Data Line) conectat la portul A4 de pe placuta Arduino, este folosit pentru a trimite si a primi date, SCL (Serial Clock Line) conectat la portul A5 de pe placuta Arduino, este folosit la sincronizarea transferului de date.

  • Breadboard
  • Arduino UNO
  • Fire tata-tata, tata-mama

Schema electrica:

Poza hardware:

Poza hardware

Poza primul exemplu utilizare:

Exemplu 1 utilizare

Poza al doilea exemplu utilizare:

Exemplu 2 utilizare

Software Design

Stadiul actual al implementării software:

  • Proiectul este într-un stadiu avansat, cu codul sursă complet implementat și funcțional. Acesta include funcționalități pentru detectarea nivelului de CO2 și a sunetului, precum și pentru afișarea informațiilor pe un LCD.
  • Motivul alegerii bibliotecilor folosite în cadrul proiectului: Biblioteca LiquidCrystal_I2C a fost aleasă pentru a facilita comunicarea cu ecranul LCD prin intermediul protocolului I2C. Aceasta simplifică programarea și reduce numărul de pini necesari.
  • Elementul de noutate al proiectului: Elementul de noutate constă în utilizarea unui senzor de sunet pentru a controla un LED în funcție de numărul de aplauze detectate.
  • Justificarea utilizării funcționalităților din laborator în cadrul proiectului: Funcționalitățile din laborator, cum ar fi citirea datelor de la senzori și afișarea lor pe un LCD, au fost utilizate pentru a crea un sistem de monitorizare a calității aerului în timp real.
  • Explicația scheletului proiectului, interacțiunea dintre funcționalități și modul în care a fost validat că acestea funcționează conform: Proiectul este structurat în două funcții principale, setup() și loop(). În setup(), se inițializează LCD-ul și se configurează pinii de intrare/ieșire. În loop(), se citesc datele de la senzorii de CO2 și de sunet, se procesează aceste date și se afișează pe LCD. Validarea a fost realizată prin testarea funcționalității fiecărui component în parte și a sistemului ca un întreg.
  • Explicația realizării calibrării elementelor de senzoristică: Calibrarea senzorilor a fost realizată prin maparea valorilor citite de la aceștia la un interval de procente. De exemplu, pentru senzorul de CO2, valorile citite sunt mapate la un interval de la 0 la 100%.
  • Explicația realizării optimizărilor: Optimizările au fost realizate prin utilizarea eficientă a memoriei și a timpului de procesare. De exemplu, pentru detectarea aplauzelor, se folosește o variabilă statică pentru a reține nivelul de sunet anterior, reducând astfel necesitatea de a stoca toate valorile de sunet.

Am folosit urmatoarele elemente din laboratoare:

1. GPIO: Folosit pentru controlul LED-ului roșu și senzorul de sunet.

Configurarea pinului pentru LED și senzor de sunet:

  • pinMode(SoundA1, INPUT); Set SoundA1 as input
  • pinMode(ledPin, OUTPUT); Set ledPin as output

Controlul LED-ului:

  • digitalWrite(ledPin, HIGH); Turn on LED
  • digitalWrite(ledPin, LOW); Turn off LED

2. ADC (Analog-to-Digital Converter): Folosit pentru citirea valorilor analogice de la senzorul MQ-2 (CO2).

Citirea valorii de la senzorul MQ-2:

  • int analogSensorCO2 = analogRead(CO2A0); Read from A0

Maparea valorii citite la un interval procentual:

  • CO2value = map(analogSensorCO2, 0, 1023, 0, 100); CO2 module sensitivity

3. I2C: Folosit pentru comunicarea cu ecranul LCD 16×2 I2C.

Inițializarea și configurarea LCD-ului:

  • lcd.init();
  • lcd.backlight();

Scrierea pe ecranul LCD:

  • lcd.setCursor(0, 0);
  • lcd.print(“Initializing… ”); Initialization message

  • lcd.setCursor(12, 1);
  • lcd.print(i);
  • lcd.print(”% ”);

  • lcd.clear();

  • lcd.setCursor(0, 0);
  • lcd.print(“CO2 Level:”);
  • lcd.setCursor(11, 0);
  • lcd.print(CO2value);
  • lcd.print(”% ”);

  • lcd.setCursor(0, 1);
  • lcd.print(“DANGER! ”);
  • lcd.write(2); Display sad face

  • lcd.setCursor(0, 1);
  • lcd.print(“BAD! ”);
  • lcd.write(2); Display sad face

  • lcd.setCursor(0, 1);
  • lcd.print(“NORMAL ”);
  • lcd.write(1); Display smiley face

  • lcd.clear();
  • lcd.setCursor(0, 0);
  • lcd.print(“Purificator”);
  • lcd.setCursor(0, 1);
  • lcd.print(“started!”);

  • lcd.clear();

Rezultate Obţinute

Rezultatele obtinute pot si vizualizate aici: https://youtube.com/shorts/p1jc6qUGp5c

Concluzii

Acest proiect demonstrează o soluție eficientă și accesibilă pentru monitorizarea și controlul calității aerului în spații închise. Sistemul poate detecta și semnaliza(prin aprindere led rosu) nivelurile periculoase de CO2 și poate fi integrat intr-un sistem de purificare a aerului: printr-o bataie din palme se stinge led-ul rosu si porneste purificarea aerului.

Download

Codul se poate descarca: sketch_may27a.zip

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF