# iot_env **Repository Path**: dravenlove/iot_env ## Basic Information - **Project Name**: iot_env - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-06 - **Last Updated**: 2026-05-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 物联网环境监测与预警系统 ## 项目简介 本项目是一个基于物联网技术的环境监测与预警系统,采用前后端分离架构,支持多传感器数据采集、实时监控、智能预警和数据可视化。 ### 技术栈 **后端:** - Spring Boot 2.7.x - MyBatis-Plus 3.5.x - Spring Security + JWT - Redis - MySQL 8.0 **前端:** - Vue.js 3.x - Element Plus - ECharts - Axios ## 项目结构 ``` ├── iot-env-monitoring-server/ # 后端项目 │ ├── src/main/java/com/iot/env/ │ │ ├── config/ # 配置类 │ │ ├── common/ # 通用类 │ │ │ ├── constant/ # 常量 │ │ │ ├── exception/ # 异常处理 │ │ │ ├── result/ # 统一响应 │ │ │ └── util/ # 工具类 │ │ └── module/ # 功能模块 │ │ ├── auth/ # 认证模块 │ │ ├── device/ # 设备管理 │ │ ├── monitor/ # 监测数据 │ │ ├── alert/ # 预警管理 │ │ ├── sim/ # 模拟数据 │ │ └── system/ # 系统管理 │ └── src/main/resources/ # 配置文件 │ ├── iot-env-monitoring-ui/ # 前端项目 │ ├── src/ │ │ ├── api/ # API接口 │ │ ├── assets/ # 静态资源 │ │ ├── components/ # 组件 │ │ ├── layouts/ # 布局 │ │ ├── router/ # 路由 │ │ ├── stores/ # 状态管理 │ │ ├── utils/ # 工具 │ │ └── views/ # 页面 │ │ ├── admin/ # 后台页面 │ │ ├── front/ # 前台页面 │ │ └── login/ # 登录页面 │ └── package.json │ ├── db/ # 数据库脚本 │ └── iot_env_monitoring.sql # 数据库初始化 │ └── README.md # 项目说明 ``` ## 快速开始 ### 环境要求 - JDK 11+ - Node.js 16+ - MySQL 8.0+ - Redis 6.x ### 1. 数据库初始化 ```bash # 登录MySQL mysql -u root -p # 执行初始化脚本 source db/iot_env_monitoring.sql ``` ### 2. 后端启动 ```bash cd iot-env-monitoring-server # 修改配置文件 application.yml 中的数据库连接信息 # 启动项目 mvn spring-boot:run # 或打包后运行 mvn clean package java -jar target/iot-env-monitoring-1.0.0.jar ``` ### 3. 前端启动 ```bash cd iot-env-monitoring-ui # 安装依赖 npm install # 启动开发服务器 npm run dev # 访问 http://localhost:3000 ``` ### 4. 默认账号 - 用户名:admin - 密码:123456 ## 功能模块 ### 前台(用户端) | 模块 | 功能 | |-----|------| | 首页看板 | 统计卡片、实时数据曲线、预警列表 | | 监测点位 | 点位查询、实时数据、历史曲线 | | 预警信息 | 预警列表、详情查看 | | 个人中心 | 个人信息、消息订阅 | ### 后台(管理端) | 模块 | 功能 | |-----|------| | 设备管理 | 设备注册、状态监控、参数配置 | | 数据管理 | 实时监控、历史数据、数据清洗 | | 预警配置 | 阈值规则、推送配置 | | 预警管理 | 预警确认、处置、归档 | | 模拟数据 | 模拟设备管理、数据生成控制 | | 系统管理 | 用户管理、角色权限 | ## 模拟数据功能(重要) 由于没有硬件设备,系统提供了完整的模拟数据功能: ### 功能入口 后台管理 → 模拟数据 → 模拟管理 ### 模拟设备配置 | 参数 | 说明 | 示例 | |-----|------|------| | 设备编码 | 唯一标识 | SIM001 | | 设备名称 | 显示名称 | 模拟PM2.5 | | 基础值 | 正常数据基准 | 35 | | 最小值/最大值 | 数据范围 | 10 / 500 | | 波动范围(%) | 数据波动幅度 | 10 | | 波动方式 | 数据生成算法 | 随机/正弦/阶梯 | ### 波动方式说明 1. **随机波动**:数据在基础值附近随机波动 2. **正弦波动**:模拟24小时周期变化(如温度昼高夜低) 3. **阶梯波动**:正常值与异常值交替(模拟突发情况) ### 操作说明 1. 新增模拟设备,配置各项参数 2. 点击"启动"按钮开始生成模拟数据 3. 数据将自动保存到监测数据表 4. 可触发预警规则,产生预警记录 ## API接口 ### 认证接口 | 接口 | 方法 | 说明 | |-----|-----|------| | /api/auth/login | POST | 用户登录 | | /api/auth/register | POST | 用户注册 | | /api/auth/logout | POST | 退出登录 | | /api/auth/userinfo | GET | 获取用户信息 | ### 前台接口 | 接口 | 方法 | 说明 | |-----|-----|------| | /api/front/index/statistics | GET | 首页统计 | | /api/front/point/list | GET | 点位列表 | | /api/front/point/{id} | GET | 点位详情 | | /api/front/data/realtime | GET | 实时数据 | | /api/front/alert/page | GET | 预警列表 | ### 后台接口 | 接口 | 方法 | 说明 | |-----|-----|------| | /api/admin/device/page | GET | 设备列表 | | /api/admin/device | POST | 新增设备 | | /api/admin/point/page | GET | 点位管理 | | /api/admin/alert/rule/page | GET | 预警规则 | | /api/admin/sim/device/page | GET | 模拟设备 | ## 数据库表 | 表名 | 说明 | |-----|------| | sys_user | 用户表 | | sys_role | 角色表 | | sys_menu | 菜单表 | | mon_area | 监测区域表 | | mon_point | 监测点位表 | | mon_index_type | 指标类型表 | | mon_data | 监测数据表 | | dev_device | 设备表 | | alert_rule | 预警规则表 | | alert_record | 预警记录表 | | sim_device | 模拟设备表 | ## 配置说明 ### 后端配置 (application.yml) ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/iot_env_monitoring username: root password: your_password redis: host: localhost port: 6379 jwt: secret: your_jwt_secret_key expiration: 86400000 # 24小时 sim: task: interval: 60000 # 模拟数据生成间隔(毫秒) default-fluctuation: 10 anomaly-rate: 5 enable-auto-generate: true ``` ### 前端配置 (vite.config.js) ```javascript proxy: { '/api': { target: 'http://localhost:8080', changeOrigin: true } } ``` ## 部署说明 ### Docker部署 ```yaml # docker-compose.yml version: '3.8' services: mysql: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: root123456 MYSQL_DATABASE: iot_env_monitoring ports: - "3306:3306" volumes: - mysql_data:/var/lib/mysql redis: image: redis:6.2-alpine ports: - "6379:6379" backend: build: ./iot-env-monitoring-server ports: - "8080:8080" depends_on: - mysql - redis frontend: build: ./iot-env-monitoring-ui ports: - "80:80" ``` ## 开发说明 ### 新增功能模块 1. 在 `module` 下创建模块目录 2. 创建 `entity`、`mapper`、`service`、`controller` 等类 3. 在路由中配置菜单和权限 ### 代码规范 - 命名规范:驼峰命名 - 分层:Controller → Service → Mapper - 统一响应格式:使用 `Result` 类 - 异常处理:使用 `BizException` ## 许可证 本项目仅供学习参考使用。 ## 联系方式 如有问题,请联系项目负责人。