
面向腾讯云开发者社区的环境 IoT 复盘文——不堆参数,只讲清楚一件事:当一台设备要同时管住湿度、洁净度与微生物负荷时,软件架构该怎么拆。

在机房、电子洁净间、医药阴凉库和档案库房里,我们过去习惯用四套独立设备解决问题:加湿器、冷冻除湿机、UV 消毒灯、HEPA 净化器。代价很直接——多个控制回路互相打架、审计日志分散、弱电间被管线和电源占满。
近期落地的加湿—除湿—消毒—净化四合一一体机,本质不是"把四个盒子拼进一个外壳",而是把四个物理过程收敛到同一风道、同一边缘控制器、同一份时序数据流里。本文从开发者视角,拆它的架构、数据模型与云端接入方式。
独立设备并行时最常见的故障模式:
四合一一体机的核心差异在于:单一 MCU/边缘核持有全部环境状态,四个执行机构是同一个调度器的子策略,而非各自闭环。
调度伪逻辑如下:
每 1s 采样: temp, rh, pm25, vox_idx, uvc_intensity
计算目标态:
if rh > rh_high: 启用冷冻除湿分支,湿膜旁路
elif rh < rh_low: 启用湿膜蒸发加湿,风机降速
else: 维持待机微风,仅做空气循环
if pm25 > 阈值: 提升 HEPA 风档 + 激活活性炭
if 处于无人时段: 触发 UVC + 光氢离子消毒周期
下发执行: 压缩机 / 水泵 / 风机PWM / UVC驱动关键点:湿度控制与净化/消毒是耦合决策,不能让两个独立 PID 各自为政。
我们给一体机定义了一套扁平 JSON 上报帧,5s 一帧,避免把四个子系统拆成多个 Topic 导致设备影子碎片化:
{
"dev_id": "AQ-QUAD-007",
"ts": 1788850000,
"temp": 22.4,
"rh": 53.8,
"pm25": 8,
"voc_idx": 12,
"uvc_dose_mj": 142.6,
"uvc_last_sec": 180,
"mode": "auto",
"rh_setpoint": 50.0,
"fan_rpm": 1180,
"filter_life_pct": 76,
"water_tray_ok": true
}在腾讯云 IoT Explorer 中建产品时,物模型建议这样挂:
标识符 | 类型 | 读写 | 用途 |
|---|---|---|---|
temp | float | 只读 | 校准后温度 |
rh | float | 只读 | 闭环反馈湿度 |
pm25 | int | 只读 | 激光粒子计 |
uvc_dose_mj | float | 只读 | 累计消毒剂量(合规审计) |
mode | enum | 读写 | auto / manual / sterilize |
rh_setpoint | float | 读写 | 湿度设定点下发 |
fan_rpm | int | 只读 | 风档反馈 |
上报主题:
$thing/up/property/{ProductID}/{DeviceName}控制下发走:
$thing/down/control/{ProductID}/{DeviceName}当库房部署 30~50 台一体机时,如果每台都直连 TLS MQTT,连接数与证书轮换会成为平台侧负担。我们采用的模式是:
一体机(以太网/WiFi)→ 边缘网关(Modbus TCP / 本地 MQTT 聚合)→ IoT Explorer TCP 上行
边缘网关职责:
ts 有序补传 💡 经验值:一体机的 UVC 消毒日志必须走独立审计流,不要和实时温湿度混在同一个消费组,飞检时调数据能秒级出凭证。
在 IoT Explorer 规则引擎里写一条 SQL:
SELECT dev_id, ts, temp, rh, pm25, uvc_last_sec
FROM "$thing/up/property/{{ProductID}}/+"
WHERE rh > 60 OR rh < 40 OR pm25 > 35 OR temp NOT BETWEEN 18 AND 26两个动作:
防抖逻辑放在 SCF 里而非规则 SQL,是因为湿度偶发 1 帧毛刺在洁净场景极常见,直接触发会刷爆值班通道。
一体机内置边缘缓存(≥30 天时序),网络恢复后按时间戳补传。平台侧必须开启设备影子(Device Shadow):
ts 字段自动归位,不产生重复点 对 GSP、SEMI、等保三级场景,影子不是可选项,是合规基线。
四合一一体机真正的工程价值,不在于"少买三台设备",而在于把环境调控从多回路竞争变成单核协同,并把湿度、洁净度、消毒剂量统一进同一份带时间戳的时序流——这让合规审计、边缘联动和云端规则引擎第一次能在同一数据平面上对话。
对开发者来说,接入它的方式和接一个多参量传感器没有本质区别:定义物模型、开影子、写一条带防抖的规则、用 SCF 做闭环动作。差异只在一点——这台设备的"属性"里,藏着四个物理过程的耦合状态机。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。