This shows you the differences between two versions of the page.
|
pm:prj2026:theodor_ioan.buliga:maria.salomia [2026/05/04 17:05] maria.salomia |
pm:prj2026:theodor_ioan.buliga:maria.salomia [2026/05/26 20:26] (current) maria.salomia |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ---- | ||
| =====Statie calitate aer===== | =====Statie calitate aer===== | ||
| Line 21: | Line 22: | ||
| * Senzor de praf Sharp (GP2Y1014AU0F) | * Senzor de praf Sharp (GP2Y1014AU0F) | ||
| * Modul ceas RTC (DS3231) | * Modul ceas RTC (DS3231) | ||
| - | * Modul GSM SIM800C (pentru transmitere date) | ||
| * Display LCD (16x2 cu interfata I2C) | * Display LCD (16x2 cu interfata I2C) | ||
| * LED verde (pentru stare normala) | * LED verde (pentru stare normala) | ||
| Line 29: | Line 29: | ||
| * Breadboard (pentru conexiuni) | * Breadboard (pentru conexiuni) | ||
| * Cutie de protectie pentru montaj | * Cutie de protectie pentru montaj | ||
| + | |||
| + | Componente software utilizate: | ||
| + | |||
| + | * Docker | ||
| + | * MongoDB | ||
| + | * Backend Node.js | ||
| + | * Aplicatie web pentru afisare in timp real | ||
| + | |||
| + | {{:pm:prj2026:theodor_ioan.buliga:schema_bloc.png?600|}} | ||
| + | |||
| + | ==== 2.1 Conexiunile componentelor ==== | ||
| + | |||
| + | === Senzorul de temperatura si umiditate (DHT11) === | ||
| + | |||
| + | * VCC → 5V de pe placa Arduino | ||
| + | * GND → GND de pe placa Arduino | ||
| + | * DATA → Pinul D7 de pe placa Arduino | ||
| + | |||
| + | === Senzorul de gaze MQ-135 === | ||
| + | |||
| + | * VCC → 5V de pe placa Arduino | ||
| + | * GND → GND de pe placa Arduino | ||
| + | * AO (Analog Output) → Pinul A2 de pe placa Arduino | ||
| + | |||
| + | === Senzorul de zgomot (microfon) === | ||
| + | |||
| + | * VCC → 5V de pe placa Arduino | ||
| + | * GND → GND de pe placa Arduino | ||
| + | * OUT → Pinul D6 de pe placa Arduino | ||
| + | |||
| + | === Senzorul de praf Sharp (GP2Y1014AU0F) === | ||
| + | |||
| + | * VCC → 5V de pe placa Arduino (printr-un rezistor de 150Ω) | ||
| + | * S-GND → GND de pe placa Arduino | ||
| + | * V-LED → 5V de pe placa Arduino | ||
| + | * LED-GND → GND de pe placa Arduino | ||
| + | * LED → Pinul D4 de pe placa Arduino | ||
| + | * VOUT → Pinul A0 de pe placa Arduino | ||
| + | |||
| + | === Modulul RTC (DS3231) === | ||
| + | |||
| + | * VCC → 3.3V de pe placa Arduino | ||
| + | * GND → GND de pe placa Arduino | ||
| + | * SCL → Pinul A5 de pe placa Arduino | ||
| + | * SDA → Pinul A4 de pe placa Arduino | ||
| + | |||
| + | Modulul RTC este utilizat pentru memorarea si afisarea orei exacte la care sunt realizate masuratorile. | ||
| + | |||
| + | === Display LCD 16x2 cu interfata I2C === | ||
| + | |||
| + | * VCC → 5V de pe placa Arduino | ||
| + | * GND → GND de pe placa Arduino | ||
| + | * SDA → Pinul SDA de pe placa Arduino | ||
| + | * SCL → Pinul SCL de pe placa Arduino | ||
| + | |||
| + | Display-ul LCD afiseaza in timp real valorile citite de senzori, alternand automat intre diferite informatii. | ||
| + | |||
| + | === LED verde === | ||
| + | |||
| + | * Anod (+) → Rezistor 220Ω → Pin digital Arduino D9 | ||
| + | * Catod (-) → GND | ||
| + | |||
| + | LED-ul verde indica functionarea normala a sistemului si valori sigure ale parametrilor. | ||
| + | |||
| + | === LED rosu === | ||
| + | |||
| + | * Anod (+) → Rezistor 220Ω → Pin digital Arduino D8 | ||
| + | * Catod (-) → GND | ||
| + | |||
| + | LED-ul rosu indica depasirea anumitor praguri sau valori ridicate ale poluarii. | ||
| + | |||
| + | === Comunicatia cu laptopul === | ||
| + | |||
| + | Placa Arduino este conectata la laptop prin cablu USB. Comunicatia dintre sistemul hardware si aplicatia software se realizeaza prin interfata seriala (UART over USB), utilizata pentru transmiterea datelor catre backend. | ||
| + | |||
| + | {{:pm:prj2026:theodor_ioan.buliga:schema_pm.png?600|}} | ||
| ==== 3. Functionalitate generala ==== | ==== 3. Functionalitate generala ==== | ||
| Line 45: | Line 121: | ||
| * LED-ul rosu indica valori ridicate sau periculoase | * LED-ul rosu indica valori ridicate sau periculoase | ||
| - | Display-ul LCD afiseaza informatii esentiale in timp real, precum temperatura si umiditatea sau alte valori importante. | + | Display-ul LCD afiseaza informatii esentiale in timp real, precum temperatura, umiditatea, nivelul de gaze sau ora curenta. |
| - | Datele pot fi vizualizate si intr-o aplicatie web conectata la baza de date Firebase. | + | Datele sunt transmise catre aplicatia software rulata pe laptop, unde sunt salvate intr-o baza de date locala si afisate in timp real in interfata web. |
| ==== 4. Scopul proiectului ==== | ==== 4. Scopul proiectului ==== | ||
| Line 53: | Line 129: | ||
| Scopul principal este cresterea nivelului de constientizare asupra calitatii aerului din mediul rezidential si oferirea unei solutii simple si accesibile pentru monitorizarea acestuia. | Scopul principal este cresterea nivelului de constientizare asupra calitatii aerului din mediul rezidential si oferirea unei solutii simple si accesibile pentru monitorizarea acestuia. | ||
| - | ==== 5. Transmiterea datelor prin internet (GSM + Firebase) ==== | + | ==== 5. Salvarea si afisarea datelor ==== |
| - | Pentru a permite accesul la date de oriunde, sistemul utilizeaza un modul GSM (SIM800C) care transmite informatiile colectate de senzori catre o baza de date online. | + | Pentru stocarea si vizualizarea informatiilor colectate, proiectul utilizeaza o baza de date locala rulata intr-un container Docker pe laptop. |
| === Modul de functionare === | === Modul de functionare === | ||
| Line 68: | Line 144: | ||
| * ora masuratorii | * ora masuratorii | ||
| - | Aceste date sunt apoi transmise prin intermediul modulului GSM, folosind conexiune GPRS, catre o baza de date Firebase Realtime Database. | + | Datele sunt trimise prin conexiune USB catre aplicatia backend rulata pe laptop. Backend-ul prelucreaza informatiile si le salveaza automat in baza de date locala MongoDB. |
| Transmiterea se realizeaza periodic, la un interval de aproximativ 20 de secunde. | Transmiterea se realizeaza periodic, la un interval de aproximativ 20 de secunde. | ||
| - | === Rolul cartelei SIM === | + | === Rolul bazei de date locale === |
| - | Modulul GSM functioneaza cu ajutorul unei cartele SIM active, care permite conectarea la reteaua de internet mobil. | + | Baza de date locala este utilizata pentru: |
| - | Cartela SIM este necesara pentru: | + | * salvarea istoricului masuratorilor |
| + | * acces rapid la date | ||
| + | * afisarea valorilor in timp real | ||
| + | * realizarea de grafice pentru evolutia parametrilor | ||
| - | * conectarea la internet (GPRS) | + | Utilizarea Docker permite rularea usoara si izolata a bazei de date direct pe laptop. |
| - | * trimiterea datelor catre server | + | |
| - | * functionarea autonoma a sistemului (fara laptop) | + | |
| - | === Avantajele utilizarii GSM === | + | === Aplicatia web === |
| - | * sistemul functioneaza independent de un calculator | + | Aplicatia web preia datele salvate in baza de date si le afiseaza utilizatorului intr-un mod intuitiv. |
| - | * datele pot fi accesate de la distanta | + | |
| - | * nu este nevoie de WiFi | + | |
| - | * permite monitorizare in timp real | + | |
| - | === Baza de date Firebase === | + | Datele sunt prezentate sub forma: |
| - | Datele sunt salvate intr-o baza de date online (Firebase Realtime Database), unde fiecare masuratoare este stocata separat. | + | * valori numerice in timp real |
| + | * grafice pentru evolutia temperaturii, umiditatii si nivelului de poluare | ||
| + | * afisarea ultimelor masuratori salvate | ||
| - | Structura datelor permite: | + | Astfel, utilizatorul poate observa rapid schimbarile din mediul inconjurator. |
| - | * pastrarea istoricului complet | + | {{:pm:prj2026:theodor_ioan.buliga:app_pm.png?600|}} |
| - | * afisarea ultimelor valori | + | |
| - | * realizarea de grafice in aplicatia web | + | |
| - | === Afisarea datelor === | + | === Observatie === |
| - | Datele salvate in Firebase sunt preluate de aplicatia web si afisate sub forma: | + | Sistemul functioneaza conectat la laptop prin cablu USB. In aceasta configuratie, laptopul gestioneaza comunicatia cu baza de date si aplicatia web. |
| - | * valori numerice (in timp real) | + | ==== Poza reala cu proiectul==== |
| - | * grafice pentru evolutia parametrilor | + | |
| - | Astfel, utilizatorul poate observa rapid schimbarile din mediul inconjurator. | + | {{:pm:prj2026:theodor_ioan.buliga:poza_proiect.jpeg?600|}} |
| - | === Observatie === | + | ==== 6. Bibliografie / Resurse ==== |
| + | |||
| + | * Documentatia oficiala Arduino UNO R4 | ||
| + | https://docs.arduino.cc/hardware/uno-r4-wifi/ | ||
| + | |||
| + | * Documentatia senzorului DHT11 | ||
| + | https://components101.com/sensors/dht11-temperature-sensor | ||
| + | |||
| + | * Documentatia senzorului MQ-135 | ||
| + | https://components101.com/sensors/mq135-gas-sensor-for-air-quality | ||
| + | |||
| + | * Documentatia senzorului de praf Sharp GP2Y1014AU0F | ||
| + | https://global.sharp/products/device/lineup/data/pdf/datasheet/gp2y1014au_e.pdf | ||
| + | |||
| + | * Documentatia modulului RTC DS3231 | ||
| + | https://randomnerdtutorials.com/arduino-ds3231-real-time-clock/ | ||
| + | |||
| + | * Biblioteca LiquidCrystal_I2C | ||
| + | https://github.com/johnrickman/LiquidCrystal_I2C | ||
| + | |||
| + | * Biblioteca DHT pentru Arduino | ||
| + | https://github.com/adafruit/DHT-sensor-library | ||
| + | |||
| + | * Documentatia oficiala Docker | ||
| + | https://docs.docker.com/ | ||
| + | |||
| + | * Documentatia MongoDB | ||
| + | https://www.mongodb.com/docs/ | ||
| + | |||
| + | * Documentatia Node.js | ||
| + | https://nodejs.org/en/docs | ||
| + | |||
| + | * Documentatia Express.js | ||
| + | https://expressjs.com/ | ||
| + | |||
| + | * Documentatia Chart.js | ||
| + | https://www.chartjs.org/docs/latest/ | ||
| + | |||
| + | * PlatformIO IDE | ||
| + | https://platformio.org/ | ||
| - | In lipsa cartelei SIM, sistemul poate functiona local (afisare pe LCD si Serial Monitor), dar nu va putea transmite datele catre internet. | + | * Documentatia oficiala KiCad |
| + | https://docs.kicad.org/ | ||