# MQTT Backend - 水情监测系统MQTT后端 为HarmonyOS水情监测应用提供MQTT消息服务。 ## 目录结构 ``` mqtt-backend/ ├── server.js # MQTT Broker服务器 ├── simulator.js # 模拟数据发送器 ├── package.json # 项目配置 └── README.md # 说明文档 ``` ## 快速开始 ### 1. 安装依赖 ```bash cd mqtt-backend npm install ``` ### 2. 启动MQTT Broker ```bash npm start # 或 node server.js ``` 服务器将在 `0.0.0.0:1883` 端口启动,输出如下: ``` ======================================== MQTT Broker 服务器已启动 ======================================== 监听地址: mqtt://0.0.0.0:1883 认证用户: admin 认证密码: admin ``` ### 3. 启动数据模拟器(可选) 如果需要自动发送模拟数据: ```bash 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): ```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`: ```typescript this.mqttService.setConfig('tcp://192.168.xxx.xxx:1883', 'sea_status'); ``` 请将IP地址改为运行MQTT Broker的电脑IP。 ### 获取本机IP Windows: ```bash 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` 常量。