# environmental_regulation **Repository Path**: Aa520042/environmental_regulation ## Basic Information - **Project Name**: environmental_regulation - **Description**: 物联网大作业 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-21 - **Last Updated**: 2025-12-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智能个性化环境舒适调节系统 基于多传感融合与智能体决策的个性化环境舒适调节系统,通过智能感知和自动控制,为用户提供舒适、健康、节能的室内环境体验。 ## 项目简介 本系统解决了传统环境控制设备的"信息孤岛"问题,通过整合多种传感器数据、天气预报信息和用户个性化偏好,实现对室内环境的智能化调节。系统能自主分析环境状态,根据用户设定的舒适范围,协同控制多种智能家居设备,如空调、加湿器、空气净化器、智能窗户等,创造最佳的室内体验。 ## 核心功能 ### 环境感知与分析 - 室内环境实时监测:温度、湿度、CO2浓度、PM2.5浓度、光照强度、噪音水平 - 室外天气状况获取:温度、湿度、AQI、风速、风向、降水情况 - 综合环境状态评估:根据用户偏好判断当前环境舒适度 ### 智能体决策 - 自动设备控制策略生成:根据环境评估结果,生成最佳设备控制方案 - 环境趋势预测:基于室内外环境数据,预测可能的环境变化 - 协同设备管理:考虑多设备间的协作关系,避免冗余操作和能源浪费 ### 用户交互 - 环境舒适度设置:允许用户自定义温度、湿度、空气质量等偏好 - 场景模式管理:支持在家、离家、睡眠、会客等多种场景切换 - 设备控制管理:提供设备发现、连接和手动控制功能 - 环境实时监控:展示室内外环境数据、舒适度分析和智能建议 ## 系统架构 ### 数据模型 - `environmentData.uts`:环境数据模型,包含室内外环境参数 - `deviceData.uts`:设备数据模型,定义各类智能设备的属性和状态 - `userPreference.uts`:用户偏好模型,存储用户的个性化设置和场景模式 ### 核心服务 - **智能体决策服务**(`intelligentAgentService.uts`):环境状态评估、设备控制决策生成、自动化控制策略制定 - **环境数据服务**(`environmentDataService.uts`):室内环境数据获取、数据缓存管理、传感器数据处理 - **设备管理服务**(`deviceService.uts`):设备发现扫描、连接状态管理、设备控制操作、状态监控 - **认证服务**(`authService.uts`):用户登录注册、账户管理、密码重置、用户信息维护 - **天气服务**(`weatherService.uts`):室外天气数据获取、地理位置服务、天气预报集成 - **通知服务**(`notificationService.uts`):环境异常通知、用户提醒管理、通知设置配置 - **审计日志服务**(`auditLogService.uts`):用户操作记录、系统日志管理、安全审计 ## 后端功能模块详解 ### 1. 智能体决策服务 (IntelligentAgentService) **文件位置**: `services/intelligentAgentService.uts` **核心功能**: - **环境状态评估**: 综合分析温度、湿度、空气质量、光照、噪音等多维度环境参数 - **设备控制决策**: 基于环境评估结果生成最优设备控制策略 - **自动化控制**: 执行智能决策,实现设备的协同控制 - **舒适度判断**: 根据用户偏好实时评估环境舒适度 **关键类**: - `EnvironmentAssessment`: 环境状态评估结果,包含温度状态、湿度状态、空气质量状态等 - `DeviceControlDecision`: 设备控制决策,包含设备ID、操作类型、参数和优先级 - `IntelligentAgentService`: 智能体服务主类,负责环境评估和决策生成 **技术特点**: - 支持多维度环境参数综合评估(温度、湿度、空气质量、光照、噪音) - 基于用户偏好的个性化舒适度判断 - 智能设备控制策略生成,支持优先级排序 ### 2. 环境数据服务 (EnvironmentDataService) **文件位置**: `services/environmentDataService.uts` **核心功能**: - **实时环境监控**: 获取室内温度、湿度、空气质量等环境参数 - **数据缓存管理**: 智能缓存机制,减少API请求频率 - **传感器数据处理**: 处理来自各类环境传感器的数据 - **数据更新控制**: 可配置的数据更新频率和缓存策略 **技术特点**: - 10秒缓存有效期,避免频繁API调用 - 请求队列管理,防止并发请求冲突 - 支持自定义传感器设备ID - 智能数据更新策略,仅在需要时请求新数据 **主要方法**: - `updateData()`: 智能数据更新,支持缓存检查 - `setSensorDeviceId()`: 设置传感器设备ID - `setUpdateInterval()`: 配置数据更新频率 ### 3. 设备管理服务 (DeviceService) **文件位置**: `services/deviceService.uts` **核心功能**: - **设备发现扫描**: 自动发现局域网内的智能设备 - **设备连接管理**: 处理设备的连接、断开和重连 - **设备控制操作**: 统一的设备控制接口,支持多种设备类型 - **状态监控**: 实时监控设备运行状态和参数 **支持设备类型**: - 空调 (AirConditioner): 温度调节、模式切换、风速控制 - 加湿器 (Humidifier): 湿度调节、水位监控 - 空气净化器 (AirPurifier): 净化模式、滤网寿命 - 智能窗户 (SmartWindow): 开合控制、锁定状态 - 智能窗帘 (SmartCurtain): 开合百分比控制 **事件系统**: - `DeviceConnectionEvent`: 设备连接状态变化事件 - `DeviceStatusChangeEvent`: 设备状态变化事件 **技术特点**: - 事件驱动架构,支持状态变化的实时响应 - 统一的设备控制接口,便于扩展新设备类型 - 支持设备发现和自动连接 ### 4. 认证服务 (AuthService) **文件位置**: `services/authService.uts` **核心功能**: - **用户登录注册**: 支持用户名/密码登录和新用户注册 - **账户管理**: 用户信息维护、密码重置等 - **令牌管理**: JWT令牌的生成、存储和验证 - **设备类型记录**: 记录登录设备类型,用于审计日志 **接口定义**: - `LoginResult`: 登录结果接口,包含成功状态、令牌和用户信息 - `RegisterResult`: 注册结果接口 - `ResetPasswordResult`: 密码重置结果接口 - `UserInfo`: 用户信息接口,包含用户ID、用户名、昵称等 **安全特性**: - JWT令牌认证机制 - 支持设备类型记录,便于安全审计 - 统一的认证状态管理 ### 5. 天气服务 (WeatherService) **文件位置**: `services/weatherService.uts` **核心功能**: - **室外天气数据获取**: 获取实时天气信息,包括温度、湿度、AQI等 - **地理位置服务**: 基于IP地址自动获取用户所在城市 - **天气预报集成**: 集成第三方天气API服务 - **数据更新策略**: 默认30分钟更新一次,可配置更新频率 **数据获取流程**: 1. 获取当前IP地址 2. 根据IP获取城市信息 3. 根据城市获取天气数据 4. 失败时使用模拟数据 **技术特点**: - 智能地理位置识别 - 支持多种天气数据源 - 自动降级机制,确保服务可用性 ### 6. 通知服务 (NotificationService) **文件位置**: `services/notificationService.uts` **核心功能**: - **环境异常通知**: 当环境参数超出舒适范围时发送通知 - **用户提醒管理**: 管理各类用户提醒和通知 - **通知设置配置**: 支持用户自定义通知偏好 - **勿扰时段管理**: 支持勿扰时段设置,避免打扰用户 **智能特性**: - 30分钟通知冷却时间,防止频繁通知 - 数据新鲜度检查(3分钟阈值) - 勿扰时段自动判断 - 个性化通知设置支持 **主要方法**: - `canSendNotification()`: 检查是否可以发送通知 - `isDataFresh()`: 检查数据新鲜度 - `isInDoNotDisturbPeriod()`: 判断是否在勿扰时段 ### 7. 审计日志服务 (AuditLogService) **文件位置**: `services/auditLogService.uts` **核心功能**: - **用户操作记录**: 记录用户的登录、操作等行为 - **系统日志管理**: 管理系统运行日志和错误日志 - **安全审计**: 提供安全审计功能,追踪异常行为 - **数据格式化**: 格式化日志数据,便于查看和分析 **主要方法**: - `formatDateTime()`: 日期时间格式化为 YYYY-MM-DD HH:MM 格式 - `processLoginHistory()`: 处理登录历史数据,包含状态、设备、IP等信息 - `validateAuditLogData()`: 验证审计日志数据的完整性 - `prepareAuditLogData()`: 准备数据库插入数据 **安全特性**: - 完整的用户行为追踪 - 登录历史记录,包含设备类型和IP地址 - 数据格式化和验证机制 ## 服务架构特点 ### 1. 模块化设计 每个服务都有明确的职责边界,采用单一职责原则,便于维护和扩展。服务间通过标准接口进行通信,降低耦合度。 ### 2. 数据缓存优化 环境数据服务和天气服务都采用了智能缓存策略,通过缓存有效期和请求队列管理,显著减少API调用次数,提高系统响应速度。 ### 3. 事件驱动架构 设备服务采用事件驱动模式,支持设备状态变化的实时响应,通过事件回调机制实现松耦合的状态通知。 ### 4. 错误处理机制 所有服务都包含完善的错误处理和降级策略,确保在网络异常或API失败时系统仍能正常运行,提供基本功能。 ### 5. 配置化管理 支持灵活的配置参数,如数据更新频率、缓存时间、通知冷却时间等,便于根据实际需求调整系统行为。 ### 6. 安全性保障 认证服务提供JWT令牌机制,审计日志服务记录所有关键操作,通知服务支持勿扰时段,全方位保障系统安全性和用户体验。 ### 用户界面 - **首页**(`pages/index/index.uvue`):环境舒适度概览、实时环境参数监控、舒适度评估和快捷操作 - **设备管理**(`pages/devices/devices.uvue`):智能设备发现、连接、控制和状态监控,支持房间区域分类管理 - **场景模式**(`pages/scenes/scenes.uvue`):内置和自定义场景模式管理,一键切换环境设置 - **趋势分析**(`pages/trends/trends.uvue`):环境数据历史趋势图表,支持24小时/一周/一月时间范围 - **AI智能分析**(`pages/analysis/analysis.uvue`):基于DeepSeek AI的环境分析报告和设备操作建议 - **用户中心**(`pages/profile/profile.uvue`):个人信息、使用统计、账户管理和家庭管理 - **设置页面**(`pages/settings/settings.uvue`):用户偏好设置和系统配置 - **登录注册**(`pages/login/`):用户认证、注册、隐私政策和服务条款 ## 用户注册登录流程说明 ### 📱 登录页面 (`pages/login/login.uvue`) #### 核心功能 - **用户身份验证**:支持用户名/手机号登录 - **密码安全管理**:密码可见性切换、记住密码功能 - **自动登录**:保存用户凭据,下次自动填充 - **管理员联系**:提供管理员联系方式,便于密码重置 #### 登录流程 1. **输入验证**:实时验证用户名和密码格式 2. **凭据保存**:根据用户选择保存登录信息到本地存储 3. **设备信息收集**:获取设备类型用于审计日志记录 4. **身份认证**:调用 `AuthService.login()` 进行服务端验证 5. **令牌管理**:成功后保存JWT令牌和用户信息 6. **页面跳转**:登录成功后跳转到系统首页 #### 技术特点 - **安全存储**:使用 `uni.setStorageSync()` 安全保存用户凭据 - **设备识别**:自动识别Android、iOS、Windows、Mac等设备类型 - **错误处理**:完善的错误提示和网络异常处理机制 - **用户体验**:登录过程中显示加载状态,成功后延迟跳转 ### 📝 注册页面 (`pages/login/register.uvue`) #### 核心功能 - **用户信息收集**:用户名、邮箱、密码输入和验证 - **实时表单验证**:输入过程中实时验证字段格式和规则 - **密码安全**:密码强度要求、确认密码一致性验证 - **协议确认**:用户协议和隐私政策阅读确认 #### 注册流程 1. **信息输入**:用户填写用户名、邮箱、密码等基本信息 2. **实时验证**: - 用户名:至少3个字符,不能为空 - 邮箱:标准邮箱格式验证 (`/^[^\s@]+@[^\s@]+\.[^\s@]+$/`) - 密码:至少6个字符,支持可见性切换 - 确认密码:与原密码一致性验证 3. **协议确认**:必须同意用户协议和隐私政策才能注册 4. **账户创建**:调用 `AuthService.register()` 创建新用户账户 5. **成功跳转**:注册成功后自动跳转到登录页面 #### 验证规则 - **用户名**:3-20个字符,支持中英文、数字、下划线 - **邮箱**:标准邮箱格式,用于账户验证和密码重置 - **密码**:最少6个字符,建议包含字母、数字和特殊字符 - **协议确认**:必须勾选同意才能完成注册 #### 技术特点 - **响应式验证**:失焦时触发字段验证,实时显示错误提示 - **状态管理**:完整的表单状态管理和错误状态跟踪 - **用户体验**:注册过程显示进度,成功后友好的提示信息 - **数据安全**:密码传输前进行加密处理 ### 📋 隐私政策 (`pages/login/privacy.uvue`) #### 主要内容 1. **信息收集**:明确说明收集的用户信息类型和用途 - 用户提供信息:用户名、邮箱等注册信息 - 设备信息:设备型号、操作系统、网络信息 - 使用日志:操作记录、访问时间、功能使用情况 - 位置信息:基于用户同意的位置服务 2. **信息使用**:详细说明信息的使用目的和方式 - 服务提供:维护和改进系统功能 - 安全保障:防止欺诈和未授权访问 - 个性化体验:提供定制化内容和推荐 3. **信息保护**:阐述数据安全保护措施 - 技术保护:加密传输、安全存储 - 访问控制:严格的权限管理 - 数据备份:定期备份和灾难恢复 4. **用户权利**:明确用户对个人信息的控制权 - 访问权:查看个人信息 - 更正权:修改错误信息 - 删除权:删除个人账户和数据 ### 📜 用户协议 (`pages/login/terms.uvue`) #### 主要条款 1. **账号管理**:用户注册和使用规范 - 真实信息:要求提供准确的注册信息 - 账号安全:用户负责保管账号和密码 - 使用限制:一人一号,禁止共享账号 2. **行为规范**:用户使用系统的行为准则 - 合法使用:遵守相关法律法规 - 禁止行为:不得从事违法或不当活动 - 内容规范:不得发布违法或有害信息 3. **系统责任**:平台的服务承诺和免责声明 - 服务维护:尽力保障系统稳定运行 - 安全保护:采取合理的安全措施 - 免责条款:不可抗力等情况的责任界定 4. **协议变更**:协议修改和生效机制 - 修改权利:平台有权修改协议条款 - 通知义务:及时通知用户协议变更 - 生效条件:用户继续使用即视为同意 ### 🔐 认证服务集成 (`services/authService.uts`) #### 服务功能 - **用户注册**:`register(username, password, userData)` - 创建新用户账户 - **用户登录**:`login(username, password, deviceType)` - 验证用户身份 - **密码重置**:`resetPassword(email)` - 通过邮箱重置密码 - **令牌验证**:`validateToken(token)` - 验证JWT令牌有效性 - **用户信息**:`getUserInfo(userId)` - 获取用户详细信息 #### 安全机制 - **密码加密**:使用bcrypt进行密码哈希处理 - **JWT令牌**:基于JSON Web Token的身份认证 - **设备追踪**:记录登录设备信息用于安全审计 - **会话管理**:支持多设备登录和会话过期处理 ### 🚀 用户体验优化 #### 界面设计 - **响应式布局**:适配不同屏幕尺寸和设备类型 - **视觉反馈**:输入状态、加载状态、成功/错误状态的清晰提示 - **操作引导**:新用户友好的操作指引和帮助信息 - **无障碍支持**:支持屏幕阅读器和键盘导航 #### 性能优化 - **快速加载**:页面预加载和资源优化 - **离线支持**:基本功能的离线可用性 - **数据缓存**:合理的数据缓存策略 - **网络适配**:弱网环境下的降级处理 ## 👤 用户中心模块详细说明 用户中心是系统的个人管理中枢,提供完整的用户信息管理、家庭管理、数据分析和系统设置功能。 ### 📋 主用户中心页面 (`pages/profile/profile.uvue`) #### 核心功能 - **用户信息展示**:显示用户头像、用户名、邮箱等基本信息 - **使用统计**:展示使用天数、设备数量、家庭成员等关键数据 - **快速导航**:提供到各个子模块的便捷入口 - **退出登录**:安全的登录状态管理和清理 #### 数据管理 - **异步加载**:使用`loadUserData()`异步获取用户信息和统计数据 - **状态管理**:包含加载状态、错误处理和数据更新机制 - **本地存储**:退出时清理本地存储和cookie信息 ### 🔧 账户管理模块 (`pages/profile/account.uvue`) #### 信息管理 - **基本信息**:用户名(只读)、手机号、邮箱、密码修改 - **个人资料**:所在城市、住宅类型、家庭成员数量 - **实时编辑**:支持弹窗式编辑,实时验证和保存 #### 安全功能 - **密码修改**:支持新密码设置和确认验证 - **信息验证**:邮箱格式、手机号格式等实时验证 - **账户注销**:提供安全的账户删除功能 #### 用户体验 - **编辑对话框**:统一的编辑界面,支持不同字段类型 - **住宅类型选择器**:专门的选择器组件 - **操作确认**:重要操作需要用户确认 ### 👨‍👩‍👧‍👦 家庭管理模块 (`pages/profile/family.uvue`) #### 家庭信息管理 - **家庭创建**:支持创建新家庭,设置家庭名称、地址、描述 - **家庭信息展示**:家庭卡片显示,包含家庭标识、成员数量 - **家庭编辑**:支持修改家庭基本信息 #### 成员管理 - **成员列表**:显示所有家庭成员,包含头像、姓名、角色 - **添加成员**:支持邀请新成员加入家庭 - **权限管理**:不同角色的权限设置和管理 - **成员移除**:管理员可移除普通成员 #### 设备共享 - **设备列表**:显示可共享的家庭设备 - **共享控制**:通过开关控制设备的共享状态 - **设备分类**:按设备类型分类显示和管理 ### 📊 使用历史模块 (`pages/profile/history.uvue`) #### 历史记录分类 - **设备操作历史**:记录所有设备的操作行为 - 操作时间、设备名称、操作类型、详细描述 - 操作分类标签(开启、关闭、调节等) - **环境数据历史**:环境监测数据的历史记录 - 数据采集时间、环境参数、数值变化 - 多维度环境数据展示 - **登录历史**:用户登录和退出记录 - 登录时间、登录状态、设备信息、IP地址 #### 查询功能 - **时间范围选择**:支持自定义开始和结束日期 - **分类筛选**:按不同历史类型进行筛选 - **高级筛选**:登录历史支持包含/排除退出记录 #### 数据展示 - **时间轴展示**:按时间顺序展示历史记录 - **详细信息**:每条记录包含完整的操作详情 - **状态标识**:不同操作类型的视觉标识 ### ⚡ 能耗统计模块 (`pages/profile/energy.uvue`) #### 能耗分析 - **总能耗统计**:显示选定时间段的总用电量 - **环比分析**:与上一周期的能耗对比分析 - **节能效果**:计算节约电量和减少的碳排放 #### 趋势分析 - **能耗趋势图**:可视化展示能耗变化趋势 - **时间周期选择**:支持日、周、月、年不同维度 - **数据标注**:趋势图上的关键数据点标注 #### 设备分析 - **设备能耗占比**:饼图显示各设备的能耗比例 - **设备排行**:按能耗大小排列设备使用情况 - **优化建议**:基于能耗数据提供节能建议 ### 🔔 通知设置模块 (`pages/profile/notification.uvue`) #### 通知总控制 - **全局开关**:控制所有通知的总开关 - **分类管理**:环境提醒、设备提醒、系统通知分类设置 #### 环境提醒设置 - **温度范围提醒**:温度超出舒适范围时的通知 - **湿度范围提醒**:湿度异常时的提醒设置 - **空气质量提醒**:空气质量低于阈值的通知 - **气压异常提醒**:气压变化超出范围的提醒 - **光照强度提醒**:光照异常时的通知设置 - **天气变化提醒**:天气显著变化的提醒 #### 设备提醒设置 - **设备状态变化**:设备开关状态变化通知 - **设备故障提醒**:设备异常或故障通知 - **维护提醒**:设备维护周期提醒 #### 智能特性 - **数据时效性检查**:只有最新数据(3分钟内)才触发通知 - **阈值设置链接**:直接跳转到舒适度偏好设置 - **通知优先级**:不同类型通知的优先级管理 ### 📈 环境报告模块 (`pages/profile/reports.uvue`) #### 综合评分系统 - **环境健康评分**:基于多维度数据的综合评分 - **分项评分**:空气质量、温湿度舒适度、节能程度分别评分 - **评分可视化**:圆形进度条和颜色编码显示评分 #### 空气质量报告 - **关键指标**:平均CO₂浓度、PM2.5浓度等核心数据 - **质量时间分布**:良好、一般、较差时间占比统计 - **趋势分析**:空气质量变化趋势和影响因素分析 - **优化建议**:基于数据分析的改善建议 #### 报告周期管理 - **多周期支持**:日报、周报、月报、年报 - **数据对比**:不同周期间的数据对比分析 - **历史趋势**:长期环境质量变化趋势 #### 个性化分析 - **用户行为关联**:分析用户操作对环境的影响 - **改善效果评估**:评估环境优化措施的实际效果 - **健康建议**:基于环境数据提供健康生活建议 ### 🔗 模块间协作 #### 数据共享 - **统一用户信息**:各模块共享用户基本信息 - **家庭数据同步**:家庭管理数据在其他模块中的应用 - **设备状态同步**:设备信息在多个模块间的一致性 #### 导航集成 - **统一入口**:主用户中心页面作为各模块的统一入口 - **快捷跳转**:模块间的相互跳转和关联功能 - **面包屑导航**:清晰的页面层级和返回路径 #### 用户体验一致性 - **统一设计语言**:所有模块采用一致的UI设计风格 - **交互模式统一**:相似功能采用相同的交互方式 - **错误处理统一**:统一的错误提示和处理机制 ## 技术特点 1. **智能决策引擎**:基于环境状态评估和用户偏好,自动生成最佳控制策略 2. **多传感融合**:整合多源数据,形成全面的环境感知能力 3. **设备协同控制**:考虑设备间的相互影响,实现系统级的协同优化 4. **用户个性化**:适应不同用户的偏好差异,提供个性化的舒适体验 5. **趋势预测**:根据历史数据和天气预报,预测未来环境变化并提前干预 ## 解决的核心痛点 1. **室内环境体感差异大**:传统设备只考虑单一指标,而本系统综合考虑多维度环境因素 2. **手动调节繁琐低效**:自动化调节替代频繁手动操作,提高生活便捷性 3. **健康与舒适平衡难**:智能算法在舒适度、健康和节能间寻找最佳平衡点 4. **设备信息孤岛**:打破设备间的隔阂,实现系统级的协同控制 ## 技术栈 ### 前端技术 - **框架**: uni-app x (Vue 3) - **语言**: TypeScript/UTS - **UI组件**: 自定义组件库 - **状态管理**: 组件内状态管理 - **网络请求**: 封装的request工具类 ### 后端技术 - **运行环境**: Node.js - **框架**: Express.js - **数据库**: MySQL 2 - **身份认证**: JWT (JSON Web Token) - **密码加密**: bcrypt - **实时通信**: MQTT - **API文档**: RESTful API ### 开发工具 - **IDE**: HBuilderX - **版本控制**: Git - **包管理**: npm - **构建工具**: Vite ## 项目结构 ``` environmental_regulation/ ├── config/ # 配置文件 │ └── db.js # 数据库配置 ├── controllers/ # 控制器层 │ ├── auditLogController.js # 审计日志控制器 │ ├── deviceController.js # 设备管理控制器 │ ├── environmentController.js # 环境数据控制器 │ ├── familyController.js # 家庭管理控制器 │ ├── sceneController.js # 场景模式控制器 │ └── userController.js # 用户管理控制器 ├── middleware/ # 中间件 │ └── authMiddleware.js # 身份认证中间件 ├── models/ # 数据模型 │ ├── deviceData.uts # 设备数据模型 │ ├── environmentData.uts # 环境数据模型 │ └── userPreference.uts # 用户偏好模型 ├── pages/ # 页面文件 │ ├── analysis/ # AI智能分析页面 │ │ └── analysis.uvue # AI环境分析报告和设备操作建议 │ ├── devices/ # 设备管理页面 │ │ └── devices.uvue # 设备发现、连接、控制和房间管理 │ ├── index/ # 首页 │ │ └── index.uvue # 环境舒适度概览和实时监控 │ ├── login/ # 登录注册页面 │ │ ├── login.uvue # 用户登录 │ │ ├── register.uvue # 用户注册 │ │ ├── privacy.uvue # 隐私政策 │ │ └── terms.uvue # 服务条款 │ ├── profile/ # 用户中心页面 │ │ ├── profile.uvue # 个人信息和统计 │ │ ├── account.uvue # 账户管理 │ │ ├── family.uvue # 家庭管理 │ │ ├── history.uvue # 使用历史 │ │ ├── energy.uvue # 能耗统计 │ │ ├── notification.uvue # 通知设置 │ │ └── reports.uvue # 使用报告 │ ├── scenes/ # 场景模式页面 │ │ └── scenes.uvue # 内置和自定义场景管理 │ ├── settings/ # 设置页面 │ │ └── settings.uvue # 用户偏好和系统配置 │ └── trends/ # 趋势分析页面 │ └── trends.uvue # 环境数据历史趋势图表 ├── routes/ # 路由配置 ├── scripts/ # 数据库脚本 ├── services/ # 服务层 │ ├── auditLogService.uts # 审计日志服务 - 用户操作记录和安全审计 │ ├── authService.uts # 认证服务 - 用户登录注册和账户管理 │ ├── deviceService.uts # 设备服务 - 设备发现、连接和控制管理 │ ├── environmentDataService.uts # 环境数据服务 - 室内环境数据获取和处理 │ ├── intelligentAgentService.uts # 智能体服务 - 环境评估和自动控制决策 │ ├── notificationService.uts # 通知服务 - 环境异常通知和用户提醒 │ └── weatherService.uts # 天气服务 - 室外天气数据和地理位置 ├── static/ # 静态资源 └── utils/ # 工具类 └── request.uts # 网络请求工具 ``` ## 核心功能模块 ### 1. 用户管理系统 - **用户注册/登录**: 支持邮箱注册,JWT身份认证 - **用户信息管理**: 个人资料编辑,偏好设置 - **家庭管理**: 多用户家庭共享,设备权限管理 - **隐私保护**: 符合隐私政策,数据安全保障 ### 2. 环境监测系统 - **实时环境监控**: 温度、湿度、空气质量指数、光照强度、气压、人体感应检测 - **舒适度实时评估**: 基于用户偏好自动判断当前环境舒适度状态 - **环境参数状态指示**: 各项环境参数的舒适度状态可视化显示 - **历史数据存储**: 支持按24小时、一周、一月查看历史趋势数据 - **趋势图表可视化**: Canvas图表展示温度、湿度等环境变化趋势 - **数据更新时间显示**: 实时显示最后数据更新时间和数据新鲜度 - **环境异常通知**: 环境参数超出舒适范围时自动提醒用户 ### 3. 智能设备管理 - **设备自动扫描**: 自动发现局域网内的智能设备,支持一键扫描功能 - **手动设备录入**: 支持手动添加和配置智能设备信息 - **房间区域管理**: 按房间区域分类管理设备,支持客厅、卧室、厨房等区域 - **设备连接控制**: 支持WiFi、MQTT等多种连接方式,实时显示连接状态 - **设备开关控制**: 统一的设备电源开关控制界面 - **设备共享管理**: 支持家庭成员间的设备共享和权限管理 - **设备状态监控**: 实时监控设备运行状态和参数显示 **支持的设备类型**: - 空调 (温度调节、模式切换、风速控制) - 加湿器 (湿度调节、水位监控) - 空气净化器 (净化模式、滤网寿命) - 智能窗户 (开合控制、锁定状态) - 智能窗帘 (开合百分比控制) - 环境监测器 (多传感器数据采集) ### 4. AI智能分析 - **DeepSeek AI集成**: 基于大语言模型的环境分析和智能决策 - **环境分析报告**: 生成详细的环境状态分析和改善建议 - **设备操作推荐**: 自动生成最优设备控制策略和参数设置 - **智能建议执行**: 支持一键执行AI推荐的设备操作 - **分析结果管理**: 支持复制分析结果和历史记录查看 ## AI技术详解 ### AI架构设计 本系统采用**混合智能架构**,结合了本地智能决策引擎和云端大语言模型,实现高效、准确的环境分析和设备控制。 #### 1. 本地智能决策引擎 **核心组件**: `IntelligentAgentService` **主要功能**: - **环境状态评估**: 基于用户偏好和环境数据进行实时舒适度评估 - **设备控制决策**: 根据环境评估结果生成最优设备控制策略 - **环境趋势预测**: 基于室内外环境差异预测环境变化趋势 - **自动化控制**: 执行智能决策,实现设备的自动化协同控制 **技术特点**: ```typescript // 环境评估算法 class EnvironmentAssessment { // 多维度环境状态评估 temperatureStatus: number // -1:偏低, 0:舒适, 1:偏高 humidityStatus: number // -1:偏低, 0:舒适, 1:偏高 airQualityStatus: number // -1:较差, 0:良好, 1:优秀 lightStatus: number // -1:过暗, 0:适宜, 1:过亮 pressureStatus: number // -1:偏低, 0:正常, 1:偏高 pirStatus: number // 0:无人, 1:有人 suggestions: string[] // 改善建议列表 } ``` #### 2. DeepSeek AI云端分析 **AI模型**: DeepSeek Chat (deepseek-chat) **分析流程**: 1. **数据收集**: 收集室内外环境数据、用户偏好、设备状态 2. **上下文构建**: 构建结构化的分析提示词 3. **AI推理**: 调用DeepSeek API进行深度分析 4. **结果解析**: 解析AI返回的分析报告和设备操作建议 5. **执行反馈**: 支持一键执行AI推荐的设备操作 **提示词工程**: ```javascript const systemPrompt = `你是一个专业的智能家居环境分析师,具备以下能力: 1. 环境数据分析:分析温度、湿度、空气质量等环境参数 2. 用户偏好理解:根据用户设定的舒适范围进行个性化分析 3. 设备操作建议:基于环境状态和可用设备,提供具体的操作建议 4. 健康与舒适平衡:在舒适度、健康和节能之间找到最佳平衡点 请根据提供的环境数据和用户偏好,进行全面的环境分析...` ``` ### AI功能实现 #### 1. 智能环境评估 **本地评估算法**: - **多参数综合评估**: 同时考虑温度、湿度、空气质量、光照、气压等多个维度 - **用户偏好适配**: 根据用户设定的舒适范围进行个性化评估 - **实时状态判断**: 实时判断各项环境参数的舒适度状态 - **智能建议生成**: 基于评估结果生成针对性的改善建议 **评估逻辑**: ```typescript // 温度状态评估 const temperatureStatus = temperature < comfortTempRange[0] ? -1 : temperature > comfortTempRange[1] ? 1 : 0 // 空气质量评估(百分比越高表示越好) const airQualityStatus = acceptableAQILimit > 0 && aqi < acceptableAQILimit ? -1 : 0 // 综合舒适度判断 const isComfortable = temperatureStatus === 0 && humidityStatus === 0 && airQualityStatus === 0 ``` #### 2. 设备控制决策 **决策生成流程**: 1. **环境问题识别**: 基于环境评估结果识别需要改善的问题 2. **设备匹配**: 根据问题类型匹配相应的设备类型 3. **参数计算**: 计算最优的设备控制参数 4. **优先级排序**: 根据问题严重程度和设备重要性排序 **支持的设备控制策略**: - **空调控制**: 温度调节、模式切换(制冷/制热/除湿)、风速调节 - **加湿器控制**: 湿度目标设定、工作模式调节 - **空气净化器控制**: 净化模式选择、风速调节 - **智能窗户控制**: 开合度调节、通风控制 - **智能窗帘控制**: 遮光度调节、隐私保护 #### 3. AI分析报告生成 **分析维度**: - **当前环境状态**: 详细分析各项环境参数的当前状态 - **舒适度评估**: 基于用户偏好进行个性化舒适度评估 - **问题识别**: 识别环境中存在的问题和潜在风险 - **改善建议**: 提供具体的环境改善建议和操作指导 - **设备操作**: 生成具体的设备控制指令和参数设置 **报告格式化**: - **富文本展示**: 支持标题、列表、强调等多种格式 - **操作建议解析**: 自动解析AI返回的设备操作建议 - **一键执行**: 支持直接执行AI推荐的设备操作 - **结果复制**: 支持复制分析结果用于分享或记录 #### 4. 智能操作执行 **操作解析引擎**: ```typescript // 设备操作建议解析 const parseDeviceOperations = () => { // 支持多种格式的操作建议解析 const flexibleRegex = /建议\s*(\d+)[::]?\s*调节设备[::]?([^,,::]+)[^]*?设备ID[::]?\s*(\d+)[^]*?操作[::]?\s*([^,,::]+)[^]*?参数[::]?\s*([^\n]*)/g // 解析参数并构建控制命令 const parsedParams = {} const paramPairs = parameters.split(/[,,]/).map(p => p.trim()) for (const pair of paramPairs) { const [key, value] = pair.split('=').map(s => s.trim()) if (key && value) { parsedParams[key] = value.replace(/[°C%]/g, '') } } } ``` **执行流程**: 1. **指令解析**: 解析AI返回的设备操作建议 2. **参数验证**: 验证操作参数的合法性和安全性 3. **设备通信**: 通过统一的设备控制接口执行操作 4. **结果反馈**: 实时反馈操作执行结果和设备状态 ### AI技术优势 #### 1. 混合智能架构 - **本地决策**: 快速响应,无需网络依赖 - **云端分析**: 深度理解,专业建议 - **智能切换**: 根据网络状况和分析需求智能选择 #### 2. 个性化适配 - **用户偏好学习**: 根据用户设置和使用习惯进行个性化分析 - **场景感知**: 结合场景模式提供针对性建议 - **历史数据**: 基于历史环境数据进行趋势分析 #### 3. 多维度分析 - **环境参数**: 温度、湿度、空气质量、光照、气压等 - **外部因素**: 室外天气、季节变化、时间因素 - **设备状态**: 设备能力、运行状态、能耗情况 - **用户行为**: 在家状态、活动模式、偏好设置 #### 4. 智能执行 - **自动化控制**: 支持全自动的设备控制执行 - **安全保护**: 多重安全检查,防止误操作 - **协同优化**: 考虑设备间的协作关系,避免冲突 - **能效平衡**: 在舒适度和节能之间找到最佳平衡 ### 使用场景 #### 1. 日常环境优化 - **实时监控**: 持续监控环境状态,及时发现问题 - **自动调节**: 根据环境变化自动调节设备参数 - **预防性控制**: 基于趋势预测提前进行环境调节 #### 2. 场景切换优化 - **智能场景**: 结合AI分析优化场景模式参数 - **动态调整**: 根据实际环境状态动态调整场景设置 - **个性化场景**: 基于用户习惯创建个性化场景模式 #### 3. 健康环境管理 - **空气质量**: 智能监控和改善室内空气质量 - **舒适度优化**: 在健康、舒适和节能之间找到平衡 - **异常预警**: 及时发现环境异常并提供解决方案 #### 4. 节能优化 - **能效分析**: 分析设备能耗和环境效果的关系 - **智能调度**: 优化设备运行时间和参数设置 - **成本控制**: 在保证舒适度的前提下最小化能耗成本 ### 5. 场景模式管理 - **内置场景模式**: 在家、离家、睡眠、会客等标准场景,预设最佳环境参数 - **自定义场景创建**: 用户可创建个性化场景模式,自定义温湿度和设备状态 - **一键场景切换**: 快速激活不同环境场景,自动调整所有相关设备 - **场景参数显示**: 实时显示各场景的目标温度、湿度和自动控制状态 - **场景状态管理**: 显示当前激活场景和使用状态 ### 6. 数据分析与报告 - **多时间维度趋势**: 支持24小时、一周、一月的环境数据趋势分析 - **可视化图表展示**: 温度、湿度、空气质量等参数的历史趋势图表 - **舒适度统计评分**: 基于用户偏好和使用天数的舒适度评分系统 - **节能效果分析**: 设备能耗监控和节能率统计展示 - **个人使用报告**: 用户中心提供详细的使用统计和环境改善报告 ## API 接口文档 ### 认证说明 大部分API接口需要JWT Token认证,请在请求头中添加: ``` Authorization: Bearer ``` ### 环境数据 API #### 获取当前室内环境 ```http GET /api/environment/current ``` **响应示例**: ```json { "success": true, "data": { "temperature": 24.5, "humidity": 55.2, "airQualityIndex": 85, "pirDetected": "none", "lightLevel": 450, "pressure": 1013.25, "measureTime": "2024-01-15T10:30:00Z" } } ``` #### 获取环境历史数据 ```http GET /api/environment/history?timeRange=day&limit=24 ``` **查询参数**: - `timeRange`: 时间范围 (day/week/month) - `limit`: 返回记录数量限制 - `startDate`: 开始日期 (可选) - `endDate`: 结束日期 (可选) #### 获取环境舒适度评估 ```http GET /api/environment/assessment ``` #### 获取环境趋势预测 ```http GET /api/environment/prediction ``` #### 添加环境数据记录 🔒 ```http POST /api/environment/record ``` **请求体示例**: ```json { "temperature": 24.5, "humidity": 55.2, "airQuality": 85, "pir": "none", "light": 450, "pressure": 101325 } ``` #### 获取环境数据统计 ```http GET /api/environment/statistics ``` #### 获取特定设备环境数据 ```http GET /api/environment/device/{deviceId}/current GET /api/environment/device/{deviceId}/history ``` ### 设备管理 API #### 获取设备列表 🔒 ```http GET /api/devices ``` **响应示例**: ```json { "success": true, "data": [ { "id": 1, "name": "客厅空调", "type": "air_conditioner", "room": "living_room", "status": true, "connectionStatus": "connected", "ipAddress": "192.168.1.100", "lastUpdated": "2024-01-15T10:30:00Z" } ] } ``` #### 获取特定设备信息 🔒 ```http GET /api/devices/{deviceId} ``` #### 按房间获取设备 🔒 ```http GET /api/devices/room/{roomArea} ``` #### 按类型获取设备 🔒 ```http GET /api/devices/type/{deviceType} ``` #### 添加新设备 🔒 ```http POST /api/devices ``` **请求体示例**: ```json { "name": "客厅空调", "type": "air_conditioner", "room": "living_room", "ipAddress": "192.168.1.100", "macAddress": "AA:BB:CC:DD:EE:FF" } ``` #### 更新设备信息 🔒 ```http PUT /api/devices/{deviceId} ``` #### 删除设备 🔒 ```http DELETE /api/devices/{deviceId} ``` #### 设备发现和连接 🔒 ```http POST /api/devices/discover ``` #### 通用设备控制 🔒 ```http POST /api/devices/{deviceId}/control ``` **请求体示例**: ```json { "operation": "adjust", "parameters": { "targetTemperature": 26, "mode": "cool", "fanSpeed": "medium" } } ``` #### 设备开关控制 🔒 ```http POST /api/devices/{deviceId}/power ``` **请求体示例**: ```json { "status": true } ``` #### 专用设备控制接口 🔒 ```http POST /api/devices/{deviceId}/air-conditioner # 空调控制 POST /api/devices/{deviceId}/humidifier # 加湿器控制 POST /api/devices/{deviceId}/air-purifier # 空气净化器控制 POST /api/devices/{deviceId}/window # 智能窗户控制 POST /api/devices/{deviceId}/curtain # 智能窗帘控制 ``` #### MQTT设备控制 🔒 ```http POST /api/devices/{deviceId}/mqtt-command ``` #### 获取设备参数历史 🔒 ```http GET /api/devices/parameters/history ``` ### 用户管理 API #### 用户注册 ```http POST /api/users/register ``` **请求体示例**: ```json { "username": "testuser", "password": "password123", "email": "user@example.com" } ``` #### 用户登录 ```http POST /api/users/login ``` **请求体示例**: ```json { "username": "testuser", "password": "password123" } ``` **响应示例**: ```json { "success": true, "message": "登录成功", "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "userInfo": { "id": 1, "username": "testuser", "email": "user@example.com" } } ``` #### 用户退出登录 🔒 ```http POST /api/users/logout ``` #### 获取当前用户信息 🔒 ```http GET /api/users/profile ``` #### 更新用户信息 🔒 ```http PUT /api/users/profile ``` #### 修改密码 🔒 ```http PUT /api/users/password ``` **请求体示例**: ```json { "currentPassword": "oldpassword", "newPassword": "newpassword123" } ``` #### 获取用户偏好设置 🔒 ```http GET /api/users/preferences ``` #### 更新用户偏好设置 🔒 ```http PUT /api/users/preferences ``` **请求体示例**: ```json { "targetTemperature": 24, "targetHumidity": 55, "autoControlEnabled": true, "comfortRange": { "temperatureMin": 22, "temperatureMax": 26, "humidityMin": 45, "humidityMax": 65 } } ``` #### 获取通知设置 🔒 ```http GET /api/users/notifications ``` #### 更新通知设置 🔒 ```http PUT /api/users/notifications ``` #### 获取用户统计数据 🔒 ```http GET /api/users/statistics ``` #### 获取用户报告 🔒 ```http GET /api/users/reports/energy # 能源使用报告 GET /api/users/reports/comfort # 舒适度报告 ``` #### 获取用户活动历史 🔒 ```http GET /api/users/history ``` ### 场景模式 API #### 获取所有场景模式 🔒 ```http GET /api/scenes ``` #### 获取系统预设场景 🔒 ```http GET /api/scenes/preset/all ``` #### 获取用户自定义场景 🔒 ```http GET /api/scenes/custom/all ``` #### 获取当前激活场景 🔒 ```http GET /api/scenes/active ``` #### 获取特定场景信息 🔒 ```http GET /api/scenes/{sceneId} ``` #### 创建自定义场景 🔒 ```http POST /api/scenes ``` **请求体示例**: ```json { "name": "我的舒适模式", "icon": "custom", "settings": { "targetTemperature": 25, "targetHumidity": 60, "autoControlEnabled": true, "deviceSettings": { "air_conditioner": { "mode": "cool", "fanSpeed": "low" } } } } ``` #### 更新场景模式 🔒 ```http PUT /api/scenes/{sceneId} ``` #### 删除场景模式 🔒 ```http DELETE /api/scenes/{sceneId} ``` #### 激活场景模式 🔒 ```http POST /api/scenes/{sceneId}/activate ``` ### 家庭管理 API #### 获取家庭信息 🔒 ```http GET /api/family ``` #### 创建新家庭 🔒 ```http POST /api/family ``` **请求体示例**: ```json { "name": "我的家庭", "description": "温馨的家" } ``` #### 更新家庭信息 🔒 ```http PUT /api/family/{familyId} ``` #### 添加家庭成员 🔒 ```http POST /api/family/{familyId}/members ``` **请求体示例**: ```json { "email": "member@example.com", "role": "member" } ``` #### 更新成员角色 🔒 ```http PUT /api/family/{familyId}/members/{memberId}/role ``` #### 移除家庭成员 🔒 ```http DELETE /api/family/{familyId}/members/{memberId} ``` #### 更新设备共享 🔒 ```http PUT /api/family/{familyId}/devices/{deviceId}/sharing ``` #### 获取共享设备 🔒 ```http GET /api/family/shared-devices ``` ### 审计日志 API #### 获取登录历史 🔒 ```http GET /api/audit/login-history ``` ### 响应状态码说明 - `200 OK`: 请求成功 - `201 Created`: 资源创建成功 - `400 Bad Request`: 请求参数错误 - `401 Unauthorized`: 未授权,需要登录 - `403 Forbidden`: 禁止访问,权限不足 - `404 Not Found`: 资源不存在 - `409 Conflict`: 资源冲突(如用户名已存在) - `500 Internal Server Error`: 服务器内部错误 ### 错误响应格式 ```json { "success": false, "message": "错误描述", "error": "详细错误信息" } ``` **说明**: 🔒 表示需要JWT Token认证的接口 ## 安装与部署 ### 环境要求 - Node.js >= 16.0.0 - MySQL >= 8.0 - HBuilderX (用于前端开发) ### 后端部署 1. **克隆项目** ```bash git clone cd environmental_regulation ``` 2. **安装依赖** ```bash npm install ``` 3. **配置环境变量** 创建 `.env` 文件: ```env DB_HOST=localhost DB_PORT=3306 DB_USER=your_username DB_PASSWORD=your_password DB_NAME=environmental_regulation JWT_SECRET=your_jwt_secret PORT=3000 ``` 4. **初始化数据库** ```bash npm run init-db ``` 5. **启动服务** ```bash # 开发环境 npm run dev # 生产环境 npm start ``` ### 前端部署 1. **使用HBuilderX打开项目** 2. **配置manifest.json中的appid** 3. **运行到相应平台** - 运行到浏览器 - 运行到手机或模拟器 - 发行为原生App ### 数据库配置 系统使用MySQL数据库,主要数据表包括: - `users`: 用户信息表 - `devices`: 设备信息表 - `device_parameters`: 设备参数表 - `environmental_status`: 环境数据表 - `user_preferences`: 用户偏好表 - `scene_modes`: 场景模式表 - `family_members`: 家庭成员表 - `device_sharing`: 设备共享表 - `audit_logs`: 审计日志表 ## 开发指南 ### 前端开发 #### 添加新页面 1. 在 `pages/` 目录下创建新的页面文件 2. 在 `pages.json` 中注册新页面 3. 配置页面样式和导航 #### 网络请求 使用封装的request工具: ```typescript import { DeviceApi } from '../utils/request' // 获取设备列表 DeviceApi.getDevices().then(response => { if (response.success) { this.devices = response.data } }) ``` #### 状态管理 使用组件内状态管理,复杂状态可考虑使用Pinia或Vuex。 ### 后端开发 #### 添加新的API接口 1. 在 `controllers/` 目录下创建或修改控制器 2. 在 `routes/` 目录下配置路由 3. 在 `server.js` 中注册路由 #### 数据库操作 使用MySQL连接池进行数据库操作: ```javascript const { pool } = require('../config/db') async function getDevices() { const [rows] = await pool.query('SELECT * FROM devices') return rows } ``` #### 身份认证 使用JWT中间件保护需要认证的接口: ```javascript const authMiddleware = require('../middleware/authMiddleware') router.get('/protected', authMiddleware, (req, res) => { // 受保护的路由 }) ``` ## 测试 ### 单元测试 ```bash npm test ``` ### API测试 可使用Postman或其他API测试工具测试后端接口。 ### 前端测试 在HBuilderX中运行到浏览器进行测试。 ## 性能优化 ### 前端优化 - 图片资源压缩 - 组件懒加载 - 网络请求缓存 - 页面预加载 ### 后端优化 - 数据库连接池 - Redis缓存 - API响应压缩 - 数据库索引优化 ## 安全考虑 - JWT Token过期机制 - 密码bcrypt加密 - SQL注入防护 - CORS跨域配置 - 输入数据验证 - 敏感信息环境变量存储 ## 故障排除 ### 常见问题 1. **数据库连接失败** - 检查数据库服务是否启动 - 验证.env文件中的数据库配置 - 确认数据库用户权限 2. **前端无法连接后端** - 检查后端服务是否启动 - 验证API地址配置 - 检查网络连接 3. **设备连接失败** - 确认设备和服务器在同一网络 - 检查MQTT服务器配置 - 验证设备认证信息 ## 贡献指南 1. Fork 项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开 Pull Request ## 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 联系方式 - 项目维护者: [您的姓名] - 邮箱: [您的邮箱] - 项目链接: [项目仓库地址] ## 更新日志 ### v1.0.0 (2024-01-15) - 初始版本发布 - 实现基础环境监测功能 - 支持多种智能设备控制 - 集成AI智能分析 - 用户管理和家庭共享功能 ## 后续开发计划 ### 短期计划 (1-3个月) 1. 添加机器学习模块,根据用户反馈和历史数据优化控制策略 2. 扩展支持更多种类的智能设备 3. 优化AI分析算法,提高建议准确性 4. 增加数据导出功能 ### 中期计划 (3-6个月) 1. 增加语音交互功能,实现自然语言控制 2. 开发能耗分析和节能建议功能 3. 添加地理位置相关的环境预测 4. 实现设备故障预警系统 ### 长期计划 (6-12个月) 1. 优化室内空气质量预警和健康建议模块 2. 集成更多第三方智能家居平台 3. 开发移动端原生应用 4. 添加社区分享和经验交流功能