Recommended Free Tools
iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Yes—you can build a Wi-Fi air-quality monitor that appears in Home Assistant with an ESP32, ESPHome firmware and the sensor hardware suited to the pollutants you actually need. The simplest route uses the ESPHome-supported SM300D2 module, while a modular design gives you better control over CO₂ measurement, particulate sensing and calibration. The important limitation is interpretation: a PM-based number from ESPHome is an estimate, not the complete U.S. EPA Air Quality Index, and the SM300D2’s CO₂ field is calculated eCO₂ rather than a direct CO₂ measurement.
What the finished system does
The ESP32 provides Wi-Fi and runs ESPHome. You describe the hardware and entities in an ESPHome YAML file, compile and flash the firmware, then add the device to Home Assistant through its native ESPHome API. Each configured reading becomes a Home Assistant sensor entity that can be displayed on a dashboard or used in an automation.
Home Assistant’s Air quality integration can combine pollutant entities and provide pollutant-aware conditions and triggers. It supports PM2.5, PM10, CO₂, carbon monoxide, volatile organic compounds (VOCs), ozone, nitrogen dioxide, and gas or smoke detector data. You can therefore use the raw readings directly, or build ventilation and warning automations around thresholds that make sense for your home.
Choose the sensor architecture
All-in-one: SM300D2
ESPHome has an official SM300D2 platform. With one UART-connected module, the configuration can expose seven measurement groups:
#1 Best Overall
- Highly accurate and efficient DC01 infrared PM2.5 air quality sensor module. Detects dust concentration and fine particles, perfect for monitoring haze. Small size, low power consumption, wide measurement range, and quick response time make it ideal for indoor air quality testing
- Utilizes optical principles and circuit conversions to measure dust concentration within a wide range. Detects particles above 1mm in diameter with precision. Easy to use with single-chip microcontrollers for UART communication
- Detects PM0.3 to PM10 particles with a range of 5-2500 μg/m3. High accuracy of ±20ug/m or ±20% of the reading. Provides reliable air quality monitoring for improved indoor environments
- Compact design with high precision and low power consumption. Swift response time ensures quick and convenient application. Effectively measures a broad range of particles to enhance air quality monitoring
- Stay ahead with the DC01 infrared PM2.5 air quality sensor module. Monitor dust concentration and fine particles effortlessly. Achieve accurate results with ease, thanks to the sensor's compact size and efficient operation
- CO₂ (reported by the module as ppm)
- Formaldehyde (µg/m³)
- TVOC
- PM2.5
- PM10
- Temperature
- Relative humidity
The SM300D2 project publishes an operating and accuracy table claiming CO₂ of 400–5,000 ppm with ±50 ppm accuracy and PM2.5 of 5–100 µg/m³ with ±10% accuracy. Those are the project’s module claims, recorded in an ESP-Air project snapshot accessed in 2026; they are not a universal validation of every seller’s board revision.
Modular sensors
A modular build uses separate ESPHome components for the measurements that matter most. The component catalog includes direct CO₂ platforms such as SCD30, SCD4X and SenseAir, particulate platforms such as SPS30, PMSA003, PMSX003, SDS011 and HM3301, and separate VOC, NOx, temperature and humidity sensors.
This approach adds wiring and configuration, but lets you choose a direct CO₂ instrument, a particulate sensor with better documentation, or a narrower and less expensive combination. It is also easier to replace one sensor when its calibration drifts or when you later need another pollutant.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallCrashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteDecision checklist
| Question | SM300D2 all-in-one | Modular design |
|---|---|---|
| Pollutant coverage | CO₂/eCO₂, formaldehyde, TVOC, PM2.5, PM10, temperature and humidity in one module | Select only the pollutant platforms required |
| CO₂ type | eCO₂ inferred from TVOC, not directly measured | Can use a direct CO₂ sensor such as SCD30, SCD4X or SenseAir |
| Wiring and setup | One UART sensor and one ESPHome platform | More buses, pins, power checks and YAML components |
| Calibration evidence | Use the particular module revision’s documentation | Evaluate each sensor’s calibration and accuracy documentation separately |
Understand the eCO₂ limitation before automating
The SM300D2 project explicitly states that its CO₂ sensor is actually an “eCO2 (equivalent carbon dioxide) sensor”: the value is calculated or approximated from the TVOC reading rather than measured as CO₂. Treat that number as an indicative air-quality signal. Do not present it as measured CO₂ or use it as the sole basis for precise ventilation control.
Rank #2
- SMART HOME LEARNING KIT--This kit combines the most common electronic components of smart home projects,developed specially for those beginners who are interested in Arduino and raspberry pi DIY.
- THE PROFESSIONAL SMART HOME KIT--This has 16 sensors modules and delicately selected sensors to detect temperature, humidity, sound, light, infrared, motion, flame,vibration,digital touch, air pressure and many other commonly-used sensors modules.
- THE MOST COMPLETE SMART HOME KIT--This universal kit are compatible for Arduino UNO R3 / Mega2560 / Mega328 /Nano / Raspberry Pi, it could DIY 16 projects according to your need.
- HIGH QUALITY GUARANTEE--We eliminate many old-fashioned sensors which have low reliability and duplicate function as other sensor in the kit, the kookye modules sensor kits are choosed carefully for our user.
- DETAILED TUTORIAL ON OUR WEBSITE--Our website provide step-by-step instruction, detailed circuit connection graph/video, verified sample code and library package which can save lot of user's research time and speed up the learning progress.
If an automation must respond to actual carbon-dioxide concentration—for example, controlling outdoor-air ventilation in an occupied room—use a modular build with a direct CO₂ sensor and follow that sensor’s calibration and placement guidance.
Assemble the hardware safely
- Select an ESP32 development board. Confirm that it has the USB connection and GPIOs needed for your chosen interface.
- Select the sensor architecture. Use the SM300D2 for a compact seven-group monitor, or combine dedicated platforms when direct CO₂ or specific particulate performance is more important.
- Wire the sensor interface. The SM300D2 ESPHome example uses UART. Connect power, ground, transmit and receive lines according to the module’s datasheet and the pin assignment you choose on the ESP32.
- Verify electrical compatibility. Check the sensor’s supply voltage and logic levels against the exact ESP32 board and module revision. The available documentation does not provide one wiring diagram that is valid for every ESP32 board revision.
- Keep the air inlet unobstructed. Mount the sensor where room air can reach it, away from direct exhausts, condensation and sources of heat that could bias temperature or humidity.
Configure ESPHome
Create a device configuration in ESPHome and give it a unique name. Add the platform for your sensor, the UART pins (for the SM300D2), and a deliberately chosen update interval. Name entities clearly—such as PM2.5, PM10, eCO₂, TVOC, temperature and humidity—so they are understandable after Home Assistant discovers them.
For a modular build, add one ESPHome component per sensor family and assign the correct bus or UART address. Keep units explicit in the entity names or metadata, especially for particulate readings in µg/m³ and gas readings in ppm.
Compile the configuration and flash it to the ESP32 over USB for the initial installation. After the device joins Wi-Fi, subsequent firmware updates can normally use ESPHome’s network update path. Watch the compile and device logs for UART errors, unavailable entities or repeated resets before mounting the hardware permanently.
Rank #3
- Perfect choice for beginners to learn, electronics and program.
- The Basic Starter Kit is easy to use and you can learn to program at an introductory level.
- You can use ESP32 modules to control other modules, such as LED,DHT11,OLED module, etc
- The tutorial include codes and lessons.It will teach every users how to assembly Basic Starter Kit for ESP32.
- Please download our tutorial and learn after you receive the goods.
Add the device to Home Assistant
- Open Home Assistant and go to Settings → Devices & services.
- Use the ESPHome integration to discover or add the ESP32 device.
- Complete adoption through the native ESPHome API connection.
- Open the device page and confirm that every expected pollutant, environmental and diagnostic entity is present.
- Add the entities to a dashboard, then create thresholds or schedules only after observing their normal readings for several days.
Use the Air quality integration when you want pollutant-aware triggers and conditions rather than a dashboard of unrelated numeric sensors. Keep the raw PM2.5, PM10 and gas entities available even if you also create a combined air-quality indicator.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.What the ESPHome AQI value means
ESPHome’s aqi sensor accepts PM2.5 and PM10 readings and can apply AQI or CAQI calculations. Its documentation warns that this is a PM-only estimate, not the complete U.S. EPA AQI.
The EPA AQI accounts for ozone, particle pollution, carbon monoxide, sulfur dioxide and nitrogen dioxide. Its particle method uses 24-hour averages or NowCast-style hourly estimates. A fast-changing PM reading from a room sensor does not automatically satisfy those averaging rules, and it omits the other pollutants unless you measure them separately.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Label a derived entity honestly—for example, “PM-based AQI estimate” or “CAQI”—and document which calculation and averaging interval you selected. Do not label it simply “EPA AQI” when it contains only PM2.5 and PM10.
Rank #4
- 【46 TINKERBLOCK SENSOR MODULES IN ONE KIT】Includes 1.8" TFT LCD, 8x8 LED Matrix, 4-Digit 7-Segment Clock Display, Rotary Encoder, IR Sender & Receiver, Hall Sensor, Microphone, Joystick, Steam Sensor, EEPROM Memory, and 36 more. Every module takes standard 2.54mm jumper wires — no soldering. Storage case and quick-start card included; jumper wires and development board not included.
- 【WORKS WITH EVERY MAJOR BOARD】Compatible with UNO R3, ESP32, ESP32-S3, Raspberry Pi Pico, and other 3.3V/5V microcontrollers. Supports DIGITAL, ANALOG, I2C, SPI, PWM, and IR interfaces. No soldering required. Each module clearly labeled.
- 【IMMERSION GOLD (ENIG) PCB】Gold-plated contacts via the ENIG process for good signal integrity and corrosion resistance. Lead-free and RoHS-compliant.
- 【BEGINNER-FRIENDLY GUIDED LEARNING】Each module comes with reference code, wiring diagrams, and step-by-step tutorials. Suitable for beginners, students (ages 12+), STEM educators, hobbyists, and engineers. Build weather stations, alarms, clocks, and games.
- 【ORGANIZED FOR EDUCATION AND DIY】All modules are neatly packaged in a storage case with labeling for easy identification. Suitable for STEM classrooms, makerspaces, and personal projects — expand your skills in electronics and coding without sourcing parts individually.
Common failure modes
No sensor entities appear
Recheck the selected ESPHome platform, UART transmit/receive orientation, power and ground connections, and the configured GPIO numbers. Confirm that the module’s voltage and logic levels are compatible before reconnecting it.
Values are implausible or stuck
Inspect the device logs for communication errors, allow the sensor to warm up as specified by its documentation, and check that the inlet is not blocked. Compare the reading with a known-good instrument before changing automations.
CO₂ automation behaves poorly
Determine whether the entity is eCO₂ inferred from TVOC. If it is, replace it with a direct CO₂ platform for decisions that require measured concentration, then revisit thresholds and placement.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
The AQI number disagrees with an official report
Check whether your entity uses PM only, which pollutants are missing, and whether it uses instantaneous, hourly or 24-hour data. Those methodological differences can produce legitimately different values.
Quick Recap
A practical build plan
- Start with the ESP32 and SM300D2 if you want the fewest parts and broad room-monitoring coverage.
- Expose and name all seven measurement groups, but mark the CO₂ entity as eCO₂ in your dashboard.
- Observe raw readings before creating alerts; establish normal ranges for the room and time of day.
- Add PM-based calculations only with a label that identifies the method and averaging assumptions.
- Move to a modular design with a direct CO₂ sensor or dedicated particulate sensor when the measurement’s accuracy, calibration behavior or automation consequence justifies extra wiring.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

