In this article we connect a CCS811 gas sensor to an Arduino Due
CCS811 is a low-power digital gas sensor solution, which integrates a gas sensor solution for detecting low levels of VOCs typically found indoors, with a microcontroller unit (MCU) and an Analog-to-Digital converter to monitor the local environment and provide an indication of the indoor air quality via an equivalent CO2 or TVOC output over a standard I2C digital interface.
Features
Integrated MCU
On-board processing
Standard digital interface
Optimised low power modes
IAQ threshold alarms
Programmable baseline
2.7mm x 4.0mm LGA package
Low component count
Proven technology platform
Specs
Interface | I²C |
---|---|
Supply Voltage [V] | 1.8 to 3.6 |
Power Consumption [mW] | 1.2 to 46 |
Dimension [mm] | 2.7 x 4.0 x 1.1 LGA |
Ambient Temperature Range [°C] | -40 to 85 |
Ambient Humidity Range [% r.h.] | 10 to 95 |
Parts List
Amount | Part Type |
---|---|
1 | CJMCU-811 CCS811 Air Quality Gas Sensor |
1 | Compatible DUE R3 Board SAM3X8E 32-bit ARM Cortex-M3 |
Schematics/Layout
Remember and connect WAKE to gnd
Code
We use the adafruit library which can be added using the library manager
[codesyntax lang=”cpp”]
#include “Adafruit_CCS811.h”
Adafruit_CCS811 ccs;
void setup() {
Serial.begin(9600);
Serial.println(“CCS811 test”);
if(!ccs.begin()){
Serial.println(“Failed to start sensor! Please check your wiring.”);
while(1);
}
//calibrate temperature sensor
while(!ccs.available());
float temp = ccs.calculateTemperature();
ccs.setTempOffset(temp – 25.0);
}
void loop() {
if(ccs.available()){
float temp = ccs.calculateTemperature();
if(!ccs.readData()){
Serial.print(“CO2: “);
Serial.print(ccs.geteCO2());
Serial.print(“ppm, TVOC: “);
Serial.print(ccs.getTVOC());
Serial.print(“ppb Temp:”);
Serial.println(temp);
}
else{
Serial.println(“ERROR!”);
while(1);
}
}
delay(500);
}
[/codesyntax]
Output
Open the serial monitor – this is what I saw. The higher CO2 level was when I breathed on the sensor
CO2: 742ppm, TVOC: 52ppb Temp:22.61
CO2: 629ppm, TVOC: 34ppb Temp:21.88
CO2: 460ppm, TVOC: 9ppb Temp:20.01
CO2: 400ppm, TVOC: 0ppb Temp:21.88
CO2: 400ppm, TVOC: 0ppb Temp:24.61
CO2: 400ppm, TVOC: 0ppb Temp:25.00
CO2: 400ppm, TVOC: 0ppb Temp:24.61
CO2: 400ppm, TVOC: 0ppb Temp:24.61
Links