Skip to content

Latest commit

 

History

History
118 lines (82 loc) · 3.73 KB

File metadata and controls

118 lines (82 loc) · 3.73 KB

DP100-ESP32-WebApp

ESP32-S3 固件项目,用于通过 USB Host 连接 DP100 电源,并提供网页监控、Wi-Fi 配网、HTTP 控制 API 和轻量级 WebSocket 遥测通道。英文说明见 README.EN.md

【改装】基于ESP32-S3的DP100无线控制器 独立使用! 不干扰按键!

DP100改装

在 USB Device 模式下 DP100的USB-A口不支持输出5V电压 因此,需要将功率电子开关的输入,直接短接到其输出上

功能概览

  • 通过 ESP32-S3 USB Host 与 DP100 通讯。
  • 开机自动尝试已保存 Wi-Fi,失败后进入 SoftAP 配网页面。
  • 内嵌网页仪表盘:http://<esp32-ip>/
  • web/ 下提供本地网页调试环境,无需反复烧录固件。
  • /ws 提供高频 CSV 文本格式遥测数据,适合浏览器图表或 AI 观察程序。
  • HTTP API 支持状态读取、Wi-Fi 配置、DP100 输出控制、时间同步和定时开关。

目录结构

main/                 ESP-IDF 应用组件
  main.c              应用入口
  dp100_usb.*         DP100 USB Host 轮询与控制
  wifi_portal.*       Web 服务、Wi-Fi 配网、API、WebSocket
  scheduler.*         时间同步与 crontab 风格定时开关
  json_utils.*        JSON 响应辅助函数
  portal.html         固件内嵌网页
web/                  本地网页与开发服务器
docs/                 API、WebSocket 与产品文档
tools/                构建、烧录、WebSocket 调试脚本
ref/                  参考实现
build/                ESP-IDF 生成的构建输出

构建与烧录

优先使用项目脚本,不要直接调用 idf.py。脚本会设置 ESP-IDF 6.0.1、工具链路径和目标芯片。

./tools/build.sh
./tools/flash.sh -p /dev/ttyUSB0

默认烧录使用已有构建产物。如需烧录时重新构建:

./tools/flash.sh -p /dev/ttyUSB0 --build

当前项目仅面向 ESP32-S3。

本地网页调试

修改前端时建议先运行本地页面:

node web/server.mjs

然后打开:

http://127.0.0.1:8080

默认设备 IP 为 192.168.1.20。本地开发服务器会代理 HTTP API 请求以避免浏览器 CORS 问题,WebSocket 则直接连接 ws://<device-ip>/ws。前端稳定后,需要同步 web/index.htmlmain/portal.html

运行逻辑

ESP32 开机后会按保存顺序尝试连接 Wi-Fi。连接成功后进入 STA 模式,并在获取到的 IP 上提供网页服务。若无法连接已保存 Wi-Fi,则启动开放 SoftAP 配网页面。

DP100 高频遥测通过 WebSocket 发送 CSV 文本。连接后第一条消息是表头:

dt/ms,v/mV,i/mA,s/status

后续数据行包含发送间隔、电压、电流和输出状态。状态值含义:

  • 0: OFF
  • 1: CV
  • 2: CC

功率不由固件上传,浏览器或客户端使用 电压 * 电流 自行计算。

文档入口

  • HTTP API:docs/api.md
  • WebSocket 协议:docs/WEBSOCKET_PROTOCOL.md
  • 本地网页开发:web/README.md

许可证

本项目使用 GNU General Public License v3.0 or later,简称 GPL-3.0-or-later。你可以使用、研究、修改和分发本项目;分发修改版或衍生作品时,需要遵守 GPL 的源码公开和相同许可证要求。详见 LICENSE

注意事项

  • 不要提交 Wi-Fi 密码、私钥或设备专属配置。
  • sdkconfigsdkconfig.defaults 是项目配置文件,修改时需要明确记录原因。
  • build/ 是生成目录,不应手动编辑。

致谢

DP100-WebApp