Source code and documentation for an experimental air quality sensor node based
on the Raspberry Pi series and low-cost retail sensors. Measurements are made
every 10 seconds and recorded to local storage in tab-separated (TSV) files.
Data are also exported to temporary files for integration with
RPi Monitor and scp
-based scraping
tools (e.g. the Itron Cloud service agent).
This project is currently being adapted to support multiple platforms, with multiple sensor configurations:
Original prototype | Next generation | |
---|---|---|
Git branch name | pi0-usb |
master |
Base platform | Pi Zero | Pi 3 |
Operating system | Raspbian Lite (Jessie) | Raspbian Lite (Stretch) |
Data communications | USB network interface | Wi-Fi or cellular (2/3G) (FONA 808) |
Clock source | RTC (DS3231) | GPS (Ultimate GPS) |
Analog-to-digital converter | n/a | ? (2ch, diff: ADS1115) |
- | - | - |
Carbon dioxide conc. (CO2) | ✓ (K30) | ✓ (K30) |
Particulate conc. (PM1/2.5/10) | ✓ (OPC-N2) | ✓ (OPC-N2) |
Ozone conc. (O3) | ✗ | ? (OX-B431) |
Nitrogen dioxide conc. (NO2) | ✗ | ? (NO2-B43F) |
Ambient air temp. | ✓ (HTU21DF) | ✓ (BME280) |
Ambient relative humidity | ✓ (HTU21DF) | ✓ (BME280) |
Barometric pressure | ✓ (BMP280) | ✓ (BME280) |
Enclosure (internal) temp. | ✓ (BMP280) | ✗ |
Location (GPS coordinates) | ✗ | ✓ GPS (Ultimate GPS) |
Also, a relevant excerpt from optical particle counter user manual:
"The accepted international standard definitions of particle mass loadings in the air are PM1, PM2.5 and PM10. These definitions relate to the mass and size of particles that would be inhaled by a typical adult. So, for example, PM2.5 is defined as ‘particles which pass through a size-selective inlet with a 50% efficiency cut-off at 2.5 μm aerodynamic diameter’. The 50% cut-off indicates that a proportion of particles of larger than 2.5 μm will be included in PM2.5, the proportion decreasing withincreasing particle size, in this case out to approximately 10 μm particles."
A few test data sets are available here. You can view example code in the Jupyter notebook "Validation Testing" directly in Github, or to see/interact with the Bokeh plots too, open locally with Jupyter or render it using nbviewer.jupyter.org.
- Bench test (Dec 4-5, 2016)
- Roof test #1 (Dec 5-6, 2016)
- Roof test #2 (Dec 14, 2016 - Jan 9, 2017)
This work licensed under The MIT License.
- Alphasense. Alphasense User Manual OPC-N2 Optical Particle Counter. Revision Apr 2015. Online: http://web.archive.org/web/20161203001923/http://staging1.unep.org/uneplive/media/docs/air_quality/aqm_document_v1/Blue%20Print/Components/Microcomputer%20and%20sensors/B.%20Dust%20Sensor%20Specifications/B.1%20Alphasense%20OPC%20N1/072-0300%20OPC-N2%20manual%20issue%203.pdf