发作品签到
标准版

AirCube 空气检测站

工程标签

1.2w
0
0
17

简介

AirCube 是一个基于 ESPHome 的 All in One 环境状态监测设备,可以监测各种环境状态,例如温度、湿度、二氧化碳浓度、PM 2.5 浓度等。

简介:AirCube 是一个基于 ESPHome 的 All in One 环境状态监测设备,可以监测各种环境状态,例如温度、湿度、二氧化碳浓度、PM 2.5 浓度等。

开源协议

CERN Open Hardware License

(未经作者授权,禁止转载)
创建时间:2022-12-17 12:04:39更新时间:2023-11-28 01:57:20

描述

AirCube

AirCube 是一个基于 ESPHome 的 All in One 环境状态监测设备,可以监测各种环境状态,例如温度、湿度、二氧化碳浓度、PM 2.5 浓度、光照强度等,还可以与 Domoticz、Home Assistant 等智能家居系统集成,建立家庭环境数据监测系统。

固件、3D 模型开源地址:https://github.com/ohdarling/AirCube

实物图

aircube

数据图表

基于 Home Assistant 的历史数据图表:

CO2 浓度历史数据

co2history.jpg

光照强度历史数据

luxhistory.jpg

功能列表

  • 概览页面,可以直观查看各种环境数据的当前数值,例如当前温度、湿度、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 以及电源接头,但并未使用。

aircube-pcb-top.png
aircube-pcb-bottom.png

元件选型

图片类型型号价格(元)说明
aircube-part-bme280.png温湿度BME280 或 SHT3122其中 BME280 还额外支持压强检测,同时支持这两种传感器主要是因为它们的引脚顺序相同,可以替换使用。
aircube-part-pms5003.png颗粒物浓度攀藤 PMS500370支持 PM 1.0、PM 2.5、PM 10 三种颗粒物浓度检测,以及 PMS5003ST,额外增加了甲醛浓度检测。另外 PMS7003 虽然同样可以使用,但是因为需要额外转接板,不能直接使用 1.25mm 8P 连接线,因此并不推荐。
aircube-part-mhz19.png二氧化碳浓度MH-Z19B120可以检测 400-5000 ppm 范围的二氧化碳浓度,当然也可以采用 SenseAir S8 传感器,它们的引脚位置和定义都完全一致。
aircube-part-bh1750.png光照强度BH17504如果使用光敏电阻还需要额外换算,还是直接采用传感器更简单直接。
aircube-part-touch-sensor.png触摸按钮TTP2230.3这个模块触摸感应距离大,可以隔着外壳完成触摸操作,用来切换信息页。
aircube-part-nodemcu32s.png单片机NodeMCU-32S22直接选用常见的 NodeMCU-32S 开发板,价格便宜,还可以直接给传感器提供 3.3V 供电。
aircube-part-lcd.png屏幕1.54 LCD201.54 寸 SPI 接口 IPS 屏幕:分辨率 240x240,主控 ST7789V。
aircube-part-eink.png屏幕1.54 E-ink301.54 寸 SPI 接口 E-ink 屏幕:单色屏,只支持黑白,分辨率 200x200。

注:表格中的价格为淘宝上大致价格,随卖家不同价格也会不太相同。

注2:NodeMCU-32S 需要使用 30 PIN 版本。

其他配件

配件型号数量用途
aircube-5p-header-90.png弯针 5P 2.54mm 母座2安装 BME280 以及 BH1750
aircube-3p-header.png3P 2.54mm 母座2安装 TTP223 触摸传感器
aircube-15p-header.png15P 2.54mm 母座2安装 NodeMCU-32S
aircube-5p-header.png5P 2.54mm 母座1安装 MH-Z19B
aircube-4p-header.png4P 2.54mm 母座1安装 MH-Z19B
aircube-8p-header.png8P 2.54mm 母座1安装 1.54 寸 LCD
aircube-8p-1.25mm.png8P 1.25mm 直针座1安装 PMS5003
aircube-m2x5-screw.pngM2*5 沉头自攻螺丝8固定 PCB 以及后盖

焊接

建议母座焊接顺序

  1. 5P 弯针 2.54mm 排母
  2. 8P 1.25mm 直针座
  3. 8P 2.54mm 母座
  4. 3Px2 2.54mm 母座
  5. 15P 2.54mm 母座
  6. 5P 及 4P 2.54mm 母座

其中 BME280 预留位置为 6P,使用弯 5P 母座时,请使用下侧 5P,保留最上针脚留空。

建议参考 立创开源平台 AirCube 项目中的 PCB 来进行焊接。

组装

3D 模型中,外壳和后盖均已预置 M2 螺丝孔,组装时使用 M2*5 自攻螺丝将 PCB 固定在外壳上,再将后盖固定在外壳上即可。

组装顺序

  1. 将 3D 打印的屏幕支架安装在 PCB 上
  2. 将屏幕安装到排母上,并且 M2 螺丝固定在屏幕支架上
  3. 将 2 个触摸传感器安装在排母上
  4. 将 PMS5003 传感器的连接线连接到 1.25mm 针座上
  5. 将 NodeMCU-32S 安装在排母上
  6. 将 MH-Z19B 安装在排母上
  7. 将 BH1750 安装在排母上
  8. 将 PCB 放进外壳中(可以倾斜着放进去),使用 M2 螺丝固定
  9. 将 PMS5003 固定在后盖上,有必要可以使用双面胶固定
  10. 将后盖使用 M2 螺丝固定在外壳上
  11. 将 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 空气检测站

设计图

原理图
PCB

BOM

暂无BOM

附件

序号文件名称下载次数
1
AirCube_3D_Model.zip
116
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航