Skip to main content

Air Quality and Environmental Monitoring Networks

Urban air quality monitoring is an underserved application for community mesh networks. Low-cost sensor nodes can build hyperlocal air quality maps that government monitoring stations - typically spaced miles apart - cannot provide. Keep in mind throughout that low-cost air-quality sensors are not regulatory- or reference-grade: their readings are indicative and supplementary, not authoritative.

Why Low-Cost Sensors Matter

Regulatory air quality monitors are sparse - often only a handful per metropolitan area - so a single station may represent tens of square miles (see EPA AQS network design criteria, 40 CFR Part 58 App. D). Regulatory reference monitors cost roughly $15K-$40K each, and a fully-equipped multi-pollutant station including siting and maintenance can run into the six figures; each represents a wide catchment area. Community mesh nodes with low-cost sensors (roughly $50-200 per node as a BOM estimate) can provide neighborhood-level data that reveals hotspots, traffic corridors, and industrial emission events invisible to the regional monitoring network. Community low-cost-sensor networks such as PurpleAir have demonstrated this hyperlocal value, but their readings are indicative rather than reference-grade.

Sensor Options for Air Quality

ParameterSensorCostAccuracyNotes
PM2.5 / PM10Plantower PMS5003 or SDS011$15-25SDS011 ≈ max(±15%, ±10 µg/m³)Most important for health; needs temperature correction. PMS5003 has no published absolute-accuracy spec, only consistency. Both are UART sensors - see the build note below on Meshtastic support.
CO₂Sensirion SCD40 or SCD41$35-50±(50 ppm + 5% of reading)True NDIR sensor; factory-calibrated, but relies on periodic fresh-air exposure (automatic self-calibration) to hold long-term accuracy.
VOCsSGP30 or SGP41$15-20Semi-quantitativeGood for trend and event detection; not precise absolute levels
NO₂ / O₃SPEC Sensors electrochemical$50-100 each±20 ppb (see SPEC Sensors datasheet)Higher cost; good for near-road monitoring. Electrochemical sensors drift over time and need temperature/humidity compensation.
Temp + HumidityBME280$3-8±0.5°C, ±3% RHEssential for correcting PM sensor readings
Temp + HumiditySHT31$3-8±0.3°C, ±2% RHMore accurate alternative for PM correction

Building a PM2.5 Monitoring Node

The following is a design sketch, not a turnkey recipe. The PMS5003 and SDS011 are UART laser particulate sensors, and stock Meshtastic's Telemetry module does not support them. For particulate matter in stock Meshtastic, use the I2C PMSA003I (I2C address 0x12), which the Telemetry module's air-quality metrics path supports. A UART PMS5003 requires custom firmware or a separate MCU/co-processor that injects readings into the mesh.

# Hardware: RAK4631 + RAK1906 (BME680) for temp/humidity correction
# For stock Meshtastic PM support, use the I2C PMSA003I (addr 0x12),
# NOT the UART PMS5003/SDS011 (those are not natively supported).

# Path A (recommended, no custom firmware):
#   PMSA003I (I2C) on a Meshtastic node -> AirQualityMetrics telemetry

# Path B (UART PMS5003): requires a co-processor or custom firmware.
#   Meshtastic environment telemetry uses fixed protobuf fields, so a
#   raw PMS5003 needs either:
#   - an ESP32 (e.g. T-Beam) running custom Arduino firmware that reads
#     PMS5003 + BME280 over UART/I2C and formats the data, or a custom
#     portnum, or
#   - a Raspberry Pi co-processor reading PMS5003 via UART and injecting
#     messages into the mesh via the Meshtastic Python API (see the
#     Meshtastic Python API send-message docs; clarify whether you send
#     plain text or structured telemetry).
# MeshCore note: there is no deployable "SENSOR firmware" that broadcasts
# PM telemetry; treat the working paths above as the only buildable ones.

Community Air Quality Network Design

For a neighborhood-scale (10-50 node) air quality network:

  • Spatial coverage: 1 node per 0.5-1 km² in residential areas; denser near industrial sources and major roads
  • Transmission interval: a recommended 5-15 minutes (PM sensors need averaging to reduce noise; see EPA sensor-performance guidance on averaging)
  • Data aggregation: Central room server or MQTT gateway with InfluxDB backend
  • Public dashboard: Grafana public dashboard showing real-time map (use Leaflet.js for geographic visualization)
  • Calibration: Collocate 2-3 nodes with the nearest EPA monitoring station to develop calibration coefficients. Per EPA Air Sensor Toolbox collocation guidance, recommended collocation can run weeks to months and ideally spans multiple seasons.

Community Value and Partnerships

  • Share data with PurpleAir, AirNow, or OpenAQ platforms for broader visibility
  • Partner with local universities for calibration studies and data analysis
  • Provide data to neighborhood environmental justice organizations
  • Submit findings to local air quality district as citizen science data

Important: low-cost PM and gas sensors are not regulatory-grade. Readings require collocation/calibration and should always be presented as indicative, supplementary data - not as authoritative air-quality measurements. Do not use uncalibrated node readings as the basis for individual health decisions; defer to official AirNow/EPA data for that.