This shows you the differences between two versions of the page.
pm:prj2024:avaduva:ioana.ciobotea [2024/05/27 01:29] ioana.ciobotea [Software Design] |
pm:prj2024:avaduva:ioana.ciobotea [2024/05/27 11:08] (current) ioana.ciobotea [Descriere generală] |
||
---|---|---|---|
Line 14: | Line 14: | ||
<note tip> | <note tip> | ||
- | Sistem de Detectare a CO2 cu Semnalizare LED și Oprire prin Sunet | + | 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. | 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. | ||
Line 30: | Line 31: | ||
- Oprirea LED-ului prin Sunet: Detectarea sunetelor puternice (de ex., o bătaie din palme) cu ajutorul senzorului KY-037 și oprirea LED-ului. | - 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. | - Afișare pe LCD: Afișarea nivelului de CO2 și a mesajelor de avertizare pe ecranul LCD. | ||
+ | |||
+ | * Schema bloc: | ||
+ | {{:pm:prj2024:avaduva:schema_bloc_ioana.png?200|}} | ||
</note> | </note> | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
- | In stadiul actual, toate componentele sunt conectate conform schemei atasate, partea hardware fiind in stadiu final. | + | In stadiul actual, toate componentele sunt conectate conform schemei atasate, partea hardware fiind in finalizata. |
<note tip> | <note tip> | ||
Line 49: | Line 53: | ||
* Arduino UNO | * Arduino UNO | ||
* Fire tata-tata, tata-mama | * Fire tata-tata, tata-mama | ||
- | </note> | + | |
+ | Schema electrica: | ||
{{:pm:prj2024:avaduva:schema_electrica_ioana_modificata.jpg?200|}} | {{:pm:prj2024:avaduva:schema_electrica_ioana_modificata.jpg?200|}} | ||
+ | |||
+ | Poza hardware: | ||
+ | |||
{{:pm:prj2024:avaduva:hardware_ioana.png?200|Poza hardware}} | {{:pm:prj2024:avaduva:hardware_ioana.png?200|Poza hardware}} | ||
+ | |||
+ | Poza primul exemplu utilizare: | ||
+ | |||
{{:pm:prj2024:avaduva:exemplu1_ioana.png?200|Exemplu 1 utilizare}} | {{:pm:prj2024:avaduva:exemplu1_ioana.png?200|Exemplu 1 utilizare}} | ||
+ | |||
+ | Poza al doilea exemplu utilizare: | ||
+ | |||
{{:pm:prj2024:avaduva:exemplu2_ioana.png?200|Exemplu 2 utilizare}} | {{:pm:prj2024:avaduva:exemplu2_ioana.png?200|Exemplu 2 utilizare}} | ||
+ | </note> | ||
===== Software Design ===== | ===== Software Design ===== | ||
Line 70: | Line 85: | ||
- | Am folosit urmatoarele elemente din laboratoare: | + | **Am folosit urmatoarele elemente din laboratoare:** |
1. GPIO: Folosit pentru controlul LED-ului roșu și senzorul de sunet. | 1. GPIO: Folosit pentru controlul LED-ului roșu și senzorul de sunet. | ||
+ | |||
Configurarea pinului pentru LED și senzor de sunet: | Configurarea pinului pentru LED și senzor de sunet: | ||
- | * pinMode(SoundA1, INPUT); | + | * pinMode(SoundA1, INPUT); Set SoundA1 as input |
- | * pinMode(ledPin, OUTPUT); | + | * 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 16x2 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(); | ||
</note> | </note> | ||
Line 87: | Line 165: | ||
===== Concluzii ===== | ===== 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 ===== | ===== Download ===== | ||
- | <note warning> | + | <note> |
+ | Codul se poate descarca: | ||
+ | {{:pm:prj2024:avaduva:sketch_may27a.zip|}} | ||
</note> | </note> | ||