本文来源:https://mp.weixin.qq.com/s/DCr1C-lI63G9QoYaKL1KtQ
如果您不愿意本站收录,请来信告知:13951431913@139.com 或在右方提交评论。

一台 DIY 空气质量监测仪,能玩的不只是「测个 CO₂ 数值」——它把 ESP32-C3、4 颗 Sensirion/Bosch 传感器、一块自绘 4 层 PCB、激光切割玻璃顶盖、3D 打印外壳全揉进一个成品里,固件跑 ESPHome,直接接进 Home Assistant。作者 roepkefeller 把从电路、板厂打样、外壳建模到自校准算法全套开源,Star 数目前 53,硬件党拿来复刻或者魔改都很合适。
它一句话是什么
一台围绕 ESP32-C3-WROOM-02 打造的开源空气质量监测仪,主打「多传感器交叉补偿 + Home Assistant 原生集成」。
为什么值得看
市面上便宜的空气质量小盒子一大堆,但这个项目值得看的地方在于——它把「为什么这样设计」写得很清楚。
-
为什么明明有 3 颗温度传感器、2 颗湿度传感器,还要全都焊上去?作者给出的答案是:做中位数融合 + 交叉补偿,因为 SGP41 的 MOX 加热元件内部工作在约 400 °C,会把整块板子烤热,必须靠算法补偿。 -
电源部分不是随便一颗 LDO 完事:USB-C → ESD 保护 → 750 mA 自恢复保险丝 → 三条独立 3.3V 电源轨,SCD41 单独一条 LDO,SGP41/SHT40/BMP280 共用 TPS7A20 超低噪声 LDO(10 µVRMS),ESP32 用 buck 走高效路线。 -
PCB 是 4 层板(信号 / GND / 电源 / 信号),KiCad 源文件、JLCPCB 打样文件、SGP41 自绘封装全都在 repo 里。
一句话,它不是拿现成模块拼一拼,是从原理图到外壳一整套工程实践的公开样本。
最有意思的 3 个功能
1. 4 颗传感器交叉补偿,不是堆料是算法
-
SCD41:光声 NDIR 原理测 CO₂,接受 BMP280 的气压值做海拔补偿 -
SGP41:输出 VOC / NOx 指数(1–500),CO₂ 数据不可用时 LED 会 fallback 到 VOC 显示 -
SHT40:温湿度基准,中位数融合里权重双倍 -
BMP280:气压 + 为 SCD41 提供补偿输入
作者甚至给出了经验校正值:SHT40 补 −5.5 °C / +8 %RH,BMP280 补 −5.5 °C,SCD41 补 −1.5 °C / +4 %RH,还建议放一支基准温度计旁边稳定 30 分钟后自己调 YAML。
2. 固件走 ESPHome,Home Assistant 一插就见实体
不用自己写 C 代码,YAML 描述完就有一堆实体自动出现在 HA 里,Web UI 也直接内建。对不想折腾底层驱动的人非常友好。
3. 外壳是激光切玻璃顶盖 + 3D 打印底座
-
玻璃:2 mm 透明玻璃,DXF 文件走 Formulor 下单 -
底座:PLA 或 PETG,0.2 mm 层高 -
用 M2.5 热熔螺母 + 铜柱固定,比直接拧塑料结实很多
Fusion 360 源文件、STL、STEP、DXF 都开源,想改造型直接改。
动手实践:安装 / 快速开始
这是硬件项目,「快速开始」不是 npm install,而是一套备料 + 焊接 + 刷固件流程。README 里明确写了以下步骤:
Step 1. 备板 & 备料
# 用 KiCad 打开工程 git clone https://github.com/roepkefeller/air-quality-sensor.git
打开 hardware/ 里的 KiCad 工程,作者本人是发到 JLCPCB 打样 4 层板 + 手焊。BOM 里的核心料:ESP32-C3-WROOM-02、SCD41、SGP41、SHT40、BMP280、TLV62569A、TLV755P、TPS7A20、TPD2EUSB30。
Step 2. 手焊顺序(README 明确建议)
-
先焊 ESP32-C3-WROOM-02(最大件,底部散热焊盘需要热风或从背面加热) -
再焊 TLV62569A、TLV755P、TPS7A20、TPD2EUSB30 等 SOT/WSON 小封装(用锡膏 + 热风) -
焊 SGP41(注意 repo 里有自绘封装 air_quality_footprints.pretty/) -
焊 SCD41、SHT40、BMP280(Sensirion LCC 封装,SCD41 光学开孔部分别烤过头) -
最后焊 0402/0603 被动件和连接器
预期看到:板子通电后有 3.3V 输出、I2C 总线上能扫到 4 个地址。
Step 3. 刷 ESPHome 固件
repo 里带 ESPHome YAML 配置,装好 ESPHome 后编译烧录即可(USB-C 通过 5V/1A 供电就能刷):
pip install esphome esphome run <配置文件>.yaml
预期看到:Home Assistant 自动发现设备,出现 CO₂、VOC、NOx、温度、湿度、气压等实体,Web UI 也能直接访问。
踩坑提醒:
-
这是手工焊接项目,SGP41 是自绘封装,0402 电阻电容 + WSON 小封装对新手不太友好,建议至少备热风台 -
4 层板 JLCPCB 打样价格比 2 层贵一档,一次不建议只做 1 片 -
温度校正值是作者在自己环境实测出来的,你复刻后要自己重调,否则读数会偏 -
I2C 总线跑在 50 kHz(README 明确说明),不要按默认 100 kHz 配置
可以怎么玩 / 怎么用
- 家里房间空气监测
:接进 Home Assistant,配自动化——CO₂ 过 1000 ppm 自动开新风或提醒开窗 - 做工程练手
:4 层板、多路电源、超低噪声 LDO、I2C 多传感器融合,这些是嵌入式硬件工程里典型场景,拿这个项目啃一遍收获比看教程实在 - 改造成便携版
:作者原设计是插 USB 供电的桌面款,你可以接锂电改成移动版 - 换传感器阵列
:I2C 总线预留了 QWIIC 接口,可以外挂扩展
适合谁
-
想复刻一台能进 Home Assistant 的正经空气监测仪的智能家居党 -
想学多传感器交叉补偿 + 4 层板 layout的嵌入式 / 硬件工程师 -
想练SMD 手焊 + 热风返修的 Maker -
ESPHome 老玩家,想要一台不用自己写驱动的高质量硬件参考设计
不适合:只想开箱即用不想动烙铁的普通用户——目前 repo 里没有卖成品,全靠自己攒。
读者互动
你家里现在测空气用的是什么方案?米家小盒子、Awair、还是自己攒的 ESP 板?
评论区聊聊:如果让你在这套设计上再加一颗传感器,你会加什么?PM2.5、甲醛、还是氡气检测? 感兴趣的人多,我下期安排一篇 ESPHome 多传感器融合的深度拆解。
觉得有用就点个关注吧,下一期预告:一个把 AI 塞进单片机、成本压到令人发指的骚项目,别错过。
长按 / 扫码关注,硬件、AI、Maker 项目一条龙推送。
GitHub 地址
https://github.com/roepkefeller/air-quality-sensor