Air Quality Sensor - ESPHome for Home Assistant
Print Profile(2)


Description

Membership
Want to sell my designs? Join one of my membership tiers to unlock official commercial rights!
Boost Me (for free)
If you enjoy this model, please consider giving it a boost to help others discover it too! I put a lot of care into designing it for quality, ease of printing, and functionality. Your support means a lot to me and feedback is always welcome, feel free to leave a comment or remix it. Thanks for checking it out, and happy printing! 🚀🖨️
🌿 Air Quality Monitor (ESP32-S3 + ESPHome + Home Assistant)
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.
🧠 What It Does
The monitor continuously measures:
- 🌫️ Particulate Matter (PM1.0, PM2.5, PM10) via a PMS sensor
- 💨 CO₂ and TVOC levels from a CCS811 sensor
- 🌡️ Temperature, Humidity, and Pressure from a BME680
- ☀️ Ambient Light levels from a VEML7700
All readings are displayed on a high-contrast OLED screen and also sent to Home Assistant for automation and long-term tracking.
💡 Dynamic RGB LED Feedback
An integrated WS2812 RGB LED provides an at-a-glance visual indicator of air quality:
- 🟩 Excellent: Clean air, light green
- 🟢 Good: Healthy environment, soft green
- 🟡 Moderate: Acceptable but can be improved, yellow-orange tone
- 🟥 Poor: Consider ventilation, red
- 🟣 Unhealthy: Take action to clean the air, purple
🌈 Optional: 3D Printed Light Diffuser
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.
🖥️ Customisable OLED Display
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.)
⚙️ Hardware & Build
The compact enclosure is 3D printed and designed to hold each component neatly in place:
- Slots for each module (sensors, and display)
- Components are easily secured using hot glue
- Printed in Marble PLA with a Grey PLA lid - but feel free to print in any material or colour combination you like
⚠️ 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.
🏡 Why Build It?
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.
🔧 Technical Details
- Microcontroller: ESP32-S3-DevKitC-1
- Firmware: ESPHome (Home Assistant integrated)
- Display: 128x64 OLED (SSD1306)
- Lighting: WS2812 addressable LED
- Sensors: BME680, CCS811, PMSX003, VEML7700
🧩 ESPHome Configuration
The full configuration for ESPHome, including automation for LED colours, display pages, and sensor calibration, is available on GitHub.
Dimensions

Sensor Positions:

Materials:
- ESP32 S3 DevKitC 1 N16R8 (other ESP devices should work, providing they accept 5V input via one of the pins instead of the USB port)
- VEML7700 (Light Sensor)
- WS2812B LED Strip (total of 5 leds)
- PMS5003 (Particulate Matter Readings)
- CCS811 (CO2/TVOC Sensor)
- BME680 (Temperature/Humidity/Pressure/VOC Gas)
- OLED 0.96" (128X64)
- USB C Female Plug
- Soldering Iron
- Glue Gun
- 3D Printer
- 4-6 colours of wires
Wiring Information
| 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 |
I love seeing how these prints turn out! 🖨️ If you download this, please **post an image of your print** or **leave a review**. ✅ If you have any issues or suggestions, drop a comment, I’m always looking to refine and improve my designs based on your feedback! 🔧📐
Check out some of my other designs:







License
You may create derivative works based on this object, provided that all such derivative works are published exclusively on the MakerWorld platform and include proper attribution to the original creator. You may not share, upload, host, distribute, or publish this object—or any derivative work of this object—on any other digital platform, marketplace, or distribution channel. Commercial use of this object and any derivative works is strictly prohibited. This includes, but is not limited to, selling, renting, sublicensing, or using the object in any context in which you receive monetary compensation or other financial benefits.






























Comment & Rating (47)