基于 ThingsPanel + MQTTX 搭建车间环境监测系统(一):设备接入与数据链路打通 📅 发布时间:2026/8/31 15:52:39 👁 浏览次数: 基于 ThingsPanel MQTTX 搭建车间环境监测系统一设备接入与数据链路打通本文是「车间环境监测系统」系列的第一篇记录从0 到打通 MQTT 上下行链路的完整过程在 ThingsPanel 上创建设备、定义物模型再用 MQTTX 模拟真实车间设备上报环境数据并验证平台下发控制指令。后续还会继续做数据可视化大屏和阈值告警。一、项目背景与目标车间生产过程中需要对现场环境进行持续监测典型的监测指标包括监测项说明典型参考值温度 temperature车间环境温度10 ~ 40 ℃湿度 humidity车间环境湿度30 ~ 80 %RH粉尘 dust粉尘/颗粒物浓度0 ~ 1 mg/m³有害气体 gas可燃/有害气体浓度0 ~ 100 ppm噪声 noise车间噪声40 ~ 90 dB光照 illumination工位照度100 ~ 1000 lx本阶段目标不依赖真实硬件用 MQTTX 模拟一台车间环境监测终端把数据通过 MQTT 协议上报到 ThingsPanel 物联网平台并验证平台能否反向下发控制指令如开关风机/报警器。如果你更关注消防安全场景把遥测字段换成「温度、烟雾浓度、红外温度、火灾报警状态」即可做法完全一致只需保证上报 JSON 的 key 与物模型里的遥测标识符一致。二、整体架构与数据链路┌──────────────┐ MQTT 上行 (devices/telemetry) ┌──────────────────┐ │ 车间设备 │ ───────────────────────────────────▶ │ │ │ (本文用MQTTX │ │ ThingsPanel │ │ 模拟) │ ◀─────────────────────────────────── │ 物联网平台 │ └──────────────┘ MQTT 下行 (devices/telemetry/control/ │ │ {device_id}) └──────────────────┘上行遥测设备 → 平台主题devices/telemetry下行控制平台 → 设备主题devices/telemetry/control/{设备ID}BrokerThingsPanel 内置 MQTT Broker默认端口1883三、前置准备ThingsPanel 已在本地部署完成Windows 一键部署。还没部署的同学可以先看这篇ThingsPanel 本地部署教程Windows已安装 MQTTXMQTTX 保姆级安装与使用教程打开本地部署好的 ThingsPanel登录后看到首页四、Step 1进入租户空间ThingsPanel 是多租户架构设备、物模型等资源都归属在某个租户下所以第一步要先进入租户。点击左侧菜单【系统管理】展开下拉项。找到并点开【租户管理】。在租户列表最下方可以看到一个默认租户点击右侧的进入按钮确认后即可进入该租户空间。五、Step 2创建设备进入租户后左侧菜单会切换成租户内的功能菜单。展开【设备接入】点击【设备管理】。点击左上角【添加设备】选择手动添加。填写设备信息设备名称例如车间环境监测终端-01标签不填设备模板不使用点击保存并下一步这一步会生成设备的 MQTT 连接参数务必记下来后面 MQTTX 连接要用。参数说明如下以下为示例值请替换成你自己设备生成的值参数示例值用途MQTT Usernamec1aad85a-d0ee-3b49-72aMQTT 用户名MQTT Passwordb858cffMQTT 密码MQTT ClientIDmqtt_50abdbcf-7bd客户端唯一标识接入地址gmqtt:1883本地部署一般为localhost:1883或127.0.0.1:1883Broker 地址与端口遥测上报主题devices/telemetry上行数据控制订阅主题devices/telemetry/control/50abdbcf-7bdb-b9b1-9eef-9eaab16cab8a下行指令点击关闭退出创建向导。回到设备列表就能看到刚刚创建的设备了。六、Step 3定义物模型遥测什么是物模型物模型就是告诉平台这台设备会上报哪些数据、支持哪些控制。本项目中我们定义 6 个遥测属性温度、湿度、粉尘、有害气体、噪声、光照。操作步骤在左侧菜单【设备接入】中找到【物模型】打开点击左上角新建物模型。输入物模型名称例如车间环境监测模型其他选项全部留空点击右下角下一步。在物模型定义区域点击新增遥测。以「环境温度」为例填写遥测名称环境温度标识符 / keytemperature数据类型Number单位℃用同样的方式依次添加其余遥测完整列表如下遥测名称标识符key数据类型单位环境温度temperatureNumber℃环境湿度humidityNumber%RH粉尘浓度dustNumbermg/m³有害气体gasNumberppm噪声noiseNumberdB光照illuminationNumberlux全部添加完成后的效果关键点标识符必须与设备上报 JSON 里的 key完全一致否则平台解析不到数据。点击下一步。接下来的Web 图表、App 图表两步先不做配置直接点下一步跳过这部分会在下一篇做可视化时回来配置。点击完成物模型创建成功。七、Step 4MQTTX 模拟设备接入打开 MQTTX点击中间的绿色 New Connection按钮新建连接。按刚才保存的设备参数填写MQTTX 字段填写内容Name自定义如车间环境监测Client ID设备的MQTT ClientID如mqtt_50abdbcf-7bdHostmqtt:// 接入地址主机部分如mqtt://localhostPort1883Username设备的MQTT UsernamePassword设备的MQTT Password参数忘了没关系可以在 ThingsPanel 设备详情里再查看点击右上角绿色Connect按钮出现如下图所示的Connected状态说明设备已成功接入平台。八、Step 5上行链路 —— 上报遥测数据在 MQTTX 右下角的发布区域填写Topicdevices/telemetryPayload消息体{temperature:25.6,humidity:62.3,dust:0.42,gas:18.5,noise:53.2,illumination:480}点击右下角的发送图标发送。回到 ThingsPanel 设备详情页面按F5 刷新就能看到刚刚上报的报文数据。✅ 到这里上行链路设备 → 平台已经打通平台已经能正确解析并按物模型展示数据。九、Step 6下行链路 —— 平台下发控制光能上报还不够还得验证平台能否反向控制设备。在 MQTTX 中点击Add Subscription添加订阅。订阅主题填写设备的控制订阅主题在设备连接信息中查看devices/telemetry/control/50abdbcf-7bdb-b9b1-9eef-9eaab16cab8a确认后订阅创建成功。回到 ThingsPanel打开该设备的设备详情点击下发控制。输入控制指令例如打开开关{switch:1}点击发送。MQTTX 成功收到这条指令MQTTX 成功收到整条链路全部调通十、关键参数速查表项目值MQTT Broker 端口1883上行遥测主题devices/telemetry下行控制主题devices/telemetry/control/{设备ID}上报数据格式JSONkey 与物模型遥测标识符一致下发指令示例{switch: 1}十一、常见问题排查问题排查方向MQTTX 连不上 / 提示Not authorized检查 Username、Password、ClientID 是否复制完整注意不要带空格连不上 Broker确认 ThingsPanel 已启动docker compose ps端口 1883 未被占用接入地址用localhost或127.0.0.1平台收到消息但不显示数值上报 JSON 的 key 与物模型的遥测标识符不一致或数据类型不匹配数字不要加引号平台下发指令设备收不到订阅的主题是否是自己设备的控制主题尾部是自己的设备 IDMQTTX 是否处于 Connected 状态多个设备数据串了每个设备必须使用唯一的 ClientID调试小技巧保持 MQTTX 处于连接状态每发一条消息就回平台按 F5 刷新一次观察数值是否变化能快速定位是「上报没成功」还是「解析没成功」。相关阅读ThingsPanel 本地部署教程WindowsMQTTX 保姆级安装与使用教程Git 安装教程零基础图文详解ThingsPanel 官网https://install.thingspanel.io/