Files
2026-07-13 12:06:16 +08:00
..
2026-07-13 12:06:16 +08:00
2026-07-13 12:06:16 +08:00
2026-07-13 12:06:16 +08:00
2026-07-13 12:06:16 +08:00
2026-07-13 12:06:16 +08:00
2026-07-13 12:06:16 +08:00

MQTT Backend - 水情监测系统MQTT后端

为HarmonyOS水情监测应用提供MQTT消息服务。

目录结构

mqtt-backend/
├── server.js      # MQTT Broker服务器
├── simulator.js   # 模拟数据发送器
├── package.json   # 项目配置
└── README.md      # 说明文档

快速开始

1. 安装依赖

cd mqtt-backend
npm install

2. 启动MQTT Broker

npm start
# 或
node server.js

服务器将在 0.0.0.0:1883 端口启动,输出如下:

========================================
   MQTT Broker 服务器已启动
========================================
监听地址: mqtt://0.0.0.0:1883
认证用户: admin
认证密码: admin

3. 启动数据模拟器(可选)

如果需要自动发送模拟数据:

node simulator.js

模拟器将每3秒发送一次随机水质数据。

MQTTX 配置

使用MQTTX客户端连接和测试:

连接配置

参数
Name WaterMonitor
Protocol mqtt://
Host localhost 或 192.168.xxx.xxx
Port 1883
Username admin
Password admin
Client ID mqttx-test

发布消息

主题: sea_status

消息格式 (JSON):

{
  "temp": 25.5,
  "ph": 7.2,
  "conductivity": 850,
  "cod": 35,
  "ammoniaNitrogen": 0.3,
  "residualChlorine": 0.4
}

字段说明

字段 说明 单位 正常范围
temp 水温 °C 15-30
ph pH值 - 6.5-8.5
conductivity 电导率 μS/cm 500-1500
cod COD mg/L ≤40
ammoniaNitrogen 氨氮 mg/L ≤1.0
residualChlorine 余氯 mg/L 0.3-0.5

HarmonyOS应用配置

应用中的MQTT配置位于 entry/src/main/ets/utils/MqttService.ets

this.mqttService.setConfig('tcp://192.168.xxx.xxx:1883', 'sea_status');

请将IP地址改为运行MQTT Broker的电脑IP。

获取本机IP

Windows:

ipconfig

查找 "IPv4 地址" 一行,例如 192.168.31.100

测试流程

  1. 启动MQTT Broker: node server.js
  2. 打开MQTTX,连接到Broker
  3. 订阅主题 sea_status(查看消息)
  4. 发布测试消息到 sea_status
  5. 在HarmonyOS应用中查看数据是否更新

故障排查

连接失败

  • 检查IP地址是否正确
  • 检查防火墙是否允许1883端口
  • 检查用户名密码是否为 admin/admin

数据不显示

  • 检查主题是否为 sea_status
  • 检查JSON格式是否正确
  • 查看HarmonyOS应用日志

端口占用

如果1883端口被占用,可以修改 server.js 中的 PORT 常量。