# 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
微信:

## 打赏
