The PMS5003 is a small laser particulate sensor: it pulls a little air past a laser and counts the dust and smoke particles in it, reporting PM1.0, PM2.5, and PM10. It is the standard cheap way to watch air quality, and on a farm it earns its keep around dust, smoke, and wildfire season rather than as a CO₂ sensor.
What it is.
A small fan draws air through the sensor, a laser beam catches the particles, and the optics count and size them, reporting concentrations of fine particles: PM1.0, PM2.5, and PM10 (the numbers are particle sizes in micrometers). PM2.5 is the figure people quote for air quality, because those fine particles reach deep into the lungs. The Plantower PMS5003 is the common UART version; the closely related PMSA003I (pictured) is the same idea with an I²C interface. Both measure particles, not gases, so this is not a CO₂ sensor.
Why a grower cares.
Particulate is an occupational and crop concern in the places growing gets dusty: milling, drying, grinding, and handling dry media or amendments throw fine dust, and a packhouse or mushroom-substrate room can get hazy. Outdoors, wildfire smoke seasons make PM2.5 a real health and operations signal. A cheap PM sensor turns “it feels dusty in here” into a number you can log, alarm on, or tie to a fan, which is useful both for worker safety and for keeping dust off a crop.
Key facts.
How to wire it.
The PMS5003 needs 5 V for its fan and talks over UART: connect its TX and RX to a serial port on your microcontroller (data is 3.3 V-friendly). In ESPHome it is read with the PMSX003 component on a UART bus. The I²C PMSA003I variant wires to SDA/SCL instead, which is handy when your serial ports are spoken for. To save the fan and laser, you can power it down between readings rather than run it continuously.
Where it fits, and where it doesn’t.
Where it fits
- Dust awareness near milling, drying, and grinding.
- Wildfire-smoke monitoring for people and crops.
- Triggering a fan or an alert on a dust threshold.
- Reading with an ESP32 and ESPHome.
Where it doesn’t
- CO₂; that is an NDIR sensor, not this.
- Gases or VOCs; it counts particles only.
- Wet or very humid air, which fogs the optics.
- Battery-only builds, if the fan runs continuously.
Resources & where to buy.
ESPHome: PMSX003 Adafruit PM2.5 guide Where to buy CO₂ & air overview
Frequently asked questions.
What does the PMS5003 measure?
Airborne particles, reported as PM1.0, PM2.5, and PM10 concentrations. A small fan pulls air past a laser that counts and sizes the dust and smoke particles. PM2.5 is the headline air-quality figure. It does not measure gases or CO2.
Does the PMS5003 measure CO2?
No. It is a particulate sensor for dust and smoke, not a gas sensor. For carbon dioxide you need an NDIR sensor like the SCD40 or MH-Z19. The two answer different air-quality questions.
Why would a grower want a particulate sensor?
Growing gets dusty around milling, drying, grinding, and handling dry media, and wildfire smoke makes PM2.5 a seasonal concern. A cheap PM sensor turns that into a number you can log, alarm on, or use to switch a fan, for both worker safety and keeping dust off a crop.
What is the difference between the PMS5003 and the PMSA003I?
They are closely related Plantower particulate sensors. The PMS5003 uses a UART serial connection; the PMSA003I uses I2C, which is handy when your serial ports are taken. Both measure the same PM1.0, PM2.5, and PM10 particles.
How do I read a PMS5003 with ESPHome?
Power it from 5 volts and wire its TX and RX to a UART on the ESP32, then use ESPHome's PMSX003 component. The readings appear in Home Assistant. The I2C PMSA003I variant wires to SDA and SCL instead.