
AirCube 空气检测站
简介
AirCube 是一个基于 ESPHome 的 All in One 环境状态监测设备,可以监测各种环境状态,例如温度、湿度、二氧化碳浓度、PM 2.5 浓度等。
简介:AirCube 是一个基于 ESPHome 的 All in One 环境状态监测设备,可以监测各种环境状态,例如温度、湿度、二氧化碳浓度、PM 2.5 浓度等。开源协议
:CERN Open Hardware License
(未经作者授权,禁止转载)描述
AirCube 是一个基于 ESPHome 的 All in One 环境状态监测设备,可以监测各种环境状态,例如温度、湿度、二氧化碳浓度、PM 2.5 浓度、光照强度等,还可以与 Domoticz、Home Assistant 等智能家居系统集成,建立家庭环境数据监测系统。
固件、3D 模型开源地址:https://github.com/ohdarling/AirCube
实物图
数据图表
基于 Home Assistant 的历史数据图表:
CO2 浓度历史数据
光照强度历史数据
功能列表
- 概览页面,可以直观查看各种环境数据的当前数值,例如当前温度、湿度、PM 2.5 以及二氧化碳浓度
- 左右键切换传感器详情界面,可以查看具体细分项数值,例如 PM 1,PM 10 等
- 各项数据的历史趋势数据,通过记录过去 12 小时的数据并通过图表展示环境数据的变化趋势
- 特定传感器的详情数据,例如攀藤 PMS5003 可以同时检测 PM 1.0、PM 2.5、PM 10 浓度,在概览页面无法展示完全,就可以在详情页面展示出来
- 设备信息界面,可以展示当前设备的名称、Wi-Fi 连接情况、运行时间等基础信息
- 数据上报能力,可以通过 MQTT 将数据上报到 Domoticz 或 Home Assistant
- 批量部署能力,通过脚本批量部署设备固件
更新日志
- 2023.03.31
- 禁用 MQTT 无法连接时自动重启,防止未配置 MQTT Broker 时 AirCube 定时重启
- 2023.03.08
- 墨水屏在长时间使用后,可能会存在残影现象,建议还是使用 LCD 屏幕
- 2023.02.24
- 与小米温湿度传感器对比后,BME280 温度校正 -2,湿度 +10
- 添加重启功能,长按右键 5 秒以上,会重启 AirCube
- 添加 CO2 传感器校准功能,长按左键 5 秒以上,开启 MH-Z19 或 SenseAir S8 校准功能,校准前请将 AirCube 在室外放置运行 20 分钟以上
- 使用自定义组件读取 BME280 数据,避免 ESPHome 初始化失败的问题
- 可以在 GitHub 获取这个版本 AirCube 2023.02.24
目录结构
-
3D_Model - 设备外壳 3D 模型文件,可以通过 FDM 类型 3D 打印机打印
- AirCube_Back.stl - 后盖
- AirCube_Eink.stl - 使用 E-ink 屏幕时的外壳模型
- AirCube_Eink_Stand.stl - 使用 E-ink 屏幕时的屏幕支架
- AirCube_LCD.stl - 使用 LCD 屏幕时的外壳模型
- AirCube_LCD_Stand.stl - 使用 LCD 屏幕时的屏幕支架
-
Firmware - 基于 ESPHome 的设备固件,因传感器造型可变化,未编译成二进行,可以自行编译
-
Hardware - 包含用于制造 PCB 的 Gerber 文件和原理图
PCB
PCB 尺寸为 6cm x 6cm,四角安装孔直径为 2mm。
- PCB 正面为屏幕及触摸按钮安装位置。
- PCB 底面为传感器及 NodeMCU 安装位置,目前版本预留了 IR、433MHz 以及电源接头,但并未使用。
元件选型
图片 | 类型 | 型号 | 价格(元) | 说明 |
---|---|---|---|---|
![]() | 温湿度 | BME280 或 SHT31 | 22 | 其中 BME280 还额外支持压强检测,同时支持这两种传感器主要是因为它们的引脚顺序相同,可以替换使用。 |
![]() | 颗粒物浓度 | 攀藤 PMS5003 | 70 | 支持 PM 1.0、PM 2.5、PM 10 三种颗粒物浓度检测,以及 PMS5003ST,额外增加了甲醛浓度检测。另外 PMS7003 虽然同样可以使用,但是因为需要额外转接板,不能直接使用 1.25mm 8P 连接线,因此并不推荐。 |
![]() | 二氧化碳浓度 | MH-Z19B | 120 | 可以检测 400-5000 ppm 范围的二氧化碳浓度,当然也可以采用 SenseAir S8 传感器,它们的引脚位置和定义都完全一致。 |
![]() | 光照强度 | BH1750 | 4 | 如果使用光敏电阻还需要额外换算,还是直接采用传感器更简单直接。 |
![]() | 触摸按钮 | TTP223 | 0.3 | 这个模块触摸感应距离大,可以隔着外壳完成触摸操作,用来切换信息页。 |
![]() | 单片机 | NodeMCU-32S | 22 | 直接选用常见的 NodeMCU-32S 开发板,价格便宜,还可以直接给传感器提供 3.3V 供电。 |
![]() | 屏幕 | 1.54 LCD | 20 | 1.54 寸 SPI 接口 IPS 屏幕:分辨率 240x240,主控 ST7789V。 |
![]() | 屏幕 | 1.54 E-ink | 30 | 1.54 寸 SPI 接口 E-ink 屏幕:单色屏,只支持黑白,分辨率 200x200。 |
注:表格中的价格为淘宝上大致价格,随卖家不同价格也会不太相同。
注2:NodeMCU-32S 需要使用 30 PIN 版本。
其他配件
配件 | 型号 | 数量 | 用途 |
---|---|---|---|
![]() | 弯针 5P 2.54mm 母座 | 2 | 安装 BME280 以及 BH1750 |
![]() | 3P 2.54mm 母座 | 2 | 安装 TTP223 触摸传感器 |
![]() | 15P 2.54mm 母座 | 2 | 安装 NodeMCU-32S |
![]() | 5P 2.54mm 母座 | 1 | 安装 MH-Z19B |
![]() | 4P 2.54mm 母座 | 1 | 安装 MH-Z19B |
![]() | 8P 2.54mm 母座 | 1 | 安装 1.54 寸 LCD |
![]() | 8P 1.25mm 直针座 | 1 | 安装 PMS5003 |
![]() | M2*5 沉头自攻螺丝 | 8 | 固定 PCB 以及后盖 |
焊接
建议母座焊接顺序
- 5P 弯针 2.54mm 排母
- 8P 1.25mm 直针座
- 8P 2.54mm 母座
- 3Px2 2.54mm 母座
- 15P 2.54mm 母座
- 5P 及 4P 2.54mm 母座
其中 BME280 预留位置为 6P,使用弯 5P 母座时,请使用下侧 5P,保留最上针脚留空。
建议参考 立创开源平台 AirCube 项目中的 PCB 来进行焊接。
组装
3D 模型中,外壳和后盖均已预置 M2 螺丝孔,组装时使用 M2*5 自攻螺丝将 PCB 固定在外壳上,再将后盖固定在外壳上即可。
组装顺序
- 将 3D 打印的屏幕支架安装在 PCB 上
- 将屏幕安装到排母上,并且 M2 螺丝固定在屏幕支架上
- 将 2 个触摸传感器安装在排母上
- 将 PMS5003 传感器的连接线连接到 1.25mm 针座上
- 将 NodeMCU-32S 安装在排母上
- 将 MH-Z19B 安装在排母上
- 将 BH1750 安装在排母上
- 将 PCB 放进外壳中(可以倾斜着放进去),使用 M2 螺丝固定
- 将 PMS5003 固定在后盖上,有必要可以使用双面胶固定
- 将后盖使用 M2 螺丝固定在外壳上
- 将 BME280 在侧面安装在排母上
注意,BME280 预设安装位置为外壳外部,因此需要将其他部件安装完成,装入外壳固定好后,再从侧面将 BME280 插入 5P 母座。
另外,BH1750 的开孔是朝上的,如果需要避免积灰,可以使用透明胶带盖住。
编译和烧录固件
Firmware 目录中已经提供了 build.sh
脚本用于快速编译及烧录固件,需要本地安装乐鑫 esptool.py
,另外 build.sh
还接受以下参数用于定制可替换部分元件型号或上报数据参数:
- DP - 屏幕类型,st7789v 或 eink,默认 st7789v
- CO2 - 二氧化碳传感器型号,mhz19 或 s8,默认 mhz19
- TEMP - 温湿度传感器型号,bme280 或 sht31,默认 bme280
- DOMOTICZ - 是否启用 Domoticz 支持,enable 或 disable,默认 disable
- ROOM - 当前节点所处房间名称,需要英文字符,例如 livingroom
- IP - 当前节点 IP,建议使用固定 IP,便于后续 OTA 更新固件
- IDX_BH1750,IDX_PM25,IDX_CO2,IDX_TEMP,IDX_PRESSURE,IDX_HOCO - Domoticz 中对应传感器的设备 ID
另外,如果设置了 IDX_HOCO
,将会将 PM 2.5 传感器类型设置为 PMS5003ST。
另外,build.sh
还提供了 upload
参数,可以在编译完成后马上烧录固件。
如果所有传感器类型与默认一致,可以直接使用以下命令编译及烧录固件,注意,需要提前将 NodeMCU-32S 连接到电脑上:
./build.sh upload
如果需要定制传感器型号,例如将温湿度传感器替换为 sht31,可以使用以下命令:
TEMP=sht31 ./build.sh upload
焊接及组装
建议参考 PCB 来进行焊接和组装,其中 BH1750 和 BME280 传感器建议使用 2.54 弯针排母。
3D 模型中,外壳和后盖均已预置 M2 螺丝孔,组装时使用 M2*5 自攻螺丝将 PCB 固定在外壳上,再将后盖固定在外壳上即可。
已知问题
- 温湿度传感器靠近主体,ESP32 主控发热比较大,会影响温度和湿度采集结果,需要与其他传感器对比校准一下
为什么会有这个项目
可以参考这篇文章 超简单 DIY - AirCube 空气检测站。
设计图
BOM


评论