# 帆船esp32 **Repository Path**: xu-jun-jie1/sailing-esp32 ## Basic Information - **Project Name**: 帆船esp32 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-01-25 - **Last Updated**: 2025-01-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ESP32遥控小车 Web控制系统 这是一个基于Web的ESP32遥控小车控制系统,提供实时视频流、远程控制、用户管理和系统监控功能。 ## 技术栈 ### 后端技术 - **Flask**: Python Web框架 - 提供轻量级的Web服务器 - 处理HTTP请求和路由管理 - 集成用户认证和会话管理 - **Flask-SQLAlchemy**: 数据库ORM - 提供对SQLite数据库的对象关系映射 - 管理用户数据和系统设置 - 简化数据库操作和维护 - **Flask-Login**: 用户认证系统 - 处理用户登录、登出和会话管理 - 提供用户认证装饰器 - 记录用户登录时间和IP地址 - **Flask-SocketIO**: WebSocket通信 - 实现实时双向通信 - 处理实时控制命令 - 推送系统状态更新 ### 前端技术 - **Bootstrap 5**: UI框架 - 响应式布局设计 - 现代化的UI组件 - 移动端优化 - **Socket.IO**: 实时通信客户端 - 与服务器保持WebSocket连接 - 发送控制命令 - 接收状态更新 - **Font Awesome**: 图标库 - 提供丰富的图标集 - 增强用户界面视觉效果 ## 系统架构 ### 1. 用户认证系统 - 基于Flask-Login实现用户认证 - 使用Werkzeug进行密码加密 - 支持管理员和普通用户角色 - 记录用户登录信息和活动 ### 2. 实时通信 - 使用WebSocket协议实现双向通信 - Socket.IO提供可靠的实时数据传输 - 支持以下实时功能: - 控制命令传输 - 系统状态更新 - 视频流推送 ### 3. 数据存储 - SQLite数据库存储用户数据和系统设置 - 数据模型包括: - User: 用户信息和认证数据 - ESP32Settings: 设备配置信息 ### 4. 视频流处理 - 使用MJPEG格式传输视频流 - 支持实时视频质量调整 - 自动处理连接断开和重连 ### 5. 系统监控 - 实时监控以下指标: - ESP32连接状态 - 内存使用情况 - 信号强度 - 电池电量 - 系统温度 ## 安全特性 1. **密码安全** - 使用Werkzeug进行密码哈希 - 安全的密码存储机制 - 防止密码明文传输 2. **会话管理** - 安全的会话处理 - 自动会话超时 - 防止会话劫持 3. **访问控制** - 基于角色的权限系统 - 管理员特权操作保护 - API访问认证 ## 部署要求 ### 系统要求 - Python 3.7+ - SQLite 3 - 现代Web浏览器(支持WebSocket) ### 依赖安装 ```bash pip install -r requirements.txt ``` ### 配置说明 1. 环境变量配置 - SECRET_KEY: 应用密钥 - DATABASE_URL: 数据库连接URL - DEBUG: 调试模式开关 2. ESP32配置 - IP地址设置 - 端口配置 - 视频流参数 ## 使用说明 ### 1. 启动服务器 ```bash python app.py ``` ### 2. 访问控制面板 - 打开浏览器访问 `http://localhost:5000` - 使用管理员账户登录 - 默认管理员账户: - 用户名: admin - 密码: admin123 ### 3. 用户管理 - 创建新用户 - 设置用户权限 - 管理用户状态 ### 4. 车辆控制 - 方向控制:上下左右 - 速度调节:0-100% - 实时视频查看 - 系统状态监控 ## 技术原理 ### 1. WebSocket通信原理 - 基于TCP的全双工通信协议 - 保持持久连接,减少延迟 - 支持二进制和文本数据传输 - 自动心跳检测和重连机制 ### 2. 视频流传输 - MJPEG流式传输 - 实时图像压缩和质量控制 - 带宽优化和缓冲处理 ### 3. 用户认证机制 - 基于Session的认证系统 - 密码加密和验证流程 - 用户状态追踪和管理 ### 4. 实时控制实现 - 命令队列处理 - 状态同步机制 - 错误处理和恢复 ## 性能优化 1. **前端优化** - 资源压缩和缓存 - 异步加载非关键资源 - 减少DOM操作 2. **后端优化** - 数据库查询优化 - 连接池管理 - 异步任务处理 3. **网络优化** - WebSocket心跳维护 - 断线重连机制 - 数据压缩传输 ## 贡献指南 1. Fork 项目 2. 创建特性分支 3. 提交更改 4. 推送到分支 5. 创建 Pull Request ## 许可证 MIT License