【HaaS Python硬件积木】空气质量检测模块 - CCS811

简介: 【HaaS Python硬件积木】空气质量检测模块 - CCS811

空气质量检测模块 - 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)


参数说明:

参数 类型 必选参数? 说明

i2cObj I2C 是 调用此函数前需确保i2cObj对象已经处于open状态

返回值:

CCS811对象创建成功,返回CCS811对象;CCS811对象创建失败,抛出Exception


示例代码:


from driver import I2C

import ccs811


i2cObj = I2C()

i2cObj.open("ccs811")

devObj = ccs811.CCS811(i2cObj)

print("ccs811 inited!")

1

2

3

4

5

6

7

输出:

ccs811 inited!

1

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)

1

2

3

4

5

6

7

8

9

10

11

12

13

输出:

ccs811 inited!

eCO2: 400 ppm

eCO2: 868 ppm

eCO2: 400 ppm

eCO2: 400 ppm

1

2

3

4

5

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)

1

2

3

4

5

6

7

8

9

10

11

12

13

输出:

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

1

2

3

4

5

6

7

8

9

10

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)

1

2

3

4

5

6

7

8

9

10

11

12

13

输出:

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

1

2

3

4

5

6

7

8

9

10

11

12

13

四、接口案例

此使用实例在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"

}


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

# 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)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

输出:

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

1

2

3

4

5

6

7

8

9

10

11

12

13


五、工作原理

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


序号 寄存器地址 功能说明 默认值

1 0x00 状态寄存器 –

2 0x01 测量模式寄存器 –

3 0x02 测量结果寄存器 –

4 0x20 硬件ID寄存器 0x81

5 0x21 硬件版本寄存器 0x1X

6 0xF4 APP启动寄存器 –

7 0xFF 软件重启寄存器 –

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




引脚分布如下:


序号 引脚名 功能说明

1 I2C_ADDR 低电平 - I2C地址总线0x5A 高电平 - I2C地址总线0x5B

2 nRESET 复位引脚,低电平有效

3 nINT 阈值中断引脚

4 PWM –

5 Sense –

6 VDD 电源正

7 nWAKE 唤醒引脚,低电平有效

8 AUX –

9 I2C_SDA I2C数据线

10 I2C_SCK I2C时钟线

————————————————

版权声明:本文为CSDN博主「HaaS技术社区」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/HaaSTech/article/details/125048199

相关文章
|
3天前
|
测试技术 Python
手动解决Python模块和包依赖冲突的具体步骤是什么?
需要注意的是,手动解决依赖冲突可能需要一定的时间和经验,并且需要谨慎操作,避免引入新的问题。在实际操作中,还可以结合使用其他方法,如虚拟环境等,来更好地管理和解决依赖冲突😉。
|
13天前
|
Python
在Python中,可以使用内置的`re`模块来处理正则表达式
在Python中,可以使用内置的`re`模块来处理正则表达式
34 5
|
21天前
|
机器学习/深度学习 PyTorch TensorFlow
使用Python实现智能食品质量检测的深度学习模型
使用Python实现智能食品质量检测的深度学习模型
70 1
|
23天前
|
Java 程序员 开发者
Python的gc模块
Python的gc模块
|
26天前
|
数据采集 Web App开发 JavaScript
python-selenium模块详解!!!
Selenium 是一个强大的自动化测试工具,支持 Python 调用浏览器进行网页抓取。本文介绍了 Selenium 的安装、基本使用、元素定位、高级操作等内容。主要内容包括:发送请求、加载网页、元素定位、处理 Cookie、无头浏览器设置、页面等待、窗口和 iframe 切换等。通过示例代码帮助读者快速掌握 Selenium 的核心功能。
78 5
|
25天前
|
Python
SciPy 教程 之 SciPy 模块列表 16
SciPy教程之SciPy模块列表16 - 单位类型。常量模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例代码展示了力学单位的使用,如牛顿、磅力和千克力等。
17 0
|
26天前
|
JavaScript Python
SciPy 教程 之 SciPy 模块列表 15
SciPy 教程之 SciPy 模块列表 15 - 功率单位。常量模块包含多种单位,如公制、质量、时间等。功率单位中,1 瓦特定义为 1 焦耳/秒,表示每秒转换或耗散的能量速率。示例代码展示了如何使用 `constants` 模块获取马力值(745.6998715822701)。
16 0
|
26天前
|
JavaScript Python
SciPy 教程 之 SciPy 模块列表 15
SciPy教程之SciPy模块列表15:单位类型。常量模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。功率单位以瓦特(W)表示,1W=1J/s。示例代码展示了如何使用`constants`模块获取马力(hp)的值,结果为745.6998715822701。
18 0
|
机器学习/深度学习 编解码 达摩院
HaaS轻应用(Python):基于HaaS-AI的图像分类
HaaS 即 Hardware as a Service, 它是加速AIoT开发者创新的一个积木平台。Python轻应用是跑在HaaS积木平台上的一套应用框架。他是基于MicroPython进行开发,继承了python优美简介的语法,同时提供了便捷的嵌入式硬件操作库。
HaaS轻应用(Python):基于HaaS-AI的图像分类
|
5天前
|
存储 数据挖掘 开发者
Python编程入门:从零到英雄
在这篇文章中,我们将一起踏上Python编程的奇幻之旅。无论你是编程新手,还是希望拓展技能的开发者,本教程都将为你提供一条清晰的道路,引导你从基础语法走向实际应用。通过精心设计的代码示例和练习,你将学会如何用Python解决实际问题,并准备好迎接更复杂的编程挑战。让我们一起探索这个强大的语言,开启你的编程生涯吧!
下一篇
无影云桌面