Skip to content

Home-built Air Quality Monitor - CO2, Gas (NOx, VOC), Particulates, Temperature, Humidity, Pressure and Ambient Light

License

Notifications You must be signed in to change notification settings

WesleyE/AirQuality_Monitor

Repository files navigation

AirQuality V3

What is the AirQuality V3?

The AirQuality V3 is an air quality sensor made from scratch. I wanted a cheaper sensor than the commercially available options, but more capabilities than the open-source options like AirGradient. It also gave me a good project to continue on my journey to learn more on developing electronics and embedded software.

The sensor periodically polls the sensors (as per the datasheets) and publishes the new values to a MQTT topic. Home Assistant is then able to pick up the values automatically trough auto-discovery. OTA updates and configuration is supported trough a web interface.

This repository houses the source code, BOM, for the AirQuality V3 and the KiCad files.

Cost

Cost for all components for a single board is about $53. Most expensive components are the PMS5003 ($17), SenseAir S8 ($18), the SGP41 gas sensor ($7) and the ESP32-S3 ($4.7). The 4-layer PCB itself strongely depends on how many you order, but is around $4 per PCB, brining the total cost per Air Quality sensor to $57.

Sensors

Building the code

  1. Init the submodules: git submodule update --init
  2. Run the PlatformIO Build platformio run --environment debug

Libraries used

Sensors

  • adafruit/Adafruit BME280 Library (BME280 Temperature, Humidity and Air Pressure sensor)
  • sensirion/Sensirion I2C SGP41 (SGP41 Gas sensor)
  • adafruit/Adafruit VEML7700 Library (VEML7700 Ambient Light Sensor)
  • fu-hsi/PMS Library (PMS5003 particle sensor)
  • sensirion/Sensirion Gas Index Algorithm (VOC and NOx gas index for Air Quality Levels)
  • jcomas/S8_UART (SenseAir S8)

Others

  • adafruit/Adafruit NeoPixel (To drive the single NeoPixel communicating the current Air Quality level)
  • knolleary/PubSubClient (MQTT Library for communication with Home Assistant)
  • bblanchon/ArduinoJson (JSON Library for the HTTP server and MQTT)
  • TheLartians/Observe (Simple thread-save events)

Datasheets

Other info

Pollutant
(based on pollutant concentrations in µg/m3)
                                        Good	Fair	Moderate	Poor	Very poor	Extremely poor
Particles less than 2.5 µm (PM2.5)	    0-10	10-20	20-25	    25-50	50-75	    75-800
Particles less than 10 µm (PM10)	    0-20	20-40	40-50	    50-100	100-150	    150-1200


                                        Good	Fair	Moderate	Poor	    Very poor	Extremely poor
CO2 in ppm:
                                        0-350   350-800 800-1000    1000-1200   1200-1800   1800+
 https://www.co2meter.com/blogs/news/carbon-dioxide-indoor-levels-chart


NOx and VOC Index:
                                        Good	Fair	Moderate	Poor	    Very poor	Extremely poor
NOx Index:                              0-20    20-100  100-200     200-300     300-400     400+
VOC Index:                              0-150   150-200 200-250     250-300     300-400     400+
https://www.sensirion.com/media/documents/9F289B95/6294DFFC/Info_Note_NOx_Index.pdf
https://www.sensirion.com/media/documents/02232963/6294E043/Info_Note_VOC_Index.pdf

About

Home-built Air Quality Monitor - CO2, Gas (NOx, VOC), Particulates, Temperature, Humidity, Pressure and Ambient Light

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published