

The Adafruit ENS161 MOX Gas Sensor (Part ID: 6431) is a versatile gas sensor designed to detect a variety of gases, including volatile organic compounds (VOCs) and other air quality indicators. It utilizes a metal oxide (MOX) sensing element to measure gas concentrations and provides both analog and digital outputs for seamless integration into a wide range of applications.
This sensor is ideal for air quality monitoring, environmental sensing, and IoT projects. Its compact design and compatibility with microcontrollers like Arduino make it a popular choice for hobbyists and professionals alike.








| Parameter | Value |
|---|---|
| Manufacturer | Adafruit |
| Part ID | 6431 |
| Sensing Element | Metal Oxide (MOX) |
| Detected Gases | VOCs, ethanol, hydrogen, and other gases |
| Operating Voltage | 3.3V to 5V |
| Output Type | Analog and I²C digital output |
| Operating Temperature | -40°C to 85°C |
| Power Consumption | Low power mode available |
| Communication Protocol | I²C (7-bit address: 0x53) |
| Pin Name | Pin Type | Description |
|---|---|---|
| VIN | Power Input | Connect to 3.3V or 5V power supply. |
| GND | Ground | Connect to the ground of the circuit. |
| SDA | Data Line | I²C data line for communication. |
| SCL | Clock Line | I²C clock line for communication. |
| AOUT | Analog Output | Provides analog voltage proportional to |
| gas concentration. |
#include <Wire.h>
#include <Adafruit_ENS161.h>
// Create an instance of the ENS161 sensor
Adafruit_ENS161 ens161;
void setup() {
Serial.begin(9600);
while (!Serial) {
delay(10); // Wait for Serial Monitor to open
}
Serial.println("Adafruit ENS161 Gas Sensor Test");
// Initialize the sensor
if (!ens161.begin()) {
Serial.println("Failed to find ENS161 sensor! Check wiring.");
while (1) {
delay(10); // Stay in loop if sensor initialization fails
}
}
Serial.println("ENS161 sensor initialized successfully!");
}
void loop() {
// Read gas concentration values
float tvoc = ens161.getTVOC(); // Total Volatile Organic Compounds
float eco2 = ens161.geteCO2(); // Equivalent CO2 concentration
// Print the readings to the Serial Monitor
Serial.print("TVOC: ");
Serial.print(tvoc);
Serial.print(" ppb, eCO2: ");
Serial.print(eco2);
Serial.println(" ppm");
delay(1000); // Wait 1 second before the next reading
}
Sensor Not Detected
Inaccurate Readings
Fluctuating Output
Library Not Found
Q: Can the ENS161 detect specific gases like carbon monoxide?
A: The ENS161 is designed to detect a range of gases, including VOCs and equivalent CO2 levels. However, it is not specifically calibrated for carbon monoxide detection.
Q: How long does the sensor last?
A: The sensor has a long operational life when used within its specified conditions. Regular calibration and proper usage can extend its lifespan.
Q: Can I use the sensor with a 3.3V microcontroller?
A: Yes, the ENS161 is compatible with both 3.3V and 5V systems.
Q: Is the analog output accurate enough for precise measurements?
A: The analog output provides a general indication of gas concentration. For precise measurements, use the I²C digital output.
This concludes the documentation for the Adafruit ENS161 MOX Gas Sensor. For further assistance, refer to the Adafruit support resources or community forums.