2.6 KiB
2.6 KiB
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。
测试流程
- 启动MQTT Broker:
node server.js - 打开MQTTX,连接到Broker
- 订阅主题
sea_status(查看消息) - 发布测试消息到
sea_status - 在HarmonyOS应用中查看数据是否更新
故障排查
连接失败
- 检查IP地址是否正确
- 检查防火墙是否允许1883端口
- 检查用户名密码是否为
admin/admin
数据不显示
- 检查主题是否为
sea_status - 检查JSON格式是否正确
- 查看HarmonyOS应用日志
端口占用
如果1883端口被占用,可以修改 server.js 中的 PORT 常量。