Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2025:vradulescu:andrei.cojocaru0811 [2025/05/16 16:42]
andrei.cojocaru0811 created
pm:prj2025:vradulescu:andrei.cojocaru0811 [2025/05/25 18:21] (current)
andrei.cojocaru0811 [Descriere generală]
Line 1: Line 1:
 +======Determinarea calității aerului ======
 +===== Introducere =====
 +
 +<note tip>
 +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.
 +</​note>​
 ======Determinarea calității aerului ====== ======Determinarea calității aerului ======
 ===== Introducere ===== ===== Introducere =====
Line 15: Line 28:
  
 <note tip> <note tip>
-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. Se trimit notificări către telefon prin Bluetooth.+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. Senzorul MQ135 detectează nivelul de poluare și trimite o valoare analogică către ESP32, prin pinul GPIO34.
Line 21: Line 34:
 ESP32 citește această valoare, o procesează,​ apoi: ESP32 citește această valoare, o procesează,​ apoi:
 Afișează valoarea numerică și un mesaj corespunzător pe display-ul OLED. Afișează valoarea numerică și un mesaj corespunzător pe display-ul OLED.
-Aprinde ​unul dintre cele 3 LED-uri în funcție de cât de poluat este aerul+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.
-LED verde → aer curat +
-LED albastru → aer acceptabil +
-LED roșu → aer periculos+
  
-Dacă se detectează o valoare foarte ridicată, se poate trimite o notificare prin Bluetooth BLE către un telefon. 
  
  
Line 33: Line 42:
 ===== Hardware Design ===== ===== Hardware Design =====
  
-<note tip> +^ Componenta ​    ​^ ​               ​ 
-Aici puneţi tot ce ţine de hardware design: +| [[https://www.olimex.com/​Products/​Components/​Sensors/​Gas/​SNS-MQ135/​resources/​SNS-MQ135.pdf|MQ-135]] ​ |  
-  * listă de piese +| [[https://www.alldatasheet.com/html-pdf/​1148027/​ESPRESSIF/​ESP32-WROOM-32D/​9289/​16/​ESP32-WROOM-32D.html |ESP32]] ​    ​| ​ 
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri,​ e.ghttp://www.captain.at/electronic-atmega16-mmc-schematic.png) +| [[https://​cdn.velleman.eu/​downloads/​29/​infosheets/​sh1106_datasheet.pdf|display OLED]] ​    |  
-  * diagrame ​de semnal ​ +//Toate componentele au fost achiziționate ​de pe// **eMAG** 
-  ​* rezultatele simulării + 
-</​note>​+{{schema999.png ​ ??​250x180 ​ }}   
 +{{  COMUNICARI999.png ??​250x180}} 
 +{{perc30.jpg??​250x200}} 
 +\\ 
 +\\
  
 ===== Software Design ===== ===== 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 128x64: scor numeric cu interpretare și grafic în timp real. Modul de afișare poate fi schimbat prin apăsarea butonului BOOT.
  
-<note tip> +Valoarea calității aerului este transmisă și prin Bluetooth Low Energy ​(BLEcătre un dispozitiv mobil conectatiar starea este indicată șprin LED-uri RGB controlate prin PWM – generând un gradient de la roșu (aer poluatla verde (aer curat).
-Descrierea codului aplicaţiei ​(firmware)+
-  * mediu de dezvoltare (if any) (e.g. AVR StudioCodeVisionAVR) +
-  * librării şsurse 3rd-party (e.g. Procyon AVRlib) +
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +
-  * (etapa 3surse şi funcţii implementate +
-</​note>​+
  
-===== Rezultate Obţinute =====+=== Mediu de dezvoltare ​=== 
 +  * PlatformIO în Visual Studio Code 
 +  * Framework: Arduino pentru ESP32
  
-<note tip> +=== Librării și surse 3rd-party === 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +  * Adafruit GFX Library – pentru desenarea graficelor și textului 
-</​note>​+  * Adafruit SSD1306 – pentru controlul display-ului OLED SPI 
 +  * ESP32 BLE Arduino – pentru comunicația BLE
  
-===== Concluzii =====+=== 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
  
-===== Download =====+=== 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`
  
-<note warning> +=== Surse utilizate și resurse consultate === 
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectuluisurse, scheme, etcUn fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).+  * https://github.com/​adafruit/​Adafruit_SSD1306 
 +  * https://​github.com/​adafruit/​Adafruit-GFX-Library 
 +  * https://​github.com/​nkolban/​ESP32_BLE_Arduino 
 +  * https://​randomnerdtutorials.com/​esp32-ble-server-arduino-ide/​ 
 +  * https://​randomnerdtutorials.com/​esp32-oled-display-arduino-ssd1306/​ 
 +  * https://​docs.espressif.com/​projects/​esp-idf/​en/​latest/​esp32/​ 
 +  * Forumuri: Arduino, ESP32, StackOverflow
  
-Fişierele se încarcă pe wiki folosind facilitatea ​**Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:​pm:​prj20??:​c?** sau **:​pm:​prj20??:​c?:​nume_student** (dacă este cazul). ​**Exemplu:** Dumitru Alin331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. +===== Rezultate Obținute ===== 
-</​note>​+  * 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 tre telefon 
 +  ​Sistem autonomstabil, și estetic
  
-===== Jurnal ​=====+===== Concluzii ​=====
  
-<note tip> +Proiectul a demonstrat integrarea cu succes a unui senzor analog cu componente digitale școmunicație BLE, folosind ESP32. Codul este modular ​și extensibil, fiind 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.
-Putețavea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. +
-</​note>​+
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
pm/prj2025/vradulescu/andrei.cojocaru0811.1747402926.txt.gz · Last modified: 2025/05/16 16:42 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