November 9, 2025
Description
This custom Air Quality Monitor is a smart home project built around the ESP32-S3, designed to help you monitor and optimise the air quality in your home. It runs fully on ESPHome, seamlessly integrating with Home Assistant for real-time data, automation, and visual feedback.
The monitor continuously measures:
All readings are displayed on a high-contrast OLED screen and also sent to Home Assistant for automation and long-term tracking.
An integrated WS2812 RGB LED provides an at-a-glance visual indicator of air quality:
To achieve a softer and more visually pleasing glow, the LED can be positioned behind a 3D printed light diffuser.
This diffuser helps blur the individual LEDs, spreading the light evenly and giving a professional, polished look to the device.
It’s especially effective for night-time use, ensuring the indicator remains visible without being harsh or distracting.
The OLED screen is fully configurable - show live sensor data, weather information, forecasts, or time.
(Note: the photos show light streaks on the display - that’s only due to the camera refresh rate; in person, the screen is perfectly clear.)
The compact enclosure is 3D printed and designed to hold each component neatly in place:
⚠️ Tip: Leave enough wire between components to make soldering and installation easier. The build takes a bit of patience and careful soldering, but it’s entirely achievable even for hobbyists.
If you care about indoor comfort, allergies, or just want a smarter home environment, this monitor helps you understand and improve your indoor air quality - ensuring you and your family always breathe clean air.
The full configuration for ESPHome, including automation for LED colours, display pages, and sensor calibration, is available on GitHub.
| Module | PIN | Destination |
|---|---|---|
| USB C Connector | 5V | ESP32 5V |
| GND | ESP32 GND | |
| LED | 5V | ESP32 5V |
| GND | ESP32 GND | |
| DATA | ESP32 GPIO16 | |
| PMS5003 | VCC | ESP32 5V |
| GND | ESP32 GND | |
| SET | ESP32 GPIO11 | |
| RX | ESP32 GPIO17 | |
| TX | ESP32 GPIO18 | |
| VEML7700 | SDA | ESP32 GPIO8 |
| SCL | ESP32 GPIO9 | |
| VIN | ESP32 3.3v | |
| GND | ESP32 GND | |
| BME680 | SDA | ESP32 GPIO8 |
| SCL | ESP32 GPIO9 | |
| VIN | ESP32 3.3v | |
| GND | ESP32 GND | |
| CCS811 | SDA | ESP32 GPIO8 |
| SCL | ESP32 GPIO9 | |
| VIN | ESP32 3.3v | |
| GND | ESP32 GND | |
| WAK | ESP32 GND | |
| OLED 0.96 | SDA | ESP32 GPIO8 |
| SCL | ESP32 GPIO9 | |
| VIN | ESP32 3.3v | |
| GND | ESP32 GND |
License:
MakerWorld Exclusive License