打印
[Studio]

零知开源分享-空气质量传感器CCS811获取CO2和VOC数据

[复制链接]
721|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
roc2two|  楼主 | 2019-5-16 16:14 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 roc2two 于 2019-5-27 16:32 编辑

在本篇**中,将主要介绍如何使用零知开发板和CCS811空气质量传感器进行CO2和VOC的测量。此外,您将学习如何将CSS811与零知开发板进行连接。
1、说明
MCU:零知开发板-标准板

模块:CCS811空气质量传感器模块

CCS811空气质量传感器是一款超低功耗数字气体传感器,集成了MOX(金属氧化物)气体传感器,可通过集成的MCU(微控制器单元)检测各种VOC(挥发性有机化合物),用于室内空气质量监测。 我们使用该传感器来感测环境中VOC和CO2的含量。
开发工具:零知开源开发工具

2、操作步骤
(1)连接
通过查看模块的数据手册,可以发现以下表格:

一般需要用到的引脚有:SDA、SCL、ADD、INT、WAK、VCC、GND。这里需要说明一下,SDA和SCL大家比较熟悉,但是WAK就比较少见,WAK需要为低电平的时候SDA、SCL才能正常通信。
所以硬件连接需要把WAK引脚接低电平,如下所示:

(2)上传程序
硬件连接好后就可以打开我们的零知开源开发工具,找到以下示例:

选择正确串口,编译上传程序,打开调试窗口即可看到室内CO2和VOC的含量了。
3、测量结果

4、核心代码
#include "SparkFunCCS811.h"

//#define CCS811_ADDR 0x5B //Default I2C Address
#define CCS811_ADDR 0x5A //Alternate I2C Address

CCS811 mySensor(CCS811_ADDR);

void setup()
{
  Serial.begin(9600);
  Serial.println("CCS811 Basic Example");

  //It is recommended to check return status on .begin(), but it is not
  //required.
  CCS811Core::status returnCode = mySensor.begin();
  if (returnCode != CCS811Core::SENSOR_SUCCESS)
  {
    Serial.println(".begin() returned with an error.");
    while (1) //Hang if there was a problem.
        {
                Serial.println("sensor begin error");
                delay(200);
        }
  }
}

void loop()
{
  //Check to see if data is ready with .dataAvailable()
  if (mySensor.dataAvailable())
  {
    //If so, have the sensor read and calculate the results.
    //Get them later
    mySensor.readAlgorithmResults();

    Serial.print("CO2[");
    //Returns calculated CO2 reading
    Serial.print(mySensor.getCO2());
    Serial.print("] tVOC[");
    //Returns calculated TVOC reading
    Serial.print(mySensor.getTVOC());
    Serial.print("] millis[");
    //Simply the time since program start
    Serial.print(millis());
    Serial.print("]");
    Serial.println();
  }

  delay(10); //Don't spam the I2C bus
}


使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

75

主题

85

帖子

1

粉丝