| 
  
 “可悲的是,我们以进步的名义,污染了空气、水、土壤和我们吃的食物”。因此,由于各种污染,现在监测空气质量至关重要。为设计空气质量监测系统,我们需要一些耐用可靠的空气质量传感器。虽然有许多空气质量的参数,但最重要的参数是二氧化碳和TVOC。因此,为了测量CO2和TVOC,我们使用了CCS811空气质量传感器。 
 在本篇文章中,我们将主要介绍如何使用Arduino开发板和CCS811空气质量传感器进行TVOC和CO2的测量。此外,您将学习如何将CSS811与Arduino进行连接。 
 所需的材料 ●     Arduino UNO开发板 ●     CCS811空气质量传感器 ●     电位器(10k) ●     LCD液晶模块1602 ●     面包板 ●     连接导线 
 电路原理图 
  
 CCS811空气质量传感器 CCS811空气质量传感器是一款超低功耗数字气体传感器,集成了MOX(金属氧化物)气体传感器,可通过集成的MCU(微控制器单元)检测各种VOC(挥发性有机化合物),用于室内空气质量监测。 MCU由ADC(模数转换器)和I2C接口组成。它基于ams独特的微型热板技术,为低功耗的气体传感器提供高度可靠的解决方案。 
  在我们的电路中,我们使用该传感器来感测环境中TVOC和CO2的含量,并在LCD模块1602上显示数据。 
 引脚配置说明 CCS811空气质量传感器的引脚配置说明如下表所示: |  序号 |  引脚名称 |  描述 |  | 1 | VIN | 输入电源(3.3v至5v) |  | 2 | 3V3 | 3.3V输出引脚供外部使用 |  | 3 | GND | 电源地 |  | 4 | SDA | I2C时钟引脚 |  | 5 | SCL | I2C数据引脚 |  | 6 | WAKE | 传感器的唤醒引脚,应接地以便与传感器通信 |  | 7 | RST | 复位引脚:当接地时,传感器自行复位 |  | 8 | INT | 这是中断输出引脚,用于检测新的读数何时准备好或读数变得过高或过低 | 
 应用环境 ●     智能手机 ●     可穿戴式设备
 ●     家庭和楼宇自动化 ●     配饰品 
 代码和说明 在本文的末尾处给出了使用Arduino开发板和CCS811空气质量传感器进行TVOC和CO2测量的完整代码。 
 在下面的代码中,我们定义了用于1602 LCD和CCS811空气质量传感器的库。要下载CCS811的“Adafruit_CCS811.h”库,请点击此链接。 复制代码#include <LiquidCrystal.h>
#include "Adafruit_CCS811.h"
 下面的代码中我们定义了与Arduino连接的LCD模块1602的引脚。 复制代码LiquidCrystal lcd(12, 13, 8, 9, 10, 11); /// REGISTER SELECT PIN,ENABLE PIN,D4 PIN,D5 PIN, D6 PIN, D7 PIN
Adafruit_CCS811 ccs;
 以下的代码中,我们对LCD和CCS811空气质量传感器进行了设置,并对其进行校准以显示正确的温度,如下所示 复制代码void setup() {
  lcd.begin(16, 2); 
  ccs.begin();
  //calibrate temperature sensor
  while(!ccs.available());
  float temp = ccs.calculateTemperature();
  ccs.setTempOffset(temp - 25.0);
}
 在下面的代码中,我们使用函数“ccs.available()”(函数已经在库中定义)来检查是否有一些数据传入。当我们获得数据时,我们可以计算温度并在LCD模块1602上显示。 此外,如果CCS可用并且ccs.readData()返回false,那么我们使用ccs.geteCO2()和ccs.getTVOC()的TVOC值获得CO2值,如下面的代码所示。因此,我们可以使用CCS811空气质量传感器获得了空气质量参数的值。 复制代码void loop() {
  if(ccs.available()){
    float temp = ccs.calculateTemperature();
    if(!ccs.readData()){
      int co2 = ccs.geteCO2();
      int tvoc = ccs.getTVOC();
      lcd.setCursor(0, 0);
      lcd.print(String ("CO2:")+ String (co2)+String(" PPM"));
      lcd.setCursor(0, 1);
      lcd.print(String ("TVOC:")+ String (tvoc)+String(" PPB "));
      lcd.print(String("T:"+String (int(temp)))+String("C"));
      delay(3000);
      lcd.clear();     
    }
    else{
      lcd.print("ERROR");
      while(1);
    }
  }
}
 文章末尾给出了完整的Arduino代码。代码很简单,所有的工作都由其库本身完成,我们使用CCS库中定义的函数来获取CO2和TOVC的值。 
 代码 本文使用的完整代码如下:
 main.rar
(529 Bytes, 下载次数: 306) |