快速开始
10 分钟从零到第一台设备上线:环境准备 → 一键部署 → 创建产品 → 设备接入 → 数据查看。
一、环境要求
| 工具 | 版本 | 下载 |
|---|---|---|
| JDK | 21 LTS | Adoptium |
| Maven | 3.9+ | Apache Maven |
| Docker Desktop | 最新 | Docker |
| Node.js | 18+ | Node.js |
💡 Windows 用户:建议安装 WSL2 + Docker Desktop for Windows,或直接用 Docker Desktop(需开启 WSL2 后端)。
二、拉代码
bash
git clone https://gitee.com/zbzcs/mingshang-iot-ce.git
cd mingshang-iot-ce三、一键拉起依赖
bash
cd deploy/docker
docker compose up -d等 4 个容器都起来:
| 服务 | 端口 | 凭据 | 验证 |
|---|---|---|---|
| MySQL 8.0 | 3307 | root / mingshang123 | mysql -uroot -p -h localhost -P 3307 |
| Redis 7 | 6380 | 无 | redis-cli -p 6380 ping |
| EMQX 5.8 | 1884 TCP / 18084 Dashboard | admin / mingshang123 | 打开 http://localhost:18084 |
| TDengine 3.5 | 6042 REST | root / taosdata | curl -u root:taosdata -d "show databases" http://localhost:6042/rest/sql |
💡 端口默认避开了 3306/6379/1883/6030 等常见占用,已在
application.yml中配置。
四、启动后端
bash
cd backend
mvn.cmd clean install -DskipTests
cd ms-admin
mvn.cmd spring-boot:run启动成功后访问:
- 健康检查:http://localhost:8080/actuator/health →
{"status":"UP"} - 登录接口:
POST http://localhost:8080/api/auth/login
默认管理员(需先在 MySQL 中插入,见下文):
sql
INSERT INTO ms_user (username, password, nickname, tenant_id)
VALUES ('admin', '$2a$10$...BCrypt哈希...', '系统管理员', 1);初始密码生成:
javaString hash = cn.hutool.crypto.digest.BCrypt.hashpw("admin123", cn.hutool.crypto.digest.BCrypt.gensalt());
五、创建产品和设备
5.1 通过 REST API(curl)
bash
# 1. 登录拿 token
curl -X POST http://localhost:8080/api/auth/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"admin123"}'
# → 返回 {code:0, data:{token:"xxx"}}
# 2. 创建产品
curl -X POST http://localhost:8080/api/product \
-H "Authorization: <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "温湿度传感器",
"identifier": "temp_humid_sensor",
"tenantId": 1,
"model": {
"properties": [
{"identifier":"temperature","name":"温度","dataType":"FLOAT","unit":"℃","min":-40,"max":80},
{"identifier":"humidity","name":"湿度","dataType":"FLOAT","unit":"%RH","min":0,"max":100}
]
}
}'
# 3. 注册设备(返回 authCode 用于 MQTT 认证)
curl -X POST http://localhost:8080/api/device \
-H "Authorization: <token>" \
-H "Content-Type: application/json" \
-d '{
"serial": "ESP32-001",
"name": "车间1号传感器",
"productId": <上一步 productId>,
"tenantId": 1
}'
# → 返回 {..., authCode: "a1b2c3d4e5f6..."}5.2 通过管理后台
启动前端后(cd frontend/vue3-admin && pnpm install && pnpm dev),浏览器打开 http://localhost:5173,在 产品管理 → 设备管理 中操作。
六、设备上报数据(MQTT)
bash
# 用 mosquitto_pub(需安装 Mosquitto)或任意 MQTT 客户端
mosquitto_pub -h localhost -p 1884 \
-u "ESP32-001" \
-P "<上一步拿到的 authCode>" \
-t "/device/ESP32-001/properties" \
-m '{"props":{"temperature":25.6,"humidity":62.3}}'📡 也支持 CoAP(端口 5683)、HTTP Digest(
POST /api/device/http/property)、Modbus 等协议,详见各协议接入文档。
七、验证数据入库
7.1 Redis 实时值
bash
redis-cli -p 6380 GET "ms:tsl:1:1" # tenantId:deviceId
# → "{\"temperature\":25.6,\"humidity\":62.3}"7.2 TDengine 历史数据
bash
curl -u root:taosdata -d "SELECT * FROM ms_tenant_1.temperature ORDER BY _wstart DESC LIMIT 10" http://localhost:6042/rest/sql7.3 管理后台
打开 数据中心 → 实时数据 / 历史曲线,选择设备即可看到属性值和趋势图。
八、下一步
| 方向 | 推荐文档 |
|---|---|
| 生产部署 | Docker 部署 |
| ESP32 固件开发 | MQTT 设备接入 |
| 其他协议 | CoAP / HTTP / Modbus / TCP |
| 后端开发 | 架构设计 / API 参考 |
| 遇到问题 | 常见问题 |