Skip to main content
Version: ACS CC

AeroGuard

Monitor Solar de Poluare Atmosferica cu GPS

info

Author: Defta Ovidiu 344C2
GitHub Project Link: UPB-PMRust-Students/acs-project-2026-odefta

Description

Sistem portabil de monitorizare a calitatii aerului, alimentat solar. Achizitioneaza periodic date de la senzori de particule in suspensie (PM2.5/PM10), gaze (NOx, CO, VOC), temperatura si umiditate, corelate cu coordonate GPS si timestamp. Datele sunt stocate local pe card microSD in format JSON si expuse printr-un server web embedded via WiFi, prin endpoint-uri REST. O aplicatie mobila consuma API-ul si afiseaza grafice de poluare, pozitia pe harta si nivelul bateriei. Sistemul functioneaza autonom prin alimentare solara cu modul de incarcare si baterie Li-Ion.

Motivation

Statiile de monitorizare a calitatii aerului sunt rare si costisitoare, iar datele publice au granularitate scazuta. AeroGuard propune o solutie portabila, autonoma energetic, care permite monitorizarea locala a poluarii si vizualizarea datelor in timp real printr-o aplicatie mobila.

Architecture

Log

Week 5 - 11 May

Week 12 - 18 May

Week 19 - 25 May

Hardware

Microcontrolerul STM32 citeste date de la senzorii de calitate a aerului prin I2C (BME280, SGP40), UART (PMS5003, NEO-6M) si ADC (MICS-4514). Datele sunt stocate pe card microSD via SPI. Comunicatia WiFi se realizeaza printr-un modul ESP conectat prin UART.

Alimentarea se face printr-un panou solar 5V/1W conectat la un modul de incarcare TP4056, care incarca o baterie Li-Ion 18650. Nivelul bateriei este monitorizat prin ADC.

Schematics

Bill of Materials

DeviceUsagePrice
STM32 (TBD)Microcontroler principalTBD
ESP module (TBD)Comunicatie WiFiTBD
PMS5003Senzor particule PM2.5/PM10TBD
MICS-4514Senzor NOx/COTBD
SGP40Senzor VOCTBD
BME280Senzor temperatura/umiditateTBD
NEO-6MModul GPSTBD
Card microSD + cititor SPIStocare dateTBD
Panou solar 5V/1WAlimentareTBD
TP4056Modul incarcareTBD
Baterie Li-Ion 18650Stocare energieTBD

Software

LibraryDescriptionUsage
embassy-rsFramework async pentru microcontrolereRuntime si task-uri async
embassy-stm32Suport Embassy pentru STM32Acces hardware low-level
embassy-timeFunctionalitati de timpTimere si delay-uri
embassy-netStack de reteaComunicatie TCP/IP
embedded-halAbstractizari hardwareInterfete I2C, SPI, UART, ADC
serde / serde_json_coreSerializare/deserializareFormat JSON pentru date si API
embedded-sdmmcSuport card microSDStocare fisiere FAT32
bme280Driver BME280Citire temperatura/umiditate
nmea0183Parser date GPSParsare coordonate NMEA
defmtLogging embeddedDebug si logging
heaplessStructuri de date fara alocare dinamicaBuffere si colectii no_std
  1. Embassy-rs Documentation
  2. PMS5003 Datasheet
  3. BME280 Datasheet
  4. SGP40 Datasheet