首次提交
This commit is contained in:
@@ -0,0 +1,138 @@
|
||||
# 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` 常量。
|
||||
Reference in New Issue
Block a user