Skip to content

Latest commit

 

History

History
executable file
·
144 lines (100 loc) · 9.69 KB

README.md

File metadata and controls

executable file
·
144 lines (100 loc) · 9.69 KB

AirCube 空气检测站

English Version

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

功能列表

  • 概览页面,可以直观查看各种环境数据的当前数值,例如当前温度、湿度、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.02.24

    • 与小米温湿度传感器对比后,BME280 温度校正 -2,湿度 +10
    • 添加重启功能,长按右键 5 秒以上,会重启 AirCube
    • 添加 CO2 传感器校准功能,长按左键 5 秒以上,开启 MH-Z19 或 SenseAir S8 校准功能,校准前请将 AirCube 在室外放置运行 20 分钟以上
    • 使用自定义组件读取 BME280 数据,避免 ESPHome 初始化失败的问题

目录结构

  • 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-topaircube-pcb-bottom

元件选型

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

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

其他配件

配件 型号 数量 用途
aircube-5p-header-90 弯针 5P 2.54mm 母座 2 安装 BME280 以及 BH1750
aircube-3p-header 3P 2.54mm 母座 2 安装 TTP223 触摸传感器
aircube-15p-header 15P 2.54mm 母座 2 安装 NodeMCU-32S
aircube-5p-header 5P 2.54mm 母座 1 安装 MH-Z19B
aircube-4p-header 4P 2.54mm 母座 1 安装 MH-Z19B
aircube-8p-header 8P 2.54mm 母座 1 安装 1.54 寸 LCD
aircube-8p-1.25mm 8P 1.25mm 直针座 1 安装 PMS5003
aircube-m2x5-screw M2*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

为什么会有这个项目

可以参考这篇文章 超简单 DIY - AirCube 空气检测站