风筝
发表于: 2022-4-12 10:32:54 | 显示全部楼层

在本篇文章中,我们使用Arduino开发板连接CO2和TVOC 气体传感器CCS811,并测量空气中的CO2和TVOC浓度。CCS811空气质量传感器是一款数字气体传感器,能够检测各种总挥发性有机化合物 (TVOC) 和具有金属氧化物 (MOX)的等效二氧化碳 (eCO2)。因此,我们可以使用该传感器来识别空气质量是否纯净。


在以前的帖子中,我们使用PMS5003或MQ135气体传感器制作了一些项目,例如颗粒物浓度 (PM2.5) 测量和空气质量指数 (AQI)。这些传感器非常适合测量空气质量,但无法测量二氧化碳浓度和总挥发性有机化合物浓度。而CCS811是市场上测量这些参数的最佳传感器。 CCS811是一款非常小巧的超​​低功耗设备,可用于可穿戴设备和手持设备,用于监测室内空气质量。


在本文中,我们将介绍CCS811的工作原理、内部架构和引脚配置。然后使用CCS811 Arduino库,我们将编写一些示例代码并获取CO2和TVOC的值,然后将它们显示在串口监视器上。另外,我们将在0.96寸I2C OLED显示屏上显示CO2和TVOC浓度值。


所需的组件

●    Arduino Nano开发板

●    CO2和TVOC传感器CCS811

●    0.96寸I2C OLED显示屏

●    连接跳线

●    面包板


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


CCS811空气质量传感器(Air Quality Sensor)是一种数字气体传感器,可检测各种总挥发性有机化合物 (TVOC) 以及等效的二氧化碳 (eCO2) 和金属氧化物 (MOX) 浓度。该传感器可用于监测室内空气质量。该系统可与包括模数转换器 (ADC) 和 I2C 接口的微控制器单元 (MCU) 一起使用。


您可以将CCS811连接到Arduino或任何其他微控制器,这样就可以得到总挥发性有机化合物 (TVOC) 读数和等效二氧化碳读数 (eCO2)。 CCS811支持智能算法来处理原始传感器测量值,以输出TVOC值或等效CO2 (eCO2) 浓度。该传感器可以支持多种测量模式,如低功耗模式和空闲模式,以延长便携式应用中的电池寿命。


该传感器测量的eCO2浓度范围为百万分之400至8192 (ppm),TVOC浓度范围为十亿分之0至1187 (ppb)。除此之外,它还可以检测醇、醛、酮、有机酸、胺、脂肪烃和芳香烃。您可以查看CCS811数据表了解有关其架构和构造的更多信息。


CCS811气体传感器的特点

●    内部集成单片机

●    工作电压:1.8V 至 3.6V

●    板载处理算法

●    标准 I2C 数字接口,I2C地址为0x5A或0X5B

●    优化的低功耗模式

●    2.7mm x 4.0mm x 1.1mm LGA 封装

●    组件数量少

●    成熟的技术平台,紧凑且经济

●    eCO2 测量范围:400 至 8192ppm

●    TVOC 测量范围:0 至 1187ppb

●    多种驱动模式,每1秒、10秒、60秒或每250毫秒进行一次测量

●    兼容Arduino和CircuitPython

●    集成12位ADC,用于传感器读数和数字化转换

●    复位/中断控制


CCS811的引脚配置

1.  VCC – 电源引脚,使用3.3V为模块供电。

2.  GND – 电源和逻辑的公共地。

3.  SCL – I2C 时钟引脚。

4.  SDA – I2C数据引脚。

5. WAKE – 唤醒引脚,需要将其拉至GND才能与传感器通信。将此线拉高可以使传感器进入睡眠状态。

6. INT – 中断输出引脚,可以使用它来检测何时准备好新读数或读数何时过高或过低。

7. RST – 复位引脚。当它被拉到GND时,传感器会自动复位。

8. ADD – 地址选择位,允许选择备用地址。当ADDR为低时,7位I2C地址为0x5A。当ADDR为高电平时,7位I2C地址为0x5B。


如何在Arduino中使用CCS811气体传感器?

现在让我们将CCS811空气质量气体传感器与Arduino连接并测量CO2和TVOC浓度。按照下面的电路图进行连接。


将CCS811模块的Vin和GND引脚分别连接到Arduino开发板的3.3V和GND引脚。不要用5V为传感器供电,因为传感器最多只能支持3.6V。将传感器的SDA和SCL引脚分别连接到Arduino的A4和A5引脚。将CCS811的WAKE引脚连接到GND。不要将WAKE引脚留空。

CCS811-Arduino-Connection.jpg


安装CCS811的Arduino库

CCS811库用于将CCS811传感器与Arduino连接。库文件由Adafruit和Sparkfun编写。您可以使用这两个的任意一个库。下面给出了这两个库的下载链接。

●    CCS811 Adafruit库

●    CCS811 Sparkfun库


CCS811与Arduino连接的基础代码

本文中使用了Adafruit CCS811库来获取CO2和TVOC的值。CCS811的默认I2C地址为0x5A,您可以修改库文件中的I2C地址。代码如下:


上传代码后,打开串口监视器。如果连接正确,您将看到显示测量的CO2和TVOC值。在干净的空气和洁净室内空间中,串口监视器将如下所示:

snip1.jpg


建议提前20分钟预热CCS811,然后才能生成准确的读数。为了测试传感器的工作情况,您可以使用烟雾对传感器吹气。此时,CO2和TVOC值都将升高。

snip2.jpg


在OLED显示屏上显示CO2和TVOC值

您可以在上述电路中添加一个OLED显示屏。使用OLED库,您可以在OLED显示屏上显示CO2和TVOC的浓度值。


下面给出了将OLED显示屏与Arduino开发板和CCS811传感器模块连接的电路图。

CO2-TVOC-Meter.jpg


Arduino开发板和CCS811模块之间的连接保持不变。将OLED显示屏的SDA和SCL引脚连接到Arduino的A4和A5。将OLED显示屏的VCC引脚和GND分别连接到Arduino的3.3V和GND。

CO2-TVOC-CCS811.jpg


OLED显示屏显示CO2的Arduino代码

CCS811 Arduino OLED的代码如下所示。需要为OLED显示屏添加2个库。从以下链接下载库并将其添加到Arduino的库文件夹。

●    Adafruit SSD1306 库

●    Adafruit GFX 库


以下是完整的代码,您可以将其上传到Arduino开发板。


上传代码后,OLED显示屏开始显示CO2和TVOC的浓度值。

CCS811-Test.jpg


以上就是使用CCS811空气质量气体传感器和Arduino进行CO2和TVOC测量的方法,如果有任何疑问,请随时在本帖下面回复。


跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 700 | 回复: 1483



手机版|

GMT+8, 2024-5-9 01:13 , Processed in 0.071069 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表