代码拉取完成,页面将自动刷新
CCS811空气质量传感器能够测量eCO2(equivalent CO2)和TVOC(Total Volatile Organic Compounds)浓度。可用于空气测量应用,例如:空气质量检测、空气净化器、新风系统等。 CCS811使用AMS独有的微热板技术,相比传统的气体传感器,功耗更低、预热时间更短、体积更小。内部集成ADC和MCU,可以对数据进行采集、计算,并且通过I2C返回数据。 CCS811支持多种模式:每1秒、10秒、1分钟、250毫秒测量一次以及休眠模式,这些模式在传感器测量期间进行了低功耗优化,因此CCS811适用于便携式应用。CCS811支持浓度报警, 当浓度超过用户设置的阈值时,INT引脚就会触发。 ⚠注意:该芯片对I2C进行了时钟延展,有些控制器不支持时钟延展,例如树莓派。
二氧化碳浓度参考
二氧化碳浓度(ppm) | 人体反映 |
---|---|
<500 | 正常 |
500-1000 | 感到空气污浊 |
1000-2500 | 感到困倦 |
2500-5000 | 对健康不利 |
大于5000 | 有中毒危险 |
TVOC浓度参考
TVOC浓度(ppb) | 人体反应 |
---|---|
<50 | 正常 |
50-750 | 可能会急躁不安和不舒服 |
750-6000 | 可能会急躁不安、不舒服和头疼 |
大于6000 | 头痛和其他神经问题 |
SKU:SEN0315
这里提供两种使用本库的方法:
/**
* @fn begin
* @brief 初始化函数
* @return 初始化结果
* @retval ERR_OK 初始化成功
* @retval ERR_DATA_BUS 总线数据错误
* @retval ERR_IC_VERSION 传感器id错误
*/
int begin();
/**
* @fn checkDataReady
* @brief 判断传感器数据是否准备就绪
* @return 检查结果
* @retval true 数据准备就绪
* @retval false 数据还未准备好
*/
bool checkDataReady();
/**
* @fn softReset
* @brief 复位传感器,清除所有配置数据。
*/
void softReset();
/**
* @fn setInTempHum
* @brief 设置环境参数
* @param temperature 设定温度值,单位:摄氏度,范围(-40~85℃)
* @param humidity 设置湿度值,单位:RH,范围(0~100)
*/
void setInTempHum(float temperature, float humidity);
/**
* @fn setMeasurementMode
* @brief 测量参数配置
* @param mode
* @n eClosed 空闲(在此模式下测量被禁用)
* @n eCycle_1s 恒功率模式,每秒测量室内空气质量
* @n eCycle_10s 每10秒测量一次脉冲加热模式的室内空气质量
* @n eCycle_60s 每60秒测量一次低功率脉冲加热模式的室内空气质量
* @n eCycle_250ms 恒功率模式,传感器每250ms测量一次1xx:预留模式(供以后使用)
* @param thresh 阈值中断模式
* @n 0 正常中断模式
* @n 1 达到或者超过阈值产生中断信号
* @param interrupt
* @n 0 禁止中断模式
* @n 1 当一个新的样本准备就绪时,int信号被触发(驱动低)
*/
void setMeasurementMode(eCycle_t mode, uint8_t thresh = 0, uint8_t interrupt = 0);
/**
* @fn setThresholds
* @brief 设置中断阈值
* @param lowToMed: 中断触发值范围从低到中
* @param medToHigh: 中断触发值范围中至高
*/
void setThresholds(uint16_t lowToMed, uint16_t medToHigh);
/**
* @fn getMeasurementMode
* @brief 获取当前配置参数
* @return configuration code, needs to be converted into binary code to analyze
* @n 第二位: 0 正常中断模式;1:当数据不在阈值内,中断模式触发nINT信号
* @n 第三位: 0 禁止中断; 1: 当一个新的样本准备就绪时,int信号被触发(驱动低)
* @n 第四到六位: 详情见 eCycle_t
*/
uint8_t getMeasurementMode();
/**
* @fn getCO2PPM
* @brief 获取当前的二氧化碳浓度
* @return 当前二氧化碳浓度,单位:ppm
*/
uint16_t getCO2PPM();
/**
* @fn getTVOCPPB
* @brief 得到当前TVOC浓度
* @return 当前TVOC浓度,单位:ppb
*/
uint16_t getTVOCPPB();
/**
* @fn readBaseLine
* @brief 获取当前基线数
* @return 当前基线数,16进制数
*/
uint16_t readBaseLine();
/**
* @fn writeBaseLine
* @brief 将基线数写入寄存器
* @param baseLine 基线数
*/
void writeBaseLine(uint16_t baseLine);
MCU | Work Well | Work Wrong | Untested | Remarks |
---|---|---|---|---|
Arduino uno | √ | |||
Mega2560 | √ | |||
Leonardo | √ | |||
ESP32 | √ | |||
micro:bit | √ |
Written by yangfeng(feng.yang@dfrobot.com), 2021. (Welcome to our website)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。