# esp-bat-pb-idf **Repository Path**: maplerian/esp-bat-pb-idf ## Basic Information - **Project Name**: esp-bat-pb-idf - **Description**: 乐鑫系列电池保护板 - **Primary Language**: C - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 7 - **Forks**: 2 - **Created**: 2025-02-10 - **Last Updated**: 2025-10-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ESP-BAT-PB-IDF 项目说明文档 ## 项目简介 本项目是一个基于 ESP-IDF 框架的嵌入式固件项目,主要面向物联网设备开发,集成了 Wi-Fi、MQTT、OTA 升级、Web 服务、硬件驱动等模块。项目结构清晰,模块化设计良好,适用于智能家居、工业控制、远程监控等场景。 ## 主要功能模块 ### 1. Blinker 模块 - 提供设备与云端通信的基础功能,包括 MQTT、HTTP、WebSocket 等协议支持。 - 支持智能语音助手(如阿里云、小度、米家)的对接。 - 提供设备状态上报、远程控制、定时任务等功能。 - 支持设备配网(SmartConfig、AP 配置)。 ### 2. DVC1006 模块 - 针对 DVC1006 芯片的驱动模块,提供电池保护、充放电控制、电压/电流/温度采集等功能。 - 支持通过 SPI 接口与主控通信。 - 提供日志记录、状态查询、配置更新等接口。 ### 3. HAL Driver 模块 - 提供硬件抽象层接口,包括 GPIO、SPI、UART、I2C 等外设驱动。 - 支持文件系统操作(如 SD 卡、Flash 存储)。 - 提供 OTA 升级、Web 服务器、MQTT 客户端、UDP 广播等高级功能。 - 支持低功耗模式、看门狗、定时器等系统级功能。 ### 4. OTA 升级模块 - 支持通过 HTTP 协议进行固件升级。 - 支持自动检测版本、下载固件、校验完整性、写入 Flash 等流程。 - 提供 Web 界面和 API 接口用于触发升级操作。 ### 5. Web 服务模块 - 提供基于 HTTP/WebSocket 的 Web 服务器功能。 - 支持静态页面托管、动态数据交互、远程控制等。 - 提供日志查看、OTA 升级、设备配置等 Web 界面。 ### 6. Wi-Fi 管理模块 - 支持 STA/AP 模式切换。 - 提供 Wi-Fi 扫描、连接、断开、配置保存等功能。 - 支持自动重连、信号强度检测、IP 地址获取等。 ## 编译与烧录 ### 编译环境 - 使用 ESP-IDF 开发框架(建议使用 v4.4 或更高版本)。 - 支持 ESP32-C3、ESP32-S3 等芯片。 ### 编译命令 ```bash idf.py set-target esp32c3 # 或 esp32s3 idf.py build ``` ### 烧录命令 ```bash idf.py -p PORT flash ``` ### 烧录文件说明 - `bin/1.0/app.bin`:主程序固件。 - `bin/1.0/update.bin`:OTA 升级包。 - `bin/1.0/www.bin`:Web 页面固件。 - `bin/1.0/test.bin`:测试固件。 - `bin/1.0/production.bin`:生产版本固件。 ## 使用说明 ### 1. 配网方式 - **SmartConfig**:通过手机 App 发送 Wi-Fi 配置信息。 - **AP 配置**:设备启动后进入 AP 模式,手机连接后通过 Web 页面配置 Wi-Fi。 ### 2. OTA 升级 - 通过 Web 页面或 API 接口上传固件包。 - 支持自动检测版本并提示升级。 - 支持断点续传、校验失败重试等机制。 ### 3. Web 管理界面 - 访问 `http://<设备IP>` 进入管理界面。 - 支持查看设备状态、日志、OTA 升级、Wi-Fi 配置等操作。 ### 4. MQTT 通信 - 设备连接到 MQTT 服务器后,可通过主题订阅/发布消息实现远程控制。 - 支持 Bemfa、自建 MQTT 服务器等平台。 ## 开发与调试 ### 日志输出 - 默认通过 UART0 输出日志信息。 - 可通过 `menuconfig` 调整日志级别。 ### 调试工具 - 使用 `idf.py monitor` 查看串口日志。 - 使用 `idf.py flash` 烧录固件。 - 使用 `idf.py erase_flash` 清除 Flash 数据。 ## 贡献指南 欢迎提交 Issue 和 Pull Request。请遵循以下规范: - 提交 Issue 时请描述清楚问题现象、复现步骤、预期行为。 - 提交 PR 时请确保代码风格一致,提供清晰的提交信息。 ## 许可证 本项目采用 MIT 许可证,请参见 [LICENSE](LICENSE) 文件。 ## 待做事项: - OTA 差分升级 - 完善服务器部分代码 ## 问题反馈渠道 邮箱: amqqfkhk@qq.com
微信:
img
## 打赏 img