返回首页

Tasmota 上的带模拟压力计的 CO₂ 传感器

本文描述了基于 SenseAir S8、步进电机 X27-168 和 Tasmota 的模拟 CO₂ 压力计的组装。详细内容:组件选择、库修改、3D 模型、智能家居集成。代码和 STL 采用 GPLv3 许可。

智能家居定制模拟 CO₂ 传感器
Advertisement 728x90

基于步进电机和 Tasmota 的模拟 CO₂ 仪表

我们开发了一种监测 CO₂ 浓度的设备,通过模拟汽车或航空仪表式的指针仪表显示。它使用 SenseAir S8 传感器、X27-168 步进电机搭配 VID6608 驱动器,以及 Tasmota 固件。该设备可与智能家居系统集成,并支持 Web 界面进行配置和 OTA 更新。所有组件全球均可采购,组装无需稀缺零件。

设备需求:精确的 CO₂、温度、湿度及气压测量;带背光的模拟指示器;样式选项(航空/复古)和背光(灯丝/RGB);终端用户无需编程即可操作。

组件选型与机械结构

X27-168 步进电机是汽车仪表盘的标准组件(OPEL、VAZ-2110)。该电机系列包括无零位传感器款式和双指针型号。VID6608 驱动器实现了微步进(1/12 细分,~0.028°/步),根据数据手册可降低噪音并提升精度。

Google AdInline article slot

备选方案如舵机因噪音大、精度低及转动角度有限而被否决。模拟电压表不可用:角度小(90°)、易碎且零件稀缺。AliExpress 上的现成仪表针对街头赛车,集成不便。

CO₂ 传感器:SenseAir S8(行业标准)。附加环境传感器(温度、湿度、气压)。无传感器时,设备可响应智能家居指令运行。

驱动器原型测试:

Google AdInline article slot
  • 初始使用 H 桥测试:精度低、噪音大。
  • 使用 VID6608:运动平滑,指针动态自然。

Tasmota 集成

ESP32 的 SwitecX25 库存在缺陷:char 溢出(ESP32 中为无符号)、缺少 VID6608 数据手册规定的超时。我们基于 SwitecX25 开发了新库:

  • 仅支持 VID6608 类驱动器(直接控制效率低)。
  • 可配置加减速曲线。
  • 正确的超时和微步进。
  • 直接集成到 Tasmota(无需子模块)。

选择 Tasmota 是因为其内置智能家居支持(MQTT、HTTP)、Web 界面及 OTA。我们添加了对仪表步进电机的支持。

示例基本 Tasmota 配置(通过 Web 界面):

Google AdInline article slot
SwitecX25:
  enable: true
  driver: VID6608
  steps: 28800  # Full rotation
  acceleration: 500

外壳与 3D 打印

外壳基于捐赠的闹钟壳体。Ender-3 打印零件:刻度盘(航空/复古)、指针、固定件。~300° 转动角度确保可读性。

配置选项:

  • 样式: 航空(金属外观)/ 复古(复古风)。
  • 背光: 无 / 灯丝(白炽灯仿真)/ RGB(可寻址灯条)。
  • 传感器: CO₂ + 环境 / 仅环境 / 仅 CO₂ / 无传感器。

组装:集成 ESP32、驱动器及连接器的 PCB。全球可用性:电机 ~2€,驱动器 ~1.5€,SenseAir S8 ~25€。

功能与校准

显示当前 CO₂(400-2000 ppm,带区域刻度:正常/通风/危急)。每 5-10 秒更新一次,带平滑处理以实现流畅运动。

指针运动算法:

  • 步进计算:target_pos = map(co2_ppm, 400, 2000, 0, max_steps)
  • 通过 S 曲线实现加减速,模拟真实惯性。
  • 微步进最小化振动。

集成:MQTT 主题用于 CO₂、温度、湿度。Web 界面:图表、零位校准、测试模式。

关键要点

  • 精度: SenseAir S8 在 30°C 时 ±50 ppm ±3%,响应 <20 秒。
  • 兼容性: Tasmota + Home Assistant/MQTT,无需额外固件。
  • 可重复性: 所有零件可在 DigiKey/AliExpress 采购,Gerber 文件在仓库中。
  • 许可: GNU GPLv3,代码/3D/STL 开源。
  • 可扩展性: 通过 MQTT 指针可显示任意指标。

— Editorial Team

Advertisement 728x90

继续阅读