CCS811空气质量传感器怎么接线?Arduino读CO2与TVOC避坑

2026-10-18 09:39:37 51阅读

想量化室内空气好不好,CO2和挥发性有机物(TVOC)是最直观的两个指标。CCS811是一块支持I2C的数字空气质量传感器,能同时输出等效CO2浓度和TVOC浓度,接Arduino做空气质量监测刚刚好。这篇文章讲接线和几个初学者常踩的坑。

CCS811空气质量传感器与Arduino I2C接线图

四根线,注意地址不是默认的0x76

CCS811模块一般引出VIN、GND、SDA、SCL、WAKE等脚。VIN接3.3V或5V,GND共地,SDA接A4、SCL接A5,这是Uno上I2C的标准位置。它的I2C地址是0x5A,很多人按通用的0x76去扫描就找不到设备,这是第一道坎。

还有一个特殊脚叫WAKE,用来唤醒芯片。正常情况下把WAKE一直拉低,芯片就保持活跃状态;如果悬空或拉高,I2C会进不了总线。很多合封板已经把WAKE接到地,但用裸片或某些转接板时一定要单独处理。

CCS811用的是“时钟延长”机制,读数据时会对SPL拉长时钟。Arduino Uno在对应版本的Wire库里做I2C通信一般OK,但某些精简的主控或过旧固件会遇到超时,这也是常见的不读值原因。

CCS811室内空气质量监测应用场景

读懂读数:eCO2是等效估计,别当精确值

芯片输出的eCO2范围约400到8192ppm、TVOC约0到1187ppb。注意这个“e”代表estimated(估计)——它不是真正的CO2传感器,是靠金属氧化物电阻变化结合算法估算出来的等效浓度,适合看趋势和做相对好坏判断,不适合拿去做精确计量。

芯片有个老化/预热的过程,刚上电或长期断电后再用,前几个小时的读数会明显偏高、漂移明显,要让它先跑一段时间、让基线稳定后再当参考。这也是为什么很多人“刚买来读数爆表”——别慌,让它先呼吸几小时。

三个高频坑提前避开

坑一:WAKE没处理或地址扫错,I2C找不到设备。先扫I2C地址确认0x5A在不在,再往下查。

坑二:测量间隔太密。CCS811每次测量需要一定间隔,mm连续高频轮询会读到上一次的结果或返回忙状态。

坑三:芯片怕酒精、发胶这类高浓度气体冲击,靠近这些会瞬间报出爆表值并破坏基线。摆设备时要避开这些干扰源。

跑通后,做个客厅空气质量灯、办公室CO2提示器,或者联动新风自动开窗,都挺实用。


作者:写launch的皮皮
链接:https://www.aiddithome.com/p/74c69674e1936.html
本作版权归作者所有,未经允许请勿转载。若存在违规行为,您可以点击 “举报”。


登录 后发表评论
4条评论
第三次终于亮了
1楼 · 2026-10-18 09:39:38

eCO2是估算不是真实值,适合看趋势,别拿去做精确计量

探头看一眼
2楼 · 2026-10-18 09:39:38

WAKE脚要拉低才进总线,用裸片时这步特别关键

板砖搬不动
3楼 · 2026-10-18 09:39:37

地址是0x5A不是0x76,我按通用地址扫不到设备,卡了好久

阿强焊点总飞
4楼 · 2026-10-18 09:39:37

刚上电读数爆表别慌,要让它先预热跑几小时基线才稳,是真的