smart-home/WiFi配置云端同步部署说明.md
2026-02-26 09:16:34 +08:00

4.6 KiB
Raw Blame History

WiFi配置云端同步功能部署说明

🎯 功能概述

本功能实现了ESP32设备WiFi配置信息的云端同步解决了以下问题

  1. 移除硬编码WiFi信息 - 不再有固定的"315"WiFi配置
  2. 用户自主配置 - 用户通过SoftAP模式配置WiFi后信息会自动同步到云端
  3. 数据持久化 - WiFi配置信息既保存在本地NVS也备份到云端服务器
  4. 设备管理 - 甲方可以通过云端API查看和管理所有设备的WiFi配置

🔧 修改内容

ESP32代码修改

  1. 移除硬编码WiFi信息

    • NetworkManager.cpp - 移除"315"WiFi回退逻辑
    • SystemInitializer.cpp - 移除硬编码WiFi配置
    • SimpleWiFiConfig.cpp - 移除WiFi扫描结果中的硬编码信息
  2. 新增云端同步模块

    • WiFiCredentialSync.h/cpp - WiFi凭据云端同步功能
    • 集成到SimpleWiFiConfig.cpp保存WiFi配置时自动同步到云端
  3. 修复配置逻辑

    • 修复WiFi配置模式被错误判断为初始化失败的问题
    • 移除重复的WiFi配置实例创建

云端服务器

  1. 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

📱 用户使用流程

首次配置

  1. 长按按键 - ESP32进入SoftAP配置模式
  2. 连接AP - 手机连接"FireFly_Config" WiFi密码12345678
  3. 打开配置页面 - 浏览器访问 http://192.168.4.1:9090
  4. 填写WiFi信息 - 输入用户的WiFi账号和密码
  5. 自动同步 - 设备保存配置并自动同步到云端
  6. 重启连接 - 设备重启后连接用户配置的WiFi

后续使用

  • 设备重启后自动连接上次配置的WiFi
  • 如果WiFi连接失败自动进入配置模式
  • 所有配置信息都有云端备份

🔐 安全特性

  1. 密码加密 - WiFi密码使用Base64编码存储
  2. 设备标识 - 使用MAC地址作为设备唯一标识
  3. 本地优先 - 优先使用本地NVS存储的配置
  4. 云端备份 - 云端同步失败不影响本地功能

📊 管理接口

甲方可以通过以下方式管理设备:

查看所有设备

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

🐛 故障排除

常见问题

  1. 设备一直处于配置模式

    • 检查WiFi账号密码是否正确
    • 检查WiFi信号强度
    • 查看串口日志确认错误信息
  2. 云端同步失败

    • 检查网络连接
    • 确认服务器地址正确
    • 云端同步失败不影响本地功能
  3. 配置页面无法访问

    • 确认已连接到"FireFly_Config" WiFi
    • 尝试访问 http://192.168.4.1:9090
    • 检查防火墙设置

日志分析

关键日志标识:

  • SimpleWiFiConfig - WiFi配置相关
  • WiFiCredentialSync - 云端同步相关
  • SystemInitializer - 系统初始化相关

📈 后续扩展

  1. 数据库存储 - 可以将JSON文件存储改为数据库
  2. 用户认证 - 添加用户登录和权限管理
  3. 设备分组 - 支持设备分组管理
  4. 配置模板 - 支持WiFi配置模板
  5. 监控告警 - 设备离线告警功能

验证清单

部署完成后,请验证以下功能:

  • ESP32启动后不再尝试连接"315"WiFi
  • 长按按键可以进入配置模式
  • 配置页面可以正常访问和使用
  • WiFi配置保存后设备可以正常连接
  • 云端API可以正常访问
  • 设备重启后自动连接上次配置的WiFi
  • 配置信息已同步到云端服务器

📞 技术支持

如有问题,请检查:

  1. ESP32串口日志
  2. 云端服务器日志
  3. 网络连接状态
  4. API接口响应