Air quality node
-
Hi
I was thinking about building an air quality node and I found this sensor that could be the starting point. I am looking for opinions if it could be a good choice or there is something better.
-
Hello @gohan,
you have this one (CCS811) and the BME680.
The specific board your are linking to is a bad deal IMHO, as it's a CCS811 (available alone for less than half the price) + BMP280 + HDC1080 (si7021 "clone" but without the precious teflon filter). If you go for the CCS811 buy it separately and add a BME280 or si7021.I considered the 2 and decided to go for the BME680, here are the advantages of the 2 sensors (I may be wrong on some points and I'll be happy to get corrected if I make mistakes...)
CCS811 :
- integrated MCU to make calculations of the IAQ: you can use it even with an atmega MCU, and if you go for a Cortex M or ESP8266 you don't need to fiddle with the arduino installation to include the Bosch binary.
-much lower cost and much wider availability on breakout boards
BME680:
- all included in one sensor: temp, hum, pressure and VOC
- BSEC software from Bosch has to run on your MCU but takes all parameters (including pressure) into its calculations and has some nice extra things like flags for burn-in and run-in periods, information about accuracy of IAQ data, etc
- lower power consumption making it possible to run on batteries (90uA average in ultra low power mode gas measurement with update every 5mns)
- voltage range a bit wider (1.7-3.6V instead of 1.8-3.3V)
- as a chip it's only a bit more expensive than CCS811, as it's all included it is cheaper than CCS811 + TH + pressure
- last but not least much more detailed information in datasheet about the calibration process and the precision/accuracy of gas measurements, the max deviation over lifetime of the sensor (10 years !), etc etc while datasheet of CCS811 is completely mute about that. Certified accuracy on one side, no information on the other side, how can you trust the data given by CCS811 ?
- integrated MCU to make calculations of the IAQ: you can use it even with an atmega MCU, and if you go for a Cortex M or ESP8266 you don't need to fiddle with the arduino installation to include the Bosch binary.
-
In fact I was also looking at the bme680, that's why I was seeking advice
-
@gohan said in Air quality node:
In fact I was also looking at the bme680, that's why I was seeking advice
If you find more info on CS811 accuracy somewhere (they might have other documents) I'm interested.
-
not even adafruit have specs on the sensors
If have read correctly it would need to be calibrated against a knows source otherwise it is just good to show trends
-
For what i's worth:
I've not heard of the BME680 but about a year ago I connected a CCS811 to a RasPi.
I found the readings from the CCS811 less than usefulAt startup it a assumed the air was "clean" It had an algorithm that tried to extract VOC information from their environment sensitive thin film device. You can read all this is their documentation.
Another note: It required clock stretching on the I2C interface. On the Pi I found a software library that provided a clock stretching capability. The built in I2C would not work reliably. The need for clock stretching came from the CCS811 tech rep. His statement was: "...Can you please check if the processor you are using supports clock stretching and if so please enable this....."
-
Another nail on the CCS811's coffin
-
@nca78 said in Air quality node:
BME680.
I just purchased a BME680 from "alice1101983" on ebay for $16.85. I figure by the time I receive it I may be ready to start in on a VOC project again.
BTW the only reason I mentioned alice1101983 is that I've purchased a number of these types of break out boards from this supplier and all the item i received were what I expected and shipped within a reasonable time.
BTW I do believe all (most) of the breakout boards are mfg by 1 or 2 factories and the folks we see on ebay are small time sellers.
-
@johnrob said in Air quality node:
@nca78 said in Air quality node:
BME680.
I just purchased a BME680 from "alice1101983" on ebay for $16.85. I figure by the time I receive it I may be ready to start in on a VOC project again.
BTW the only reason I mentioned alice1101983 is that I've purchased a number of these types of break out boards from this supplier and all the item i received were what I expected and shipped within a reasonable time.
BTW I do believe all (most) of the breakout boards are mfg by 1 or 2 factories and the folks we see on ebay are small time sellers.
Yes there are not so many factories that why most of the shops have similar prices and exactly the same boards.
I bought a BME680 from Arrow, without breakout board. I still have to make a PCB for it, but I need to finish my tests with PM sensors before I make one.
-
Any updates? I'd like to find a VOC sensor that's sensitive to whatever emissions there might be from a 3D printer so that I can be sure to do enough air filtration to (hopefully) eliminate them.
-
the problem is knowing what kind of gases are relased during print and have matching sensors.
-
Agreed. Since I don't know, probably the most I can hope for is some kind of generic VOC sensor. Is there is such a thing?
With regards to particular emissions, it looks as though there's a Honeywell unit that's smaller than the others and the seller listing claims that it's fully callibrated: https://www.aliexpress.com/item/PM2-5-sensor-HONEYWELL-HPMA115S0-XXX-laser-pm2-5-air-quality-detection-sensor-module-Super-dust/32829242280.html?spm=2114.10010108.1000013.3.2fc91af7A0JTzC&gps-id=pcDetailBottomMoreThisSeller&scm=1007.13339.90158.0&scm_id=1007.13339.90158.0&scm-url=1007.13339.90158.0&pvid=57ffa5dd-6d44-4d46-ae2c-8133b92ef714
Looking now, the datasheet also says it's fully calibrated, so I guess I believe it: https://www.honeywellscportal.com/honeywell-sensing-hpm-series-particle-sensors-datasheet-32322550-e-en.pdf
Are the alternatives, such as the SDS011 or the PMS2005, fully calibrated? If not, then the Honeywell might have that as an advantage, together with a generally good reputation for quality and durability.
Another good thing, at least from my perspective, is that I can buy it from Digikey or Mouser, without having to wait for a China shipment or run the risk of getting shanghai'd by a Chinese counterfeit.
There are a number of libraries on github for it: https://github.com/search?q=HPMA115S0
-
I ordered the BME680 and the SPG30. Hopefully one or the other will be highly sensitive to TVOCs. On the low range, the SPG30 has a resolution of 1ppb, so I have high hopes for it.
-
@neverdie I bought HPMA pm sensors from Arrows for this reason: similar price and quick delivery.
The main advantage is the laser diode that seems of better quality so the sensor will last longer (20K hours vs 8K hours for the plantower sensors).
But the data it sends on the serial port is coded exactly like data from Plantower sensors, so I suspect they have a deal with Plantower to supply the IC and data processing. But an older version as the frequency for sending data is always the same (Plantower sensors adapt frequency) and with less data (only pm 2.5, pm10 is calculated and pm1.0 is not returned).I'm working on a PCB for pm/co2/VOC sensors, I'll finish it soon and send it to fab next week when I will be back home. Checking what my 3D printer releases is also part of it's future tasks, in addition to checking air pollution outside (sometimes pretty bad in Saigon) and inside (exhaust from furniture etc) so please keep us updated on your findings with SGP30.
-
@nca78 said in Air quality node:
@neverdie I bought HPMA pm sensors from Arrows for this reason: similar price and quick delivery.
The main advantage is the laser diode that seems of better quality so the sensor will last longer (20K hours vs 8K hours for the plantower sensors).
But the data it sends on the serial port is coded exactly like data from Plantower sensors, so I suspect they have a deal with Plantower to supply the IC and data processing. But an older version as the frequency for sending data is always the same (Plantower sensors adapt frequency) and with less data (only pm 2.5, pm10 is calculated and pm1.0 is not returned).From what I've read, a lot of the particles released by a 3D printer while printing (maybe even the majority of them) are a lot smaller than pm2.5, so it's too bad the HPNA can't read that. I guess I may have to get both now: the HPNA so that I have a calibrated reference, and then one of the others so I can get pm1.0 measurements.
Yesterday I did order the SGP30, so after I receive it I'll be sure to let you know how it goes.
Also, it's worth being aware of this: https://www.researchgate.net/profile/Bernd_Laquai/publication/320555036_Particle_Distribution_Dependent_Inaccuracy_of_the_Plantower_PMS5003_low-cost_PM-sensor/links/59ec6d1faca272cddddf12fc/Particle-Distribution-Dependent-Inaccuracy-of-the-Plantower-PMS5003-low-cost-PM-sensor.pdf Therefore, it may not be able to measure pollen, which is something I'd also like to start tracking.
-
@neverdie it will be ok for small particles, HPMA just can't differentiate them but measures down to 0.3um. I guess Plantower 1.0 value is an estimate like the PM10 so you won't get anything really useful.
-
@nca78 said in Air quality node:
so please keep us updated on your findings with SGP30.
I received the sensor and have just now hooked it up. What I hadn't realized is that upon first powerup it needs to calibrate for 12 hours! Apparently all VOC sensors are really tin-oxide sensors, and they should all be calibrated in order to get accurate results.
They are also affected by temperature and humidity. Apparently there's a way to feed humidity data into the SGP30 so that it can compensate for that. So, I plan to feed it the humidity data from the BME680.
-
I've hooked up the BME680, but I'm rather disappointed with the Adafruit library for it. For gases, all it does is report KOhm value, which doesn't mean anything to me. Has anyone here found a library which gives it a more meaningful interpretation?
-
Unbelievable! Apparently Bosh won't make public the formula for converting from the gas KOhm measurement to an Indoor Air Quality. Instead, at most, they will provide the formula in a precompiled library, and it will therefore only work on a few microcontrollers. Apparently the Blue Pill is one of them. I'm not sure whether Arduino is one or not.
This will make getting the IAQ much more difficult. If I had known this, I would not have gotten the BME680.
Here are instructions on how to get the IAQ from a BME680 using a Blue Pill microcontroller: https://wolfgangklenk.wordpress.com/2017/11/05/indoor-air-quality-iaq-measurement-with-bosch-bme680-and-stm32f103c8t6/
Apparently it may also work on the ESP8266: https://www.bluedot.space/tutorials/air-quality-measurement-with-the-bme680/
[Update: Looks as though it may work on an Arduino Mega, but not the Uno: https://www.hackster.io/bastiaan-slee/chiiiiiirp-indoor-air-quality-measurement-and-alarm-260622 ]
-
These academics came up with a different, easier to calculate indoor air quality index:
https://res.mdpi.com/sustainability/sustainability-08-00881/article_deploy/sustainability-08-00881.pdf?filename=&attachment=1and that's good enough for me. If anyone here has found a better way, please post.
Interestingly, my sensors are good enough that this morning they picked up a significant spike in pollutants indoors after my gardener cut the grass outdoors with his gasoline powered lawnmower. They actually linger for a lot longer than I would have thought.
I'm not going to buy any more BME680's. I think the AGP30's provide easier to interpret data.
-
Well, having played around now with both the HPNA and the PMS5003, I'm finding the PMS5003 to be more interesting. At least in my environment, there aren't very many of the larger particles, whereas there seems to be a lot of activity in the very small particle range. Even though the PMS5003 is uncalibrated, I can still look at relative measurements and make comparisons. It just seems more sensitive to what's going on. For larger particles, the HPNA is, I think, the better choice. So, perhaps the two complement one another.
-
@neverdie said in Air quality node:
I'm not going to buy any more BME680's. I think the AGP30's provide easier to interpret data.
Have you tried using the Bosch software to manage the sensor and compute the raw values ?
-
@nca78 Not as yet. Have you?
-
@neverdie said in Air quality node:
@nca78 Not as yet. Have you?
No I have only one and I didn't even solder it yet.
-
@neverdie same with me. I gave up using the BME680 for the same reasons you have. It is cheap and offers 4 readings in one chip but can not be really used with a small microcontroller like arduino nano or the sensebender micro as Bosch does all the drift compensation using software that requires large memory.
I believe theis chip was meant to be used in smartphones instead of homeautomation sensors.
I will order a SGP30 today. Thanks for pointing into that direction...
Gr Heinz
-
@heinz FYI, you'll want to pair the SGP30 with a BME280 (or whatever your preferred TH sensor is) for temperature and humidity compensation.
-
Is an esp8266 powerful enough for a bme680?
-
@gohan said in Air quality node:
Is an esp8266 powerful enough for a bme680?
Yes it's in the list here :
https://www.bosch-sensortec.com/bst/products/all_products/bsecThen you have to follow instructions to use BSEC with Arduino :
https://github.com/BoschSensortec/BSEC-Arduino-library
-
FWIW, I also observed self heating problems with it if running at the default Adafruit sketch. Reported temperature was higher than it actually was. So, again, without guidance as to how much it should be pre-heated or how often it needs to be sampled.... If anyone reading this happens to know, please post.
-
@neverdie yes that is the plan