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).
Key Capabilities
The sensor measures atmospheric conditions and outputs digitized values via an I²C interface:
| Feature | Details |
|---|---|
| Operating Voltage | 1.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) |
| Interface | I2C (standard address is often 0x5A or 0x5B) |
| Dimensions | Roughly 15mm x 21mm |
| Environment | Operating temperature from -40°C to 125°C |
Usage Considerations
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 Name | Function | |
|---|---|---|
| VCC | Power Supply | 1.8V to 3.6V (Some boards include a 5V regulator). |
| GND | Ground | Common ground for power and logic. |
| SCL | I²C Clock | Serial clock line for communication. |
| SDA | I²C Data | Serial data line for communication. |
| WAKE | Wake (Active Low) | Crucial: Must be pulled to GND to enable I²C communication. |
| INT | Interrupt (Active Low) | Optional; indicates when new data is ready, or thresholds are crossed. |
| RST | Reset (Active Low) | Optional; pulling this low resets the sensor. |
| ADDR | I²C Address Select | Connect to GND for 0x5A (default) or VCC for 0x5B. |
Connection Tips
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:
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
This page has been accessed for: Today: 2, Until now: 4