Best CO2 sensor

Their product image shows an SCD30 sensor module for CO2 and an SPS30 sensor module for PM2.5, both extremely well made reliable sensors. I cannot see the VOC/T/H module, but it is also made by sensirion, an SGP series, probably SGP30.

Power source is 15 to 24V AC or DC, so you can tap into thermostat wiring if you have R and C available. Very interesting products indeed! Price is not absurd given the feature set, in fact it may be a bargain.

2 Likes

That was what I was thinking. I am going to get a couple. Just looking for an economical RS485 hub for the Modbus. I was thinking with a hub I would not need to daisy chain the Modbus devices. I would prefer to wire everything back to the central location.

1 Like

@Rudertier @pepe59
Can you share how do you manage the calibration of your MH-Z19 sensor ?
It seems to be a challenge especially when the sensor is exposed for higher level of Co2 more then 24h (as I understand it take lowest CO2 value form 24h measurements and ā€œcalibratesā€ this as 410ppm). In my case the measurements does not look reliable as after some time of 2000-3000ppm readings I took the sensor outside and it shows 1600ppmā€¦
So at the end either I will somehow manage how ti easy calibrate it or will move to another one.
SCD30 is tempting but it seems it also need periodical calibrationā€¦

1 Like

I think your best bet is to disable its auto calibration mode and to do a manual calibration call when you know it is in a very well ventilated area. It will then set the currenty measured value as a new 400 ppm base line. (The sad thing is that 400 isnā€™t the normale base line outside anymore :frowning: (or do newer models go to 410?)

At least my MH-Z19 doesnā€™t have too much drift by itself. Calibrating it once a month or less works good enough for me.

I can show you my ESP Home code for that when I have access to it.

2 Likes

Hi, I tried to find the blog-post I was following when building the sensor, however I canā€™t find it. I donā€™t rember anything regarding calibration. Also I do not experience any kind of drift in the values, so maybe some kind of calibration is implemented (I open the window of my office multiple times a day).

1 Like

Thank you.
This is what I have done: disable automatic calibration and using ESPHome info, created service to calibrate manually. Placed the sensor i empty room with opened window for 1 hour and then forced the calibration. Worked well! The readings were reset to 400 ppm and then when I took the sensor to another room with people it shows reasonable values.
This looks like process to go forward! :slight_smile:

BTW, I have noticed that MN-Z19B sensor seem to perform measurements every 5 seconds (at least with this period I can see the ā€œredā€ light blink) regardless of the period set up in sensor configuration in esphome.

2 Likes

Hi Maciek, can you please share your ESP-Home config?

1 Like

Itā€™s never been exactly 400, thatā€™s just a rough average. It can be anywhere between <350 to 450+ outside, depends on where you live (rural, urban), time of day, season, etc. So donā€™t expect a remotely accurate calibration that way. Doesnā€™t matter if youā€™re interested in the CO2 concentration variations and trends rather than the absolute concentration. But if you want a more or less accurate reading of the latter, you need to use a calibration gas. And you need to redo the calibration every few months.

Sure, here it is (only section related to CO2 sensor):

uart:
  - rx_pin: D5
    tx_pin: D6
    baud_rate: 9600
    id: uart_mhz19

  # sensor definition (Co2 and temperature) 
sensor:
  - platform: mhz19
    co2:
      name: "esp99test CO2"
    temperature:
      name: "esp99test Temperature from CO2 sensor"
    update_interval: 60s
    automatic_baseline_calibration: false
    uart_id: uart_mhz19
    id: esp99_co2

  # switch configuration to turn ABC calibration on/off
switch:
  - platform: template
    name: "esp99test MH-Z19B ABC"
    optimistic: true
    on_turn_on:
      mhz19.abc_enable: esp99_co2
    on_turn_off:
      mhz19.abc_disable: esp99_co2

  # service definition to force manual zero calibration from HA
api:
  services:
    - service: esp99test_mhz19_calibrate_zero
      then:
        - mhz19.calibrate_zero: esp99_co2

Practically the switch (to turn ABC calibration on/off) is not needed in my case - it is disabled in the sensor configuration.
If I want to calibrate I move sensor outside and after 30 minutes I perform service to zero calibrate.

3 Likes

I use Xiaomi ClearGrass Air detector, it has Senseair S8 built in sensor and HomeAssistant integration too. Also people recommend a bit cheaper but good too Youpin Qingping Air Monitor Lite.

Fun thread, question I asked myself a few years ago as well, so hereā€™s a long read. Maybe its helpful to someone.

Iā€™ve used a CCS811 in my DIY in-ceiling KNX sensors (GitHub - defl/roomsensor: Arduino based multi-sensor for KNX network), running since 2017. These are easy to use for ESPHome as well Iā€™d guess, not sure if there already is support for them. Before settling on the CSS811 Iā€™ve tested a lot of other sensor components mentioned in this thread as well (no results data saved though, sorry), I do have serious space/power restrictions with KNX and the size of these boards. Picture from prototype board with CO2/VOC chip top right:

Picture from install in ceiling:

The sensors are self-calibrating as long as they see some fresh air once in a while, or so they claim. I guess that in a house thatā€™s not unreasonable to expect. I wondered for a while about calibration as well (temp, RH), but in the end donā€™t use it.

Iā€™ve found that these are not that useful for person detection, take below measurements from last 24h for example. Green line is a sensor in my bedroom mounted right above the bed, red is a sensor in a walk-in closet with open connection to the room, but with a window-vent in the passage, so will see a lot less of the room air.

image

First arrow is when I go to bed (with window-ventilation duct and door open), you can see a slow increase. After wake-up Iā€™ve left the room and close the door, you can see the detection goes up for a while until over time all gets cleaned out. Very little you can conclude from this.

Baby room (same conditions), does not even register.

image

So scaling up to a worse-case scenario, closed room with a lot of natural gasses: toilets. The above sensors should also detect volatile organic compounds which definitely should register in certain uses :wink: Purple one was used, green one was not, and while you can certainly see the peak here, I find there is a lot of noise to this signal:

Finally, looking at all 15 sensors in the house:

The big purple one (e) is entrance hall. Blue (o) is sensor one floor up in hallway. These spaces are connected through a stairwell. You can definitely see a build-up downstairs until I open a few large doors we have there which wafts a ton of air over the sensor. (The space itself is connected to the toilet which always pulls air through the ventilation system). Shower room (d) always higher, but this room only has mechanical ventilation, no open windows.

If you want to know if massive RH and temp changes affect this (taking a shower, door closed, but with mechanical ventilation to high, air exit is right above shower so CO2 wonā€™t go in room much). Major effect can be seen:

So for all adventurous people above pursuing this, my conclusions are:

  • It certainly detects somethingā€¦
  • Though what and how accurate that is is debatable
  • Probably wonā€™t do what you expect
  • Continuous (forced) air flow is probably needed for any sort of accurate use
  • Iā€™d not build it like this again, Iā€™d place them in my ventilation channels and only use to steer valves that way.
  • (I have a well ventilated house, both window and mechanical so probably wonā€™t run into problems anyway)
6 Likes

Interesting, thanks for posting these stats.

Itā€™s important to note though that the CCS811 doesnā€™t actually measure CO2. It just estimates its amount by correlating it to the TVOC measures (equivalent CO2, eCO2). Maybe this estimation is very inaccurate and the reason the signal is random and noisy. It would be very interesting to see statistics such as yours done with real CO2 sensors (although I know theyā€™re much more expensive sadly).

2 Likes

Iā€™ve been using senseAir S8ā€™s after I saw some solid reviews around reliability, accuracy, and calibration needs. They seem to be solid.

But Iā€™m looking around for something cheaper - Iā€™m thinking about building ESPHome based air quality monitors as gifts (add a screen etc).

CO is measured by Google Nest here (I donā€™t want to interfere with Smoke & CO) I just want CO2 measurement for health reasons and ventilation management.

To sum up some things posted before and add some of my own - various air quality measurements make sense for different reasons:

CO: If you have any kind of combustion device inside (gas, wood, gasoline) a CO measuring device is a must. Buy a CO alarm, as CO can knock you out and kill you before you know it. Do not combine it with a smoke detector: Smoke detectors need to de mounted high, CO will kill you before it reaches the ceiling.

VOC: detects the buildup of volatile chemicals. Cheap sensors use this to estimate CO2, but that is (as mentioned before) a bad substitute based on the notion that humans breathing out CO2 will also breathe out other volatile compounds. I can tell you from experience it does not work that way. My CO2 sensors often skyrocket without VOC giving a peep, and vice versa.

CO2: Useful for detecting bad ventilation. Brilliant with my teenagers who like to close all windows and doors and then stay there for hours on end. These sensors even got my daughter to open her windows herself from time to time.

PM2.5 and PM10: different sizes small particles that are in general very bad for your health. Useful for controlling air purifiers removing dust, pollen and other pollutants from the air.

If you can afford off the shelf devices then I can recommend the afore mentioned Awair Element, as it has both CO2, VOC and PM2.5 - a rare combination. Is is confirmed to be quite accurate and it has a tiny quiet ventilator for continuous airflow and clear indications of whatā€™s good or bad. It has both a cloud and local API and can be linked to HA. Kaiterra devices are nice, but every model leaves something out that youā€™ll need to buy another device for. I also own Netatmo for the kids rooms. They are fine too but just register CO2. For those rooms that is fine by me.

10 Likes

Sounded interesting. And then I saw the price tag. You have to be kidding me. :scream:

image

I mean yeah it uses pretty good sensors, but still. Just checked on Mouser, you can get all these sensors together for under $80 (when buying them as single units, they probably get them 50% off at high volumes). Damn, thatā€™s some serious mark up for a nicely designed caseā€¦

Edit: uhhā€¦ Why the hell is there a microphone in that thing ? What exactly does a cloud connected air quality monitor need a front facing microphone for ?

image

From their FCC application.

1 Like

I spent a few hours the other night looking for something similar and ended up buying a few DIY Air Quality Sensor Kits from a company called AirGradient. You can buy 3-4 kits and shipping for the same price as the Awair, assuming you are comfortable assembling it yourself. Also looks possible to add a TVOC sensor.

I donā€™t have them yet, but can report back once they are (hopefully) assembled and workingā€¦ there are a few positive reports on their forums and reddit as well. The vendor is super responsive on their DIY forums too: AirGradient - Air Quality DIY Sensor and Education

3 Likes

To be fair, the sensors used in the Awair are much better than the ones in the AirGradient.

Edit: no theyā€™re not, theyā€™re just as mediocre. See below for papers showing data.

The Senseair S8 is one of the best CO2 sensors under $100. Doubt that the Awair sensor is better. But for sure, there are probably better particle sensors than the one included in the kit.

Personally I have built multi sensors with Senseair S11 for CO2, BME680 for temp/hum/pressure/VOC and SPS30 for PM2.5.

4 Likes

The Awair uses the Amphenol Telair T6703-5K. Not too sure how it compares to the Sensair, havenā€™t found any real calibration data besides the specs.

But yeah my comment was mostly about the particle sensor. The Plantower used by the kit isnā€™t very good. The Honeywell used in the Awair is considerably better. And it includes the Sensirion TVOC sensor. Of course none of that justifies the price tag. Or the spy microphone.