Home CodeArduino Due Arduino Due and CCS811 gas sensor example

Arduino Due and CCS811 gas sensor example

by shedboy71

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

arduino due and CCS811 layout

arduino due and CCS811 layout

 

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

ccs811 datasheet

 

Share

You may also like