CO2二氧化碳传感器TVOC传感器ccs811使用笔记IIC驱动ESP32/STM32/空气盒子应用

ccs811使用笔记

相关代码:
https://github.com/gschorcht/ccs811-esp-idf

应用案例:
https://item.taobao.com/item.htm?spm=a230r.1.14.16.77576bb8fnscXp&id=589522011703&ns=1&abbucket=3#detail

联系qq:117013107

1、测量范围:
400-8192 ppm范围内的等效CO2(Eco2)
0-1187 ppb范围内的总挥发性有机化合物(TVOC)
2、ccs811_set_environmental_data可送入温湿度数据,进行温湿度补偿计算
3、CCS81支持24小时内的自动基线校正。使用ccs811_get_baseline函数,可以在传感器断电之前保存当前基线值。在传感器再次通电后,可以使用ccs811_set_baseline设置基线功能恢复该基线,以继续自动基线过程。
4、WAKE管脚要接地

浓度范围:co2
在这里插入图片描述

浓度范围:TVOC
1 ppm = 1.2mg/m3

0-200绿
200-400黄
400以上红

CCS811应用总结
1、ccs811有5个应用模式(0-4),我们使用模式2,Pulse heating mode IAQ measurement every 10 seconds,10s检测周期,2%的容错,数据读取周期为11S
2、模式切换过程比较复杂,我们应用时不使用模式切换,一直保持模式2
3、芯片出厂时会有磨合期,建议出厂后连续工作24-48小时后,再正常使用,已确保测量准确
4、TVOC测量范围0-1000ppb,co2测量范围400-5000ppm–程序需更新
5、温湿度补偿,可将外部温湿度传感器测量数据送入补偿,或者外接NTC补偿
------补偿寄存器说明
6、中断功能:可选在测量周期结束后中断或者在超过阈值后中断
7、NTC补偿,RNTC和RREF之间的电压测量进行补偿
8、自动基线校正:CCS811连续监测用于计算模式1-3中TVOC和ECO2浓度的基线。在典型环境中,气体浓度预计会变化,因此计算基线校正的最短时间为24小时。
9、手动基线校正
9.1如果主机系统知道其处于清洁空气中,则可以通过将当前模式(例如模式1、2和3)重新写入Meas_模式寄存器,将基线重置为当前值。
9.2如果之前编码的基线值已从基线寄存器中保存(当空气已知干净时),主机系统可以将其写回基线寄存器1。(适用于断电后重启)
注意:如果在传感器稳定时将一个值写入基线寄存器,则TVOC和ECO2计算的输出可能高于预期值。
10、管脚定义
10.1 pin1-addr管脚:低电平,地址为0X5A,高电平,地址为0X5B
10.2 pin2-reset:4.7K上拉到VCC
10.3 pin4和pin5要接一起
10.4 pin7-wake接地
10.5 pin8-aux-外接NTC补偿引脚,如不接,保持悬空
10.6 EP-接地
11、典型电路
在这里插入图片描述
12、读CO2和TVOC寄存器
在这里插入图片描述
此寄存器读取看一下程序,相关错误代码输出?
13、温湿度补偿寄存器和外接NTC寄存器代码与datasheet对应
14、NTC的选型和计算
在这里插入图片描述
14.1 RREF和RNTC建议阻值相同=100KΩ,
如图,RREF=100K,RNTC=10K

在这里插入图片描述
使用程序中 ccs811_get_ntc_resistance 函数得出RNTC,然后计算出当前环境温度值,将温度值带入ccs811_set_environmental_data 函数进行补偿,湿度值没有的情况下,将湿度值置为50%默认值
bool ccs811_set_environmental_data (ccs811_sensor_t* dev,
float temperature,
float humidity)
{
if (!dev) return false;

uint16_t temp = (temperature + 25) * 512;   // -25 °C maps to 0
uint16_t hum  = humidity * 512;

// fill environmental data
uint8_t data[4]  = { temp >> 8, temp & 0xff,
                     hum  >> 8, hum  & 0xff  };

// send environmental data to the sensor
if (!ccs811_reg_write(dev, CCS811_REG_ENV_DATA, data, 4))
{
    printf ("Could not write environmental data to sensor.");
    return false;
}

return true;

}

15、焊接温度不超过250℃
16、CCS811也要有隔热槽
17、手工焊接方法:加热pcb锡膏后将芯片放在焊盘上,而不直接吹芯片
18、版本号读取

猜你喜欢

转载自blog.csdn.net/PeterSun01/article/details/88687290