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.
Why Low-Cost Sensors Matter
The EPA and state agencies typically maintain one air quality monitoring station per 100+ square miles in urban areas. These stations are highly accurate but expensive (~$100K per station) and capture only regional averages. Community mesh nodes with low-cost sensors ($50-200 per node) can provide neighborhood-level data that reveals hotspots, traffic corridors, and industrial emission events invisible to the regional monitoring network.
Sensor Options for Air Quality
| Parameter | Sensor | Cost | Accuracy | Notes |
|---|---|---|---|---|
| PM2.5 / PM10 | Plantower PMS5003 or SDS011 | $15-25 | ±10 µg/m³ | Most important for health; needs temperature correction |
| CO₂ | Sensirion SCD40 or SCD41 | $35-50 | ±50 ppm | True NDIR sensor; accurate without calibration |
| VOCs | SGP30 or SGP41 | $15-20 | Semi-quantitative | Good for trend and event detection; not precise absolute levels |
| NO₂ / O₃ | Spec Sensors electrochemical | $50-100 each | ±20 ppb | Higher cost; good for near-road monitoring |
| Temp + Humidity | BME280 or SHT31 | $3-8 | ±0.5°C, ±3% RH | Essential for correcting PM sensor readings |
Building a PM2.5 Monitoring Node
# Hardware: RAK4631 + RAK1906 (BME680) + external PMS5003
# Connect PMS5003 to UART on RAK19007 base board
# RAK1906 provides temperature/humidity for PM correction
# MeshCore SENSOR firmware sends telemetry packets
# Meshtastic: use Telemetry module with custom I2C sensor support
# Or: use ESP32 (T-Beam) running custom Arduino firmware that
# packages PMS5003 + BME280 data into Meshtastic environment telemetry format
# Meshtastic custom telemetry (advanced):
# Modify device firmware to include PMS5003 data in telemetry packets
# Or: use a Raspberry Pi co-processor that reads PMS5003 via UART
# and injects formatted messages into the mesh via Python API
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: 5-15 minutes (PM sensors need averaging to reduce noise)
- 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 nearest EPA monitoring station for 2-4 weeks to develop calibration coefficients
No comments to display
No comments to display