ESP8266-Arduino编程实例-CCS811数字气体传感器驱动

CCS811数字气体传感器驱动

1、CCS811介绍

CCS811 是一种低功耗数字气体传感器解决方案,它集成了用于检测通常在室内发现的低水平 VOC 的气体传感器解决方案、微控制器单元 (MCU) 和模数转换器,用于监控本地环境并提供 通过标准 I2C 数字接口上的等效 CO2 或 TVOC 输出指示室内空气质量。

在这里插入图片描述

CCS811具有如下特性:

  • 集成单片机
  • 板载处理
  • 标准数字接口
  • 优化的低功耗模式
  • 室内空气质量阈值警报
  • 可编程基线
  • 2.7mm x 4.0mm LGA 封装
  • 组件数量少
  • 成熟的技术平台
  • 接口:I2C
  • 电源电压 [V] 1.8 至 3.6
  • 功耗 [mW] 1.2 至 46
  • 环境温度范围 [°C] -40 至 85
  • 环境湿度范围 [% r.h.] 10 至 95

2、硬件准备

  • ESP8266 NodeMCU开发板一块
  • CCS811传感器模块一个
  • 面板板一个
  • 杜邦线若干
  • 数据线一条

硬件接线如下:

传感器引脚 ESP8266开发板引脚
Vin 5v
Gnd Gnd
SCL D1
SDA D2

3、软件准备

  • Arduino IDE或VSCode + PlatformIO

在前面的文章中,对如何搭建ESP8266开发环境做了详细的介绍,请参考:

ESP8266 NodeMCU的引脚介绍在前面的文章中做了详细的介绍,请参考:

4、代码实现

本次实例使用如下驱动库:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "Adafruit\_CCS811.h"
Adafruit_CCS811 ccs;
void setup() {
Serial.begin(9600);
Serial.println("CCS811 test");
if(!ccs.begin()){
Serial.println("Failed to start sensor! Please check your wiring.");
while(1);
}
//calibrate temperature sensor
while(!ccs.available());
float temp = ccs.calculateTemperature();
ccs.setTempOffset(temp - 25.0);
}
void loop() {
if(ccs.available()){
float temp = ccs.calculateTemperature();
if(!ccs.readData()){
Serial.print("CO2: ");
Serial.print(ccs.geteCO2());
Serial.print("ppm, TVOC: ");
Serial.print(ccs.getTVOC());
Serial.print("ppb Temp:");
Serial.println(temp);
}
}
else{
Serial.println("ERROR!");
while(1);
}
delay(500);
}

文章来源: https://iotsmart.blog.csdn.net/article/details/126678304