Determinarea calității aerului

Introducere

Prezentarea pe scurt a proiectului vostru:

  • Proiectul monitorizează calitatea aerului folosind un senzor MQ135 și afișează nivelul de poluare pe un display OLED. În plus, sistemul oferă semnalizare prin LED-uri, iar în caz de poluare ridicată trimite o notificare prin Bluetooth pe telefonul utilizatorului.
  • Scopul proiectului este de a oferi un sistem simplu și accesibil pentru detectarea timpurie a aerului poluat, contribuind astfel la protejarea sănătății utilizatorilor.
  • Ideea de la care am pornit a fost creșterea alarmantă a nivelului de poluare din mediul urban și necesitatea de a avea un mijloc personal de avertizare asupra calității aerului pe care îl respirăm zilnic.
  • Cred că acest proiect este util deoarece crește gradul de conștientizare privind mediul înconjurător și poate ajuta la luarea unor măsuri rapide în cazul unor condiții de aer nesănătos, protejând astfel sănătatea pe termen lung.

Determinarea calității aerului

Introducere

Prezentarea pe scurt a proiectului vostru:

  • Proiectul monitorizează calitatea aerului folosind un senzor MQ135 și afișează nivelul de poluare pe un display OLED. În plus, sistemul oferă semnalizare prin LED-uri, iar în caz de poluare ridicată trimite o notificare prin Bluetooth pe telefonul utilizatorului.
  • Scopul proiectului este de a oferi un sistem simplu și accesibil pentru detectarea timpurie a aerului poluat, contribuind astfel la protejarea sănătății utilizatorilor.
  • Ideea de la care am pornit a fost creșterea alarmantă a nivelului de poluare din mediul urban și necesitatea de a avea un mijloc personal de avertizare asupra calității aerului pe care îl respirăm zilnic.
  • Cred că acest proiect este util deoarece crește gradul de conștientizare privind mediul înconjurător și poate ajuta la luarea unor măsuri rapide în cazul unor condiții de aer nesănătos, protejând astfel sănătatea pe termen lung.

Descriere generală

Proiectul realizat monitorizează calitatea aerului din mediu folosind un senzor MQ135. Valoarea citită este afișată pe un ecran OLED, iar nivelul poluării este semnalizat vizual cu ajutorul a trei LED-uri, ce simulează unul RGB. Se trimit notificări către telefon prin BTE.

Senzorul MQ135 detectează nivelul de poluare și trimite o valoare analogică către ESP32, prin pinul GPIO34.

ESP32 citește această valoare, o procesează, apoi: Afișează valoarea numerică și un mesaj corespunzător pe display-ul OLED. Aprinde LED-urile în funcție de cât de poluat este aerul, culoarea cu cât fiind mai roșie, aerul cu atât fiind mai poluat. La capătul opus, verde reprezintă aer curat.

===== Hardware Design =====

Toate componentele au fost achiziționate de pe eMAG

perc30.jpg

===== Software Design =====

=== Descrierea codului aplicației (firmware) === Proiectul constă într-un sistem embedded realizat cu microcontrolerul ESP32 care monitorizează calitatea aerului folosind senzorul MQ135. Sistemul afișează datele în două moduri alternative pe un display OLED SPI 128×64: scor numeric cu interpretare și grafic în timp real. Modul de afișare poate fi schimbat prin apăsarea butonului BOOT.

Valoarea calității aerului este transmisă și prin Bluetooth Low Energy (BLE) către un dispozitiv mobil conectat, iar starea este indicată și prin LED-uri RGB controlate prin PWM – generând un gradient de la roșu (aer poluat) la verde (aer curat).

=== Mediu de dezvoltare ===

  • PlatformIO în Visual Studio Code
  • Framework: Arduino pentru ESP32

=== Librării și surse 3rd-party ===

  • Adafruit GFX Library – pentru desenarea graficelor și textului
  • Adafruit SSD1306 – pentru controlul display-ului OLED SPI
  • ESP32 BLE Arduino – pentru comunicația BLE

=== Algoritmi și structuri implementate ===

  • Buffer circular cu 128 de elemente pentru istoricul valorilor senzorului
  • PWM pe două canale hardware pentru LED-urile roșu și verde
  • Comutare între moduri de afișare cu butonul BOOT
  • Mapare valori senzor pentru afișare pe axa Y și intensitate LED-uri
  • Afișare grafică cu axe X (timp) și Y (valoare), inclusiv etichete la fiecare 5 secunde

=== Etapa 3 – Surse și funcții implementate ===

  • Fișier principal: `main.cpp`
  • Funcții principale:
    • `setup()` – inițializează OLED, PWM, BLE și butonul
    • `loop()` – citire senzor, actualizare LED, transmitere BLE, afișare
    • `afiseazaScor()` – scor numeric și interpretare textuală
    • `afiseazaGrafic()` – grafic în timp real cu axe și legendă
  • LED-uri controlate cu `ledcSetup()` și `ledcWrite()`
  • Axa X marcată din 5 în 5 secunde, iar axa Y cu praguri 0 / 2k / 4k
  • BLE configurat pentru notificări folosind `ESP32 BLE Arduino`

=== Surse utilizate și resurse consultate ===

===== Rezultate Obținute =====

  • Afișare scor și grafic al calității aerului pe OLED SPI
  • Comutare mod afișare cu buton BOOT
  • LED-uri cu gradient de la roșu (poluat) la verde (curat)
  • Afișare grafică clară cu axe și etichete temporale
  • Notificări BLE în timp real către telefon
  • Sistem autonom, stabil, și estetic

===== Concluzii =====

Proiectul a demonstrat integrarea cu succes a unui senzor analog cu componente digitale și comunicație BLE, folosind ESP32. Codul este modular și extensibil, fiind o bază solidă pentru aplicații de monitorizare ambientală. A reprezentat o experiență practică valoroasă în dezvoltarea embedded, cu accent pe afișare grafică, interacțiune utilizator și comunicare wireless.

===== Bibliografie/Resurse =====

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

Export to PDF

pm/prj2025/vradulescu/andrei.cojocaru0811.txt · Last modified: 2025/05/25 18:21 by andrei.cojocaru0811
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