# data_service_platform **Repository Path**: panarea/data_service_platform ## Basic Information - **Project Name**: data_service_platform - **Description**: 基于传感网与物联网的数据服务平台 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-01 - **Last Updated**: 2025-12-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 物联网平台 (IoT Platform) 一个基于Spring Boot和Vue.js构建的完整物联网监控平台,支持设备管理、实时数据监控、告警规则配置等功能。 ## 项目概述 本项目是一个完整的物联网平台解决方案,包含以下主要组件: - 后端服务:基于Spring Boot构建的RESTful API服务 - 前端界面:基于Vue.js 3和Element Plus构建的现代化管理界面 - 设备模拟器:Node.js编写的MQTT设备数据模拟器 - 数据存储:MySQL关系型数据库和InfluxDB时序数据库 - 消息中间件:EMQX MQTT Broker用于设备通信 ## 技术栈 ### 后端技术栈 - Java 21 - Spring Boot 3.2.0 - Spring Data JPA - Spring Integration MQTT - MySQL 8.0 (关系型数据存储) - InfluxDB 2.7 (时序数据存储) - EMQX MQTT Broker - Maven 3.x ### 前端技术栈 - Vue.js 3 - Element Plus UI框架 - ECharts数据可视化 - Vite构建工具 - Axios HTTP客户端 ### 设备模拟器 - Node.js - MQTT.js客户端库 ## 系统架构 ```mermaid graph TB A[设备模拟器] --> B[EMQX MQTT Broker] C[前端应用] --> D[后端API] D --> E[MySQL数据库] D --> F[InfluxDB数据库] B --> D ``` ## 功能特性 ### 设备管理 - 设备注册与信息维护 - 设备状态监控(在线/离线/停用) - 设备搜索与分类筛选 - 设备详细信息查看 ### 实时监控 - 实时温度数据采集与展示 - 设备电量与信号强度监控 - 数据可视化图表展示 ### 告警系统 - 自定义告警规则配置 - 告警记录查询与管理 - 异常数据检测与过滤 ### 日志管理 - 系统操作日志记录 - 数据处理日志跟踪 - 错误日志分析 ## 项目结构 ``` iot-platform/ ├── backend/ # 后端服务 │ ├── src/main/java/ # Java源代码 │ │ ├── controller/ # REST控制器 │ │ ├── entity/ # 数据实体 │ │ ├── repository/ # 数据访问层 │ │ ├── service/ # 业务逻辑层 │ │ └── config/ # 配置文件 │ └── pom.xml # Maven依赖配置 ├── frontend/ # 前端应用 │ ├── src/ # Vue源代码 │ │ ├── views/ # 页面视图 │ │ ├── components/ # 组件 │ │ └── services/ # API服务 │ └── package.json # npm依赖配置 ├── deivce-simulator/ # 设备模拟器 │ └── simulator.js # 模拟器主程序 └── docker-compose.yml # Docker容器编排 ``` ## 快速开始 ### 环境要求 - Java 21+ - Node.js 20.19.0+ - Docker & Docker Compose - Maven 3.x ### 启动步骤 1. **启动基础设施服务** ```bash docker-compose up -d ``` 此命令将启动以下服务: - EMQX MQTT Broker (端口: 1883, 管理界面: 18083) - InfluxDB (端口: 8086) - MySQL (端口: 3306) 2. **启动后端服务** ```bash cd backend ./mvnw spring-boot:run ``` 或者在Windows上: ```cmd cd backend mvnw.cmd spring-boot:run ``` 3. **启动前端应用** ```bash cd frontend npm install npm run dev ``` 4. **启动设备模拟器** ```bash cd deivce-simulator npm install node simulator.js ``` ### 访问地址 - 前端界面: http://localhost:5173 - 后端API: http://localhost:8080 - EMQX管理界面: http://localhost:18083 (默认用户名: admin, 密码: public) - InfluxDB: http://localhost:8086 ## 注意事项 ### 安全警告 项目中的默认密码仅用于开发环境,请在生产环境中修改以下默认凭证: 1. MySQL root密码: `rootpassword123` 2. InfluxDB管理员密码: `password123` 3. InfluxDB认证令牌: `my-super-secret-auth-token` ### 配置说明 #### 后端配置 (application.properties) - 数据库连接: `spring.datasource.*` - InfluxDB配置: `influxdb.*` - 服务器端口: `server.port=8080` #### Docker配置 所有基础设施服务的配置都在[docker-compose.yml](docker-compose.yml)文件中定义。 ### 数据流说明 1. 设备模拟器通过MQTT协议向EMQX Broker发送传感器数据 2. 后端服务订阅MQTT主题接收数据 3. 接收到的数据经过验证和清洗后: - 存储到InfluxDB用于时序数据分析 - 更新设备状态到MySQL数据库 - 触发告警规则检查 ### 故障排除 #### 常见问题 1. **端口冲突** 如果本地已有服务占用相关端口,需要修改[docker-compose.yml](docker-compose.yml)中的端口映射。 2. **数据库连接失败** 确保Docker容器正常运行,并检查后端配置中的数据库连接参数。 3. **MQTT连接失败** 检查EMQX服务是否正常运行,默认端口1883是否被防火墙阻止。 #### 查看日志 - 后端日志: 控制台输出或IDE控制台 - 前端日志: 浏览器开发者工具控制台 - Docker服务日志: `docker-compose logs -f [service-name]` ## 开发指南 ### 后端开发 项目采用标准的Spring Boot分层架构: - Controller层处理HTTP请求 - Service层实现业务逻辑 - Repository层处理数据访问 - Entity层定义数据模型 ### 前端开发 前端采用Vue 3 Composition API风格开发,目录结构如下: - views/: 页面级组件 - components/: 可复用组件 - services/: API调用封装 - router/: 路由配置 ### API文档 后端提供以下主要RESTful API端点: | 端点 | 方法 | 描述 | |------|------|------| | /api/devices | GET | 获取所有设备 | | /api/devices | POST | 创建新设备 | | /api/devices/{id} | GET | 获取指定设备 | | /api/devices/{id} | PUT | 更新设备信息 | | /api/devices/{id} | DELETE | 删除设备 | | /api/devices/{id}/status | PUT | 更新设备状态 | ## 许可证 本项目仅供学习和参考使用。