基于步进电机和 Tasmota 的模拟 CO₂ 仪表
我们开发了一种监测 CO₂ 浓度的设备,通过模拟汽车或航空仪表式的指针仪表显示。它使用 SenseAir S8 传感器、X27-168 步进电机搭配 VID6608 驱动器,以及 Tasmota 固件。该设备可与智能家居系统集成,并支持 Web 界面进行配置和 OTA 更新。所有组件全球均可采购,组装无需稀缺零件。
设备需求:精确的 CO₂、温度、湿度及气压测量;带背光的模拟指示器;样式选项(航空/复古)和背光(灯丝/RGB);终端用户无需编程即可操作。
组件选型与机械结构
X27-168 步进电机是汽车仪表盘的标准组件(OPEL、VAZ-2110)。该电机系列包括无零位传感器款式和双指针型号。VID6608 驱动器实现了微步进(1/12 细分,~0.028°/步),根据数据手册可降低噪音并提升精度。
备选方案如舵机因噪音大、精度低及转动角度有限而被否决。模拟电压表不可用:角度小(90°)、易碎且零件稀缺。AliExpress 上的现成仪表针对街头赛车,集成不便。
CO₂ 传感器:SenseAir S8(行业标准)。附加环境传感器(温度、湿度、气压)。无传感器时,设备可响应智能家居指令运行。
驱动器原型测试:
- 初始使用 H 桥测试:精度低、噪音大。
- 使用 VID6608:运动平滑,指针动态自然。
Tasmota 集成
ESP32 的 SwitecX25 库存在缺陷:char 溢出(ESP32 中为无符号)、缺少 VID6608 数据手册规定的超时。我们基于 SwitecX25 开发了新库:
- 仅支持 VID6608 类驱动器(直接控制效率低)。
- 可配置加减速曲线。
- 正确的超时和微步进。
- 直接集成到 Tasmota(无需子模块)。
选择 Tasmota 是因为其内置智能家居支持(MQTT、HTTP)、Web 界面及 OTA。我们添加了对仪表步进电机的支持。
示例基本 Tasmota 配置(通过 Web 界面):
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
暂无评论。