Search models, users, collections, and posts

Air Quality Sensor - ESPHome for Home Assistant

Print Profile(2)

All
A1 mini
P2S
P1S
A1
H2D
X1 Carbon
H2S
X1
H2C
X1E
H2D Pro
X2D
P1P
A2L

Air Quality Monitor (Body + Lid)
Air Quality Monitor (Body + Lid)
Designer
2.4 h
2 plates
5.0(5)

Air Quality Monitor (Optional LED light diffuser)
Air Quality Monitor (Optional LED light diffuser)
Designer
22 min
1 plate
4.7(3)

Open in Bambu Studio
Boost
236
886
47
14
141
62
Released 

Description

Membership

Want to sell my designs? Join one of my membership tiers to unlock official commercial rights!

Join

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

ModulePINDestination
USB C Connector5VESP32 5V
 GNDESP32 GND
LED5VESP32 5V
 GNDESP32 GND
 DATAESP32 GPIO16
PMS5003VCCESP32 5V
 GNDESP32 GND
 SETESP32 GPIO11
 RXESP32 GPIO17
 TXESP32 GPIO18
VEML7700SDAESP32 GPIO8
 SCLESP32 GPIO9
 VINESP32 3.3v
 GNDESP32 GND
BME680SDAESP32 GPIO8
 SCLESP32 GPIO9
 VINESP32 3.3v
 GNDESP32 GND
CCS811SDAESP32 GPIO8
 SCLESP32 GPIO9
 VINESP32 3.3v
 GNDESP32 GND
 WAKESP32 GND
OLED 0.96SDAESP32 GPIO8
 SCLESP32 GPIO9
 VINESP32 3.3v
 GNDESP32 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:

 

 

 

 

 

 

Comment & Rating (47)

(0/1000)

License

If you want to use this model commercially, please join my membership.
Join Now
This user content is licensed under the MakerWorld Exclusive 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.