lamaPLC: CJMCU-811 CCS811 Gas Sensor (VOCs TVOC CO2)

CJMCU-811 CCS811 Gas Sensor (VOCs TVOC CO2) The CJMCU-811 is a small, ultra-low-power digital gas sensor module designed to monitor indoor air quality. It is built around the CCS811 sensor from AMS, which uses a metal oxide (MOX) multi-gas sensor to detect a broad range of Volatile Organic Compounds (VOCs).

  • This type of digital sensor is used to measure changes in volatile organic compounds, especially carbon dioxide (CO²). The module features a CJMCU-811 CCS811 CO² Air Quality Metal Oxide Gas Sensor.
  • The sensor is known for its low power consumption, making it suitable for use in battery-powered devices.
  • This device is primarily used to monitor indoor air quality and can be read by microcontrollers through the I²C interface.
  • Because of its complex design, the module is highly sensitive and can accurately measure the share of eCO².
  • ETVOC measurement range: 0 ~ 32768 ppb
  • ECO2 measurement range: 400 ~ 32768 ppm

Key Capabilities

The sensor measures atmospheric conditions and outputs digitized values via an I²C interface:

  • eCO² (Equivalent CO²): Calculates carbon dioxide levels based on volatile organic compounds, usually ranging from 400 to 8,192 ppm.
  • TVOC (Total Volatile Organic Compounds): Detects a wide array of gases, including alcohols, aldehydes, ketones, organic acids, and amines.
  • On-board Processing: Incorporates an integrated 8-bit microcontroller that runs intelligent algorithms to turn raw sensor data into air quality readings, decreasing the processing load on your main controller.

Technical Specifications

FeatureDetails
Operating Voltage1.8V to 3.3V DC (Note: Some modules include a regulator for 5V compatibility)
Power Consumption~30mA average; extremely low power in idle modes (< 6µW)
InterfaceI2C (standard address is often 0x5A or 0x5B)
DimensionsRoughly 15mm x 21mm
EnvironmentOperating temperature from -40°C to 125°C

Usage Considerations

  • “Equivalent” Readings: It's important to understand that this isn't a genuine CO2 sensor. Instead, it estimates eCO2 levels from VOC concentrations, which can sometimes lead to inaccuracies compared to industrial-grade NDIR (non-dispersive infrared) sensors.
  • Burn-in & Run-in: New sensors need a 48-hour burn-in period to achieve stability. Moreover, after turning on the device, the sensor typically requires about 20 minutes of run-in time to produce accurate readings.
  • Baseline Calibration: The sensor automatically adjusts its “clean air” baseline gradually. However, for optimal performance, it should regularly be exposed to fresh outdoor air.

Pin Descriptions

The CJMCU-811 (featuring the CCS811 sensor) is typically an 8-pin breakout board. For basic operation, you must connect VCC, GND, SDA, SCL, and WAKE.

Pin NameFunction
VCCPower Supply1.8V to 3.6V (Some boards include a 5V regulator).
GNDGroundCommon ground for power and logic.
SCLI²C ClockSerial clock line for communication.
SDAI²C DataSerial data line for communication.
WAKEWake (Active Low)Crucial: Must be pulled to GND to enable I²C communication.
INTInterrupt (Active Low)Optional; indicates when new data is ready, or thresholds are crossed.
RSTReset (Active Low)Optional; pulling this low resets the sensor.
ADDRI²C Address SelectConnect to GND for 0x5A (default) or VCC for 0x5B.

Connection Tips

  • WAKE Pin: On many CJMCU-811 modules, the sensor will not respond to I2C commands if the WAKE pin is left floating. Connect it directly to a GND pin for continuous operation.
  • Voltage Logic: While the sensor chip runs at 3.3V, many breakout boards, such as those from Adafruit or standard CJMCU versions, include level shifters, making them safe for use with 5V microcontrollers like the Arduino Uno.
  • I²C Speed: If using a Raspberry Pi, you may need to lower the I²C baud rate to 10kHz because the Pi's hardware sometimes struggles with the “clock stretching” required by the CCS811.

Arduino example code

To use the CJMCU-811 with an Arduino, the most common approach is to use the Adafruit CCS811 Library.

Arduino Wiring

Connect your CJMCU-811 breakout to the Arduino as follows:

  • VCC → 3.3V (or 5V if your board has a regulator)
  • GND → GND
  • SDA → A4 (on Uno/Nano) or Pin 20 (Mega)
  • SCL → A5 (on Uno/Nano) or Pin 21 (Mega)
  • WAKE → GND (Required to keep the sensor active)

This basic sketch initializes the sensor and prints eCO2 and TVOC levels to the Serial Monitor.

#include "Adafruit_CCS811.h"
 
Adafruit_CCS811 ccs;
 
void setup() {
  Serial.begin(115200); // Set Serial Monitor to 115200 baud
  Serial.println("CCS811 test");
 
  // Initialize the sensor
  if(!ccs.begin()){
    Serial.println("Failed to start sensor! Check wiring and WAKE pin.");
    while(1);
  }
 
  // Wait for the sensor to be ready
  while(!ccs.available());
}
 
void loop() {
  if(ccs.available()){
    // readData returns false if there is no error
    if(!ccs.readData()){
      Serial.print("CO2: ");
      Serial.print(ccs.geteCO2());
      Serial.print("ppm, TVOC: ");
      Serial.print(ccs.getTVOC());
      Serial.println("ppb");
    } else {
      Serial.println("ERROR reading sensor!");
      while(1);
    }
  }
  delay(1000); // Wait 1 second between readings
}

Common Troubleshooting

  • I²C Address: If the code fails to start, your board might use address 0x5B instead of the default 0x5A. You can try ccs.begin(0x5B); in the setup.
  • Serial Monitor Speed: Ensure the baud rate in your Serial Monitor matches Serial.begin(115200);.
  • Accuracy: Remember that this sensor requires a 20-minute warm-up for stable readings and a 48-hour burn-in period when first used.

I²C topics on lamaPLC

PageDateTags
2025/05/31 21:56, , , , , , ,
2025/09/23 19:25, , , , , ,
2026/03/21 19:20, , , , , , ,
2026/02/15 20:33, , , , , , , , ,
2026/02/14 22:24, , , , , , , , , , , , ,
2026/02/15 20:40, , , , , , , , , , , , , ,
2026/02/14 23:37, , , , , , , , , , ,
2026/02/14 22:40, , , , , , , , , ,
2026/03/21 22:25, , , , , , , , , , ,
2026/02/14 18:19, , , , , , , , , , ,
2026/02/14 18:11, , , , , , , ,
2025/05/31 21:32, , , , , , , ,
2026/02/14 19:29, , , , , , , , , , , , , ,
2025/11/21 23:07, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
2023/07/01 15:29, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
2026/03/22 00:26, , , , , , , , ,
2026/02/14 22:45, , , , , , , , ,
2026/02/14 22:09, , , , , , , , , , , , , , , ,
2026/02/14 17:26, , , ,
2026/02/14 21:54, , , , , , , , , , , , , , , , , , , , , , , , ,
2026/02/14 23:58, , , , , , , , , , ,
2026/02/14 17:27, , , , , , , , , ,
2026/02/14 23:38, , , , , , ,
2026/02/14 22:52, , , , , , , ,
2026/02/14 22:23, , , , , , , ,
2026/02/14 22:53, , , , , , , , , , , , ,
2026/02/15 20:27, , , , , , , , , , , , , , , ,
2026/02/15 20:29, , , , , , , , , , , , , ,
2026/02/14 22:47, , , ,
2026/02/14 22:51, , , , , ,
2026/02/14 17:26, , , ,
2026/02/14 22:22, , , , , , , , , , , , ,
2026/02/14 22:21, , , , , , , , , , ,
2026/02/14 22:22, , , , , , , ,
2026/03/05 20:19, , , , , , , , , , , , , , , , ,
2026/02/14 17:27, , , , , , ,

This page has been accessed for: Today: 2, Until now: 3