无标题

Posted HaaS技术社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无标题相关的知识,希望对你有一定的参考价值。

空气质量检测模块 - CCS811

来这里发现更多拿来即用的硬件积木

https://haas.iot.aliyun.com/solution/detail/hardware

一、产品简介

通过CCS811传感器模块可以测量环境中TVOC(总挥发性有机物质)浓度和eCO2(二氧化碳)浓度,作为衡量空气质量(IAQ)的指标。

引脚定义

  • VCC:3.3V
  • GND:接地
  • SCL:I2C时钟
  • SDA:I2C数字
  • WAK:接地
  • INT:NC(阈值中断引脚)
  • RST:NC(复位引脚)
  • ADD:NC

二、技术参数

  • 供电电压:3.3V
  • 接口:I2C接口
  • 分辨率:14位
  • 工作电流:20mA
  • 睡眠模式的电流:3uA
  • 模块尺寸:15mm * 21mm

三、软件接口

CCS811传感器HaaS Python驱动:下载地址

CCS811(i2cObj) - 创建CCS811驱动对象

  • 函数原型:

ccs811Obj = CCS811(i2cObj)

  • 参数说明:
参数类型必选参数?说明
i2cObjI2C调用此函数前需确保i2cObj对象已经处于open状态
  • 返回值:
    CCS811对象创建成功,返回CCS811对象;CCS811对象创建失败,抛出Exception

  • 示例代码:

from driver import I2C
import ccs811

i2cObj = I2C()
i2cObj.open("ccs811")
devObj = ccs811.CCS811(i2cObj)
print("ccs811 inited!")
  • 输出:
ccs811 inited!

geteCO2 - 获取空气中二氧化碳浓度

  • 函数功能:
    获取空气中二氧化碳浓度

  • 函数原型:

CCS811.geteCO2()

  • 参数说明:

  • 返回值:

返回值类型说明
status整型0-无效数值;
1-有效数值
eco2整型单位:ppm,>=400
  • 示例:
from driver import I2C
import ccs811
import utime

i2cObj = I2C()
i2cObj.open("ccs811")
devObj = ccs811.CCS811(i2cObj)
print("ccs811 inited!")
while True:
    status,eco2 = devObj.geteCO2()
    if status == 1:
        print('eCO2: %d ppm' %(eco2))
    utime.sleep(1)
  • 输出:
ccs811 inited!
eCO2: 400 ppm
eCO2: 868 ppm
eCO2: 400 ppm
eCO2: 400 ppm

getTVOC - 获取空气中挥发有机物的浓度

  • 函数功能:
    获取空气中挥发有机物的浓度

  • 函数原型:

CCS811.getTVOC()

  • 参数说明:

  • 返回值:

返回值类型说明
status整型0-无效数值;
1-有效数值
tvoc整型单位:ppb
  • 示例:
from driver import I2C
import ccs811
import utime

i2cObj = I2C()
i2cObj.open("ccs811")
devObj = ccs811.CCS811(i2cObj)
print("ccs811 inited!")
while True:
    status,tvoc = devObj.getTVOC()
    if status == 1:
        print('TVOC: %d ppb' %(tvoc))
    utime.sleep(1)
  • 输出:
ccs811 inited!
TVOC: 0 ppb
TVOC: 0 ppb
TVOC: 0 ppb
TVOC: 3 ppb
TVOC: 734 ppb
TVOC: 68 ppb
TVOC: 129 ppb
TVOC: 62 ppb
TVOC: 25 ppb

geteCO2TVOC - 获取空气中二氧化碳以及挥发有机物的浓度

  • 函数功能:
    获取空气中二氧化碳以及挥发有机物的浓度

  • 函数原型:

CCS811.geteCO2TVOC()

  • 参数说明:

  • 返回值:

返回值类型说明
status整型0-无效数值;
1-有效数值
eco2整型单位:ppm,>=400
tvoc整型单位:ppb
  • 示例:
from driver import I2C
import ccs811
import utime

i2cObj = I2C()
i2cObj.open("ccs811")
devObj = ccs811.CCS811(i2cObj)
print("ccs811 inited!")
while True:
    status,eco2,tvoc = devObj.geteCO2TVOC()
    if status == 1:
        print('eCO2: %d ppm, TVOC: %d ppb' % (eco2, tvoc))
    utime.sleep(1)
  • 输出:
ccs811 inited!
eCO2: 400 ppm, TVOC: 0 ppb
eCO2: 400 ppm, TVOC: 0 ppb
eCO2: 400 ppm, TVOC: 0 ppb
eCO2: 400 ppm, TVOC: 0 ppb
eCO2: 400 ppm, TVOC: 0 ppb
eCO2: 400 ppm, TVOC: 0 ppb
eCO2: 1495 ppm, TVOC: 168 ppb
eCO2: 481 ppm, TVOC: 12 ppb
eCO2: 400 ppm, TVOC: 0 ppb
eCO2: 400 ppm, TVOC: 0 ppb
eCO2: 400 ppm, TVOC: 0 ppb
eCO2: 400 ppm, TVOC: 0 ppb

四、接口案例

此使用实例在board.json中定义了名为CCS811的I2C类型的对象。在Python脚本中周期性的获取二氧化碳、有机物浓度并打印在日志中。

  • 代码:
    board.json配置

    "name": "board-name",
    "version": "1.0.0",
    "io": 
      "ccs811": 
        "type": "I2C",
        "port": 0,
        "addrWidth": 7,
        "freq": 400000,
        "mode": "master",
        "devAddr": 90
      
    ,
    "debugLevel": "ERROR",
    "repl": "disable"

# Python代码
from driver import I2C
import ccs811
import utime

i2cObj = I2C()
i2cObj.open("ccs811")
devObj = ccs811.CCS811(i2cObj)
print("ccs811 inited!")
while True:
    status,eco2,tvoc = devObj.geteCO2TVOC()
    if status == 1:
        print('eCO2: %d ppm, TVOC: %d ppb' % (eco2, tvoc))
    utime.sleep(1)
  • 输出:
ccs811 inited!
eCO2: 400 ppm, TVOC: 0 ppb
eCO2: 400 ppm, TVOC: 0 ppb
eCO2: 400 ppm, TVOC: 0 ppb
eCO2: 400 ppm, TVOC: 0 ppb
eCO2: 400 ppm, TVOC: 0 ppb
eCO2: 400 ppm, TVOC: 0 ppb
eCO2: 1495 ppm, TVOC: 168 ppb
eCO2: 481 ppm, TVOC: 12 ppb
eCO2: 400 ppm, TVOC: 0 ppb
eCO2: 400 ppm, TVOC: 0 ppb
eCO2: 400 ppm, TVOC: 0 ppb
eCO2: 400 ppm, TVOC: 0 ppb

五、工作原理

INA219传感器寄存器描述如下表所示:

序号寄存器地址功能说明默认值
10x00状态寄存器
20x01测量模式寄存器
30x02测量结果寄存器
40x20硬件ID寄存器0x81
50x21硬件版本寄存器0x1X
60xF4APP启动寄存器
70xFF软件重启寄存器

从下图可以看到CCS811内置I2C通信单元,与MCU进行数据交互。其中nINT和nRESET是可选的,根据实际项目需要而定,nWAKE低电平状态为激活CCS811。

引脚分布如下:

序号引脚名功能说明
1I2C_ADDR低电平 - I2C地址总线0x5A 高电平 - I2C地址总线0x5B
2nRESET复位引脚,低电平有效
3nINT阈值中断引脚
4PWM
5Sense
6VDD电源正
7nWAKE唤醒引脚,低电平有效
8AUX
9I2C_SDAI2C数据线
10I2C_SCKI2C时钟线

以上是关于无标题的主要内容,如果未能解决你的问题,请参考以下文章

实验室TVOC检测仪检测高浓度VOC有机废气后归零速度的改进对比试验

化学2.1

产业物联网赋能养殖污水处理设备砥砺前行

童之梦德国KIBANA(可芭纳)有机奶粉---至纯有机,幸福味道

纺织污水处理中PLC远程监控的应用

纺织污水处理中PLC远程监控的应用