Powered Air Quality, aka PAQ, samples and displays temperature, humidity, CO2 (carbon dioxide), and air particulate levels. If PAQ is connected to WiFi, it can log this information to a number of network endpoints, and it displays local outdoor weather and air quality information to compliment the indoor sensor information. PAQ requires an AC power source.
PAQ was created to answer three primary questions:
- Is the co2 level in the room good?
- What is the particulate count in the air outside, and how much of that got into the room? This is particularly relevant during fire season.
- When we use the gas stove or the central heater, how does it change our indoor air quality?
PAQ has a number of sibling projects that share many common hardware and code attributes. Those are:
- Air Quality has the same functionality as PAQ minus air particulate measurement. It is powered by a battery
- RCO2 is a small, portable version of Air Quality that only samples and displays air quality levels.
- Badge is RCO2 in a badge form factor capable of displaying additional information beyond air quality levels.
- Set parameter configuration using config.h
- Private configuration settings including WiFi SSID/password and network endpoint credentials are contained in a
secrets.h
file that is not included in this repo. Instead you'll find the filesecrets_template.h
, which should be copied tosecrets.h
and then edited to supply the right access credentials and configuration values to match your deployment environment.
- [CYD (Cheap Yellow Display)])(https://github.com/witnessmenow/ESP32-Cheap-Yellow-Display/tree/main). This is an inexpensive ESP32 prototype board with a built-in screen.
- Arduino IDE should be told to target the "ESP32 Dev Module" board, which you can find once you install the ESP32 BSP
- Code is portable to any ESP32 MCU
- [CYD (Cheap Yellow Display)])(https://github.com/witnessmenow/ESP32-Cheap-Yellow-Display/tree/main). This is an inexpensive ESP32 prototype board with a built-in screen.
- Code is portable to any ESP32 MCU
- SCD40 temp/humidity/CO2 sensor can use any SCD40 connected over i2c
- Particulate sensor over i2c
- Sensirion SEN54
- Plantower PMSA003I
- this sensor does not provide as much particulate information as the SEN54. Code support is still included but is commented out in the current release.
- [CYD (Cheap Yellow Display)])(https://github.com/witnessmenow/ESP32-Cheap-Yellow-Display/tree/main). This is an inexpensive ESP32 prototype board with a built-in screen.
- any screen with ILI9341 driver
- None at this time.
- Connected through Stemma QT cable to SEN5X adapter board
- Connected to CYD through a custom cable and SEN54 to Adafruit SEN5x to i2c adapter board
- CYD connector is JST 1.25mm pitch 4 pin
- Adafruit connector is JST SH 1.0mm pitch 4 pin
- I cut the male breadboard ends off this Adafruit cable to get the appropriate second part of the cable
- This custom cable attaches to CYD connector CN1
- GND to GND
- GPIO 22 to SDA (often Blue) pin
- GPIO 27 to SCL (often Yellow) pin
- 3.3v to 3.3v
- uncomment #define MQTT in config.h
- set appropriate parameters in config.h and secrets.h
- Technical References
- AI: ADD DOCUMENTATION
- AI: ADD DOCUMENTATION
- ArduinoJson by Benoit Blanchon
- Adafruit ILI9341 (and dependencies)
- Sensirion I2C SEN5X (and dependencies)
- Sensirion I2C SCD4x (and dependencies)
- ESP8266 Influxdb by Tobias Schurg (which also works for ESP32 despite the name)
- WiFI Manager support
- OTA firmware update support
- button support to cycle through multiple information screens
We currently use the following scale, which is modifiable in config.h:
- <800 - Good
- 800-999 - So-So
- 1000+ - Poor
- US NIOSH (1987) recommendations:
- 250-350 ppm - normal outdoor ambient concentrations
- 600 ppm - minimal air quality complaints
- 600-1,000 ppm - less clearly interpreted
- 1,000 ppm - indicates inadequate ventilation; complaints such as headaches, fatigue, and eye and throat irritation will be more widespread; 1,000 ppm should be used as an upper limit for indoor levels
- CO2 sensor types
- SCD40 sensor
- AQI Overview
- https://en.wikipedia.org/wiki/Air_quality_index#CAQI
- Open Weather Map Air Pollution API
- OSHA Air Quality
- Great site for air quality info
- NYT on indoor gas stoves
We currently use the following scale, which is modifiable in config.h:
- 0-25 : "Good" : Green
- 26-50 : "Fair" : Yellow
- 51-150 : "Poor" : Orange
- 151+ : "Bad" : Red
Options:
Sensirion documentation on VOC
We currently use the following scale, which is modifiable in config.h:
- 0-150 : "Good" : Green
- 151-250 : "Fair" : Yellow
- 251-400 : "Poor" : Orange
- 401+ : "Bad" : Red