气体传感器之二氧化碳采集,使用盛思瑞SCD4X传感器,体积小,精度高,接口简单;
硬件
由于硬件使用IIC接口,封装需要自己画,这里就不多做介绍了,原理图如下
软件
设备的IIC从地址为0x62,上点电压达到2.25V,并保持1000ms之后,可以开始进行IIC操作。IIC机基本配置这里也不多进行诉说了。
基础指令
开始周期测量
向芯片写入0x21b1,高8位在前,即可开始周期测量
读取数据
从芯片0xec05处读取9个数据,从前到后分别为
bit0 | bit1 | bit2 | bit3 | bit4 | bit5 | bit6 | bit7 | bit8 |
---|---|---|---|---|---|---|---|---|
CO2高八位 | CO2低八位 | CO2校验位 | 温度数据高八位 | 温度数据低八位 | 温度数据校验位 | 湿度数据高八位 | 湿度数据低八位 | 湿度数据校验位 |
其中温度数据需要经过关系式进行转换即
$ T= -45+175* \dfrac{S_{T-Data}}{2^{16}} $
其中温度数据需要经过关系式进行转换即
$ RH= 100* \dfrac{S_{RH-Data}}{2^{16}} $
停止周期测量
向芯片写入0x3f86,高八位在前,即可停止周期测量
数据补偿
关于此芯片的数据补偿,本人没有测试过,不够根据数据手册说明,是可以补偿的,并且可以手动设置补偿数值。
其中高度补偿与压力补偿可以提高CO2的精度,温度补偿可以提高温湿度数据的精度。在设置补偿值的时候,需要在idle mode,需要停止周期测量
详细的数值补偿操作自行查阅3.6节
低功耗操作
要么将SCD4x断电
要么开启低功耗周期测量,开启之后,读取数据读取速度降低到30/times,在读取之前,需要判断数据是否更新,
此操作自行查阅3.8节,本人也没有实际测试过
- SCD41有单次测量模式
CRC8校验
数据手册上已经将源码贴出来,直接使用即可