4.6 KiB
4.6 KiB
WiFi配置云端同步功能部署说明
🎯 功能概述
本功能实现了ESP32设备WiFi配置信息的云端同步,解决了以下问题:
- 移除硬编码WiFi信息 - 不再有固定的"315"WiFi配置
- 用户自主配置 - 用户通过SoftAP模式配置WiFi后,信息会自动同步到云端
- 数据持久化 - WiFi配置信息既保存在本地NVS,也备份到云端服务器
- 设备管理 - 甲方可以通过云端API查看和管理所有设备的WiFi配置
🔧 修改内容
ESP32代码修改
-
移除硬编码WiFi信息
NetworkManager.cpp- 移除"315"WiFi回退逻辑SystemInitializer.cpp- 移除硬编码WiFi配置SimpleWiFiConfig.cpp- 移除WiFi扫描结果中的硬编码信息
-
新增云端同步模块
WiFiCredentialSync.h/cpp- WiFi凭据云端同步功能- 集成到
SimpleWiFiConfig.cpp中,保存WiFi配置时自动同步到云端
-
修复配置逻辑
- 修复WiFi配置模式被错误判断为初始化失败的问题
- 移除重复的WiFi配置实例创建
云端服务器
- WiFi凭据存储API
wifi_credential_server.py- Flask服务器,提供WiFi凭据的CRUD操作- 支持密码加密存储(Base64编码)
- 提供设备管理接口
🚀 部署步骤
1. 部署云端服务器
# 1. 安装依赖
pip install flask requests
# 2. 启动服务器
cd python_test
python wifi_credential_server.py
服务器将在 http://47.239.124.130:8080 启动,提供以下API:
POST /api/wifi-credentials- 上传WiFi凭据GET /api/wifi-credentials/<device_id>- 下载WiFi凭据GET /api/wifi-credentials- 列出所有设备DELETE /api/wifi-credentials/<device_id>- 删除WiFi凭据GET /health- 健康检查
2. 编译ESP32代码
确保在CMakeLists.txt中添加新的源文件:
set(SOURCES
# ... 其他文件 ...
"Module/WiFiCredentialSync.cpp"
)
3. 测试功能
# 测试云端同步功能
python test_wifi_credential_sync.py
📱 用户使用流程
首次配置
- 长按按键 - ESP32进入SoftAP配置模式
- 连接AP - 手机连接"FireFly_Config" WiFi(密码:12345678)
- 打开配置页面 - 浏览器访问
http://192.168.4.1:9090 - 填写WiFi信息 - 输入用户的WiFi账号和密码
- 自动同步 - 设备保存配置并自动同步到云端
- 重启连接 - 设备重启后连接用户配置的WiFi
后续使用
- 设备重启后自动连接上次配置的WiFi
- 如果WiFi连接失败,自动进入配置模式
- 所有配置信息都有云端备份
🔐 安全特性
- 密码加密 - WiFi密码使用Base64编码存储
- 设备标识 - 使用MAC地址作为设备唯一标识
- 本地优先 - 优先使用本地NVS存储的配置
- 云端备份 - 云端同步失败不影响本地功能
📊 管理接口
甲方可以通过以下方式管理设备:
查看所有设备
curl http://47.239.124.130:8080/api/wifi-credentials
查看特定设备
curl http://47.239.124.130:8080/api/wifi-credentials/aabbccddeeff
删除设备配置
curl -X DELETE http://47.239.124.130:8080/api/wifi-credentials/aabbccddeeff
🐛 故障排除
常见问题
-
设备一直处于配置模式
- 检查WiFi账号密码是否正确
- 检查WiFi信号强度
- 查看串口日志确认错误信息
-
云端同步失败
- 检查网络连接
- 确认服务器地址正确
- 云端同步失败不影响本地功能
-
配置页面无法访问
- 确认已连接到"FireFly_Config" WiFi
- 尝试访问
http://192.168.4.1:9090 - 检查防火墙设置
日志分析
关键日志标识:
SimpleWiFiConfig- WiFi配置相关WiFiCredentialSync- 云端同步相关SystemInitializer- 系统初始化相关
📈 后续扩展
- 数据库存储 - 可以将JSON文件存储改为数据库
- 用户认证 - 添加用户登录和权限管理
- 设备分组 - 支持设备分组管理
- 配置模板 - 支持WiFi配置模板
- 监控告警 - 设备离线告警功能
✅ 验证清单
部署完成后,请验证以下功能:
- ESP32启动后不再尝试连接"315"WiFi
- 长按按键可以进入配置模式
- 配置页面可以正常访问和使用
- WiFi配置保存后设备可以正常连接
- 云端API可以正常访问
- 设备重启后自动连接上次配置的WiFi
- 配置信息已同步到云端服务器
📞 技术支持
如有问题,请检查:
- ESP32串口日志
- 云端服务器日志
- 网络连接状态
- API接口响应