====== LamaPLC: ENS ScioSense Multi-gas sensors with I²C communication ====== {{ :sensor:ens160_sensor.png?100|ENS ScioSense Multi-gas sensors with I²C communication}} The **ScioSense ENS160** is a digital multi-gas sensor tailored for indoor air quality (IAQ) monitoring, delivering fully processed outputs such as eCO₂, TVOC, and AQI. It employs advanced Metal Oxide (MOX) technology combined with on-chip algorithms to ensure high stability and accuracy. The sensor's on-chip processing provides data including equivalent CO₂ (eCO₂), Total VOC (TVOC), and an Air Quality Index (AQI). **Key Features** * **Intelligent On-Chip Algorithms:** The sensor handles complex data processing internally, reducing the burden on the host microcontroller (MCU). It performs: * Automatic Baseline Correction (ABC) for long-term stability. * Temperature and Humidity Compensation (requires an external T/H sensor input like the AHT21). * Calculation of processed outputs (eCO₂, TVOC, AQI). * **Multiple IAQ Outputs:** * **AQI (Air Quality Index):** A simple 1 (excellent) to 5 (unhealthy) index. * **TVOC (Total Volatile Organic Compounds):** Concentration ranging from 0 ppb to 65,000 ppb. * **eCO₂ (Equivalent CO₂):** Calculated concentration ranging from 400 ppm to 65,000 ppm. * **Connectivity:** Supports both [[com:basic_i2c|I²C]] and [[com:basic_spi|SPI]] digital interfaces for flexible integration with microcontrollers. * **Fast Operation:** Offers a warm-up time of less than 3 minutes, much faster than conventional sensors. * **Low Power Consumption:** Multiple operating modes, including a deep-sleep mode, allow for use in battery-powered IoT applications. **Specifications Summary** ^Specification^Value| ^Supply Voltage|VDD: 1.71V - 1.98V; VDDIO: 1.71V - 3.6V| ^Interface|I²C (0x53/0x52 selectable address) or SPI| ^Operating Temperature|-40°C to +85°C| ^Operating Humidity|5% to 95% RH (non-condensing)| ^Dimensions|Compact 3.0mm x 3.0mm x 0.9mm LGA package| ^Warm-up Time|<3 minutes for valid data; 24h+ for optimal accuracy| ===== Moduls ===== ==== ENS-160 modul ==== {{ :sensor:ens160.png?160|ENS-160 modul}} The ENS160 is a digital multi-gas sensor from ScioSense that uses metal-oxide (MOX) technology to detect air quality. Most modules (like those from Adafruit, SparkFun, or DFRobot) also include an AHT21 temperature and humidity sensor to provide compensation data for the ENS160, as air quality readings are sensitive to environmental conditions. {{page>:tarhal}} ==== Arduino & ENS-160 modul ==== **Wiring (I²C Mode)** The sensor typically operates on 3.3V or 5V (depending on the breakout board's voltage regulator). * **VIN:** 3.3V or 5V (Match your Arduino's logic level) * **GND:** Ground * **SDA:** Pin A4 (on Uno/Nano) * **SCL:** Pin A5 (on Uno/Nano) * **ADDR (optional):** Connect to GND for address 0x52 or VCC (or leave floating) for 0x53. **Arduino Example Code** You will need to install the **Adafruit ENS160** and **Adafruit AHTX0** libraries via the Arduino Library Manager. #include #include #include Adafruit_ENS160 ens160; Adafruit_AHTX0 aht; void setup() { Serial.begin(115200); Wire.begin(); // Initialize AHT21 (Temperature/Humidity) if (!aht.begin()) { Serial.println("Could not find AHT sensor!"); while (1); } // Initialize ENS160 (Air Quality) if (!ens160.begin()) { Serial.println("Could not find ENS160 sensor!"); while (1); } // Set operating mode: STANDARD, DEEP_SLEEP, or IDLE ens160.setMode(ENS160_OPMODE_STD); } void loop() { sensors_event_t humidity, temp; aht.getEvent(&humidity, &temp); // Send environmental data to ENS160 for better accuracy ens160.setTempHum(temp.temperature, humidity.relative_humidity); if (ens160.available()) { ens160.measure(true); // Perform measurement Serial.print("AQI: "); Serial.print(ens160.getAQI()); // 1 (Excellent) to 5 (Unhealthy) Serial.print(" | TVOC: "); Serial.print(ens160.getTVOC()); Serial.print(" ppb"); Serial.print(" | eCO2: "); Serial.print(ens160.geteCO2()); Serial.println(" ppm"); } delay(2000); // 2-second interval recommended } **Key Sensor Outputs** The ENS160 provides fully processed air quality data: * **AQI (Air Quality Index):** A simple 1–5 scale based on UBA standards. * **TVOC (Total Volatile Organic Compounds):** Concentration from 0 to 65,000 ppb. * **eCO2 (Equivalent CO2):** Calculated proxy for CO2 concentration from 400 to 65,000 ppm. **Important Notes** * **Warm-up Time:** The sensor needs about 3 minutes to warm up after powering on before it provides valid data. * **Burn-in Period:** For the highest accuracy, a new sensor should be "burned-in" for at least 24 to 48 hours of continuous operation. * **Accuracy:** MOX sensors detect a gas mixture and calculate eCO2; for critical CO2 monitoring (e.g., plant growth or safety), a dedicated NDIR CO2 sensor is preferred. ===== I²C topics on lamaPLC ===== {{topic>i2c}} \\ \\ {{tag>ENS160 ScioSense gas-quality i2c communication sensor arduino code eCO₂ TVOC AQI indoor_air_quality IAQ CO₂ VOC TVOC}} This page has been accessed for: Today: {{counter|today}}, Until now: {{counter|total}}