The CCS811 Air Quality Breakout is a digital gas sensor solution that senses a wide range of Total Volatile Organic Compounds (TVOCs), including equivalent carbon dioxide (eCO2) and metal oxide (MOX) levels. VOCs are often categorized as pollutants and/or sensory irritants and can come from a variety of sources like construction materials (paint, carpet, etc.), machines (copiers, processors, etc.) and even people (breathing, smoking, etc.). This breakout is intended for indoor air quality monitoring in personal devices such as watches and phones, but we’ve put it on a breakout board so you can use it as a regular I2C device.
The onboard CCS811 supports multiple measurement modes that have been optimized for low-power consumption during an active sensor measurement and idle mode extending battery life in portable applications. We have broken out each necessary pin on the CCS811 as well as additional pins to add your own NTC Thermistor to determine the temperature of the CCS811’s surroundings, which can be used to help compensate the readings.
Note: Please be aware that the CCS811 datasheet recommends a burn-in of 48 hours and a run-in of 20 minutes (you must allow 20 minutes for the sensor to warm up and output valid data).
This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.
Skill Level: Noob - Some basic soldering is required, but it is limited to a just a few pins, basic through-hole soldering, and couple (if any) polarized components. A basic soldering iron is all you should need.
See all skill levels
If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.
Skill Level: Competent - The toolchain for programming is a bit more complex and will examples may not be explicitly provided for you. You will be required to have a fundamental knowledge of programming and be required to provide your own code. You may need to modify existing libraries or code to work with your specific hardware. Sensor and hardware interfaces will be SPI or I2C.
See all skill levels
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels
Based on 8 ratings:
Really simple to use, remarkably accurate, and surprisingly sophisticated. Just what this project needed!
I had to unsolder the pull up resistors to make it working on an AT91 Sam9G25 plateform. No works flawlessly
For future reference most of our boards (including this one) have the pullup resistors soldered on so that they can be used as is, but also have jumpers on the board where you can cut the trace to disconnect them which should be easier than desoldering.
This product is easy to use, has great docs, and is very reliable. Great for student projects
Ok. it is pretty easy to use. and the library is very easy. But, after a few hours of continuous use, the values go crazy. I also added temp/humidity compensation. but still, after an hour or two, the results go off the charts. Anyone else have an idea on how to handle this? Or is there a problem with the actual device?
It sounds like you may have a connection issue or a bad unit. Please contact our tech support department for assistance. You can reach them at techsupport (at) sparkfun (dot) com.
I have this sensor set up to record data using a Particle Photon. The graphs spike when we cook food, have large groups of people over to our house or use hair spray. The CO2 equivalent value appears to be calculated based on the tVOC reading. Both readings follow the same trend line but have different min and max values. Based on my experience and looking at the spec sheet, the values produced by this sensor are largely dependent on the baseline measurement established during the warm up period (and periodically thereafter). I have yet to tinker with the baseline getter and setter functions provided in the library for this sensor.
The setup process recommends a one time 48 hour burn in and 20 minute warm up. The default sampling rate for this sensor is every second. At this sample rate, the sensor gets pretty warm. You can slow down the sample rate by using a function in the library for the sensor.
Here is a link to GitHub with the code that I'm using:
I hooked this thing up as the first sensor for my new Particle Mesh Xenon, and love it so far. We see the spikes when cooking, and we saw a really big spike when we spilled some drippings in the bottom of the oven and smoked up the kitchen.
There is some burn-in, and I plan on updating my firmware to include enough of a wait before I start sending data to avoid tracking the meaningless values. If I remember I will try and post an update to the code.
More info and possible work around at https://github.com/maarten-pennings/I2C-tool/blob/master/I2Ctest8266/README.md#how-to-fix
Update: I did managed to get this to work with the SparkFun ESP8266 Thing - Dev Board
The core functionality, tVOC and eCO2, work well and are very reactive to changes in air quality. And while you may need a 20 minute warmup to get the best readings, it does detect adverse conditions well before that.
A couple things were a bit lacking, at least with the Arduino library: 1) there's no MOX readings to be found, and 2) I couldn't get any temperature readings despite installing a 10k NTC thermistor (got the same bogus reading no matter if I left those contacts open, had the ntc installed, or shorted them).