Laser particle detectors are a high-tech way for quantifying whats floating around in the air. With a fan, a laser, and a sensitive photodetector, they can measure smoke and other particulates in real-time. Surprisingly, they are also fairly cheap, going for less than $20 USD on some import sites. They just need a bit of encouragement to do our bidding.
[Dave Thompson] picked up a ZH03B recently and wanted to get it working with his favorite sensor platform, Mycodo. With a sprinkling of hardware and software, he was able to get these cheap laser particle sensors working on his Raspberry Pi, and his work was ultimately incorporated upstream into Mycodo. Truly living the open source dream.
The ZH03B has PWM and UART output modes, but [Dave] focused his attention on UART. With the addition of a CP2102 USB-UART adapter, he was able to connect it to his Pi and Mac, but still needed to figure out what it was saying. He eventually came up with some Python code that lets you use the sensor both as part of a larger network or service like Mycodo and as a stand-alone device.
His basic Python script (currently only tested on Linux and OS X), loops continuously and gives a running output of the PM1, PM2.5, and PM10 measurements. These correspond to particles with a diameter of 1, 2.5, and 10 micrometers respectively. If you want to plug the sensor into another service, the Python library is a bit more mature and lets you do things like turn off the ZH03B’s fan to save power.
These sensors are getting cheap enough that you can build distributed networks of them, a big breakthrough for crowd-sourced environmental monitoring; especially with hackers writing open source code to support them.
I could see this being part of a weather station.
BTW I believe Google cars do environmental measuring as well.
https://www.foxnews.com/us/google-street-view-cars-to-be-outfitted-with-pollution-sensors-to-measure-us-europe-air-quality
For those interested there was a big conference about Air Quality Sensor last month.
All the proceedings are available here: https://asic.aqrc.ucdavis.edu/current-speakers
Lots of interesting details about about how to calibrate them and improve their accuracy (they can be sensitive to change of relative humidity).
There are many similar low cost network around the world. Most of them are built around the PMS5007 (from Plantower)
How much more accurate is this than an off the shelf commercial smoke detector?
Smoke detectors don’t usually give you calibrated particulate readings.
“1” – house is on fire, “0” – house is not on fire. Remote sensing is possible by anyone with a pair of ears anywhere near it.
Only because the firmware doesn’t care. Swap in this firmware and i doubt there’s much difference.
There’s a difference. Smoke detectors usually use a less accurate type of sensor optimized for detecting smoke..
Did you read it? It’s more real time and can measure several different particulate sizes separately.
You can get some pretty good measurement from a regular smoke detector. See this for example: berkeleyair.com/wp-content/publications/UCB-PATS_Specifications.pdf
But the sensor in the article (or the PMS5003) are Particle Counter (they count individual particle) not photometer like in the smoke detectors who detect a bunch of particle at the same time. So the particle counters can usually detect much lower concentration.
They also are active (they draw air), smoke detector are usually passive.
Most smoke detectors are ionization or photoelectric method. The basic technology used is completely different. This sensor uses laser diffraction – https://kaiterra.com/blog/3-types-particle-detectors-see-invisible/
These types of sensors are used in aspirated (forced air sampling, or active) smoke detection systems.
https://www.coloradoci.com/bin-pdf/5270/ParticleSize.pdf
https://www.orrprotection.com/blog/air-sampling-smoke-detection-system
This may not be the same sensor, but it is of the same type and may be useful in that application. I am actually looking to get one of these to play around with for the same purpose.
The neat thing with aspirated systems is that you can use piping systems to sample the air in zones in a large area like a datacenter, or in the case of a home rooms vs floors.
And to use USB to UART? What are we coming to? I’m not familiar with the RPi but surely we don’t have to have all the bloat of going to USB and back?
you can buy these and others like it from mouser. They come with a data sheet so there is no need to “try” to figure out anything.
Writers a Library for this sensor. Hackaday calls it as hack.
*inserts “I am Hackerman” meme*
*Writes
Yes. The title is very misleading.
Whilst the article is interesting and shows what the sensor is capablel of and the pre-exisiting resource for it, the title should have been:
Talking to the ZH03B particle sensor
I was expecting a hack potentially showing how to improve the results the sensor produces, or something equally “hacky” that it doesn’t do out of the box.
Here is a nice article on how to use it with arduino and code:
https://www.dfrobot.com/wiki/index.php/PM2.5_laser_dust_sensor_SKU:SEN0177
Long overdue getting one of these and controlling my air filtering hepa fan with it.
But backlog etc…
Hmmm, I’m thinking (dangerous, yes, I know that)
adding along the air stream various colored LEDs (colored LASERs?) and detectors for some spectrometry of the particulates?
What is it detecting, I know particles, but is it by size or type or what? I would love to be able to detect what bothers me for my allergies.
That is a major point for the project – useful data like how fast does my HEPA filter clean up the room air after all the windows are closed. At that point I start measuring the CO2 levels to figure when they need to open again. In my case the HEPA filter can clean some pretty nasty air to double and single digit concentrations in 15-20 minutes and CO2 takes a couple of hours to accumulate to levels that would have me wanting to ventilate to clear CO2.
The sensor measures the density of small particles. This is a reasonable explanation of what this is all about:
https://www.epa.gov/pm-pollution/particulate-matter-pm-basics
thanks
Anybody know if it’s possible to measure particle size with this? Wondering if you could get a distribution on a spray or smoke. Thanks.
Uhm, YES.
https://github.com/Theoi-Meteoroi/Winsen_ZH03B/wiki
Check the wiki for details on how this sensor is designed and functions.
I include a detailed comparison study of the “A” version of the sensor. I also mention the DFrobot resource.