物联网生鲜品储运系统是一个基于Spring Boot的现代化物联网管理系统,专门为生鲜品储运场景设计。系统提供完整的设备监控、数据采集、报警管理和统计分析功能,确保生鲜品在储运过程中的环境参数得到实时监控和有效管理。
- 设备管理: 完整的设备生命周期管理,支持在线、离线、故障、维护四种状态
- 实时监控: 实时采集和展示温度、湿度、光照等环境参数
- 报警管理: 多级别报警系统,支持报警确认、处理和统计分析
- 仪表盘: 直观的数据统计和可视化展示
- 用户管理: 完整的用户认证和权限控制
- 现代化架构: 基于Spring Boot 3.2.0,采用分层架构设计
- 高性能: 优化的数据库设计和索引策略
- 安全性: JWT身份验证和Spring Security权限控制
- 可扩展性: 模块化设计,便于功能扩展和系统集成
- 实时性: 支持MQTT协议实时数据采集
- 框架: Spring Boot 3.2.0
- 数据库: MySQL 8.0
- ORM: Spring Data JPA
- 安全: Spring Security + JWT
- 消息队列: MQTT (设备通信)
- 缓存: Redis
- 构建工具: Maven
- Java版本: 17
- 框架: Vue.js 3
- UI组件: Element Plus
- 状态管理: Pinia
- 路由: Vue Router
- 构建工具: Vite
Iot-fresh-2022/
├── src/main/java/com/iot/fresh/
│ ├── controller/ # 控制器层
│ ├── dto/ # 数据传输对象
│ ├── entity/ # 实体类
│ ├── repository/ # 数据访问层
│ ├── service/ # 服务层接口
│ ├── service/impl/ # 服务层实现
│ ├── config/ # 配置类
│ ├── security/ # 安全相关
│ └── util/ # 工具类
├── src/main/resources/ # 资源文件
│ ├── application.yml # 应用配置
│ └── static/ # 静态资源
├── docs/ # 文档目录
│ ├── API功能说明.md # API接口文档
│ ├── 系统架构说明.md # 系统架构文档
│ ├── 数据库设计说明.md # 数据库设计文档
│ └── 后端与硬件.md # 硬件集成文档
└── README.md # 项目说明文档
- Java 17+
- MySQL 8.0+
- Maven 3.6+
- Redis 6.0+
- 创建数据库:
CREATE DATABASE iot_fresh; - 导入表结构(参考数据库设计说明.md)
修改 src/main/resources/application.yml:
spring:
datasource:
url: jdbc:mysql://localhost:3306/iot_fresh?useSSL=false&serverTimezone=UTC
username: your_username
password: your_password
redis:
host: localhost
port: 6379
password: your_redis_password
mqtt:
broker-url: tcp://localhost:1883
username: mqtt_user
password: mqtt_password
jwt:
secret: your_jwt_secret_key
expiration: 86400000# 克隆项目
git clone <repository-url>
cd Iot-fresh-2022
# 构建项目
mvn clean package
# 运行应用
java -jar target/iot-fresh-2022.jar应用启动后访问:http://localhost:8080
GET /api/device/list- 获取设备列表POST /api/device/add- 添加设备PUT /api/device/update- 更新设备信息DELETE /api/device/delete/{id}- 删除设备GET /api/device/{vid}- 获取设备详情
GET /api/device/data/recent/{vid}- 获取设备最新数据GET /api/device/data/history- 获取设备历史数据GET /api/device/real-time-status- 获取设备实时状态
GET /api/alarm/list- 获取报警列表POST /api/alarm/acknowledge- 确认报警POST /api/alarm/resolve- 解决报警GET /api/alarm/statistics- 报警统计
GET /api/dashboard/statistics- 获取统计数据GET /api/dashboard/device-status- 获取设备状态分布GET /api/dashboard/data-trend- 获取数据趋势
POST /api/auth/login- 用户登录POST /api/auth/register- 用户注册GET /api/user/profile- 获取用户信息PUT /api/user/update- 更新用户信息
详细API文档请参考 API功能说明.md
系统支持四种设备状态:
- 在线 (1): 设备正常运行,能够接收和发送数据
- 离线 (0): 设备无法连接,超过心跳时间阈值
- 故障 (2): 设备出现硬件或软件故障
- 维护 (3): 设备处于维护状态,暂停服务
系统实时监控以下环境参数:
- 温度: 内部温度和外部温度(摄氏度)
- 湿度: 内部湿度和外部湿度(百分比)
- 光照强度: 内部和外部光照强度(勒克斯)
- 亮度: 相对亮度值
- 设备运行状态: 运行或停止
- 报警级别: 低、中、高、危急四个级别
- 报警状态: 待处理、已确认、已解决、已忽略
- 报警类型: 温度异常、湿度异常、光照异常等
- 处理流程: 报警触发 → 确认 → 处理 → 关闭
系统包含以下核心数据表:
- devices: 设备信息表
- device_data: 设备数据表
- alarms: 报警记录表
- users: 用户信息表
详细数据库设计请参考 数据库设计说明.md
系统采用分层架构设计:
- 控制器层: 处理HTTP请求和响应
- 服务层: 业务逻辑处理
- 数据访问层: 数据库操作
- 实体层: 数据模型定义
详细架构说明请参考 系统架构说明.md
- 配置开发环境数据库
- 修改应用配置文件
- 启动Redis服务
- 启动MQTT Broker
- 运行应用
- 配置生产环境数据库
- 设置环境变量
- 配置反向代理(Nginx)
- 设置SSL证书
- 配置监控和日志
- 遵循Java编码规范
- 使用有意义的命名
- 添加必要的注释
- 保持代码简洁清晰
# 运行单元测试
mvn test
# 运行集成测试
mvn verify# 代码格式检查
mvn checkstyle:check
# 静态代码分析
mvn spotbugs:check- 数据库连接失败: 检查数据库配置和网络连接
- Redis连接失败: 检查Redis服务状态和配置
- MQTT连接失败: 检查MQTT Broker状态和配置
- JWT验证失败: 检查JWT密钥配置
应用日志文件位于:logs/application.log
- Fork 项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
- v1.0.0 (2024-01-15)
- 初始版本发布
- 基础设备管理功能
- 实时数据监控
- 报警管理
- 仪表盘统计
本项目采用 MIT 许可证。详情请查看 LICENSE 文件。
- 项目维护者: [Your Name]
- 邮箱: your.email@example.com
- 项目地址: [GitHub Repository URL]
感谢所有为项目做出贡献的开发者和测试人员。