文章总结: 本文介绍利用MAX17048模块实时监测锂电池电压、电量百分比及充放电速率,通过ESP8266连接MQTT服务器传输数据。详细说明模块特性、硬件连接方法及开源代码库,提供关键API函数和JSON数据格式示例,强调初次使用需满电校准以确保SOC精度。 综合评分: 78 文章分类: IoT安全,解决方案,技术标准,安全工具,其他
通过MQTT实时获取锂电池信息-MAX17048
原创
大表哥吆 大表哥吆
kali笔记
2026年5月13日 08:01 甘肃
在小说阅读器读本章
去阅读
在物联网方案中,我们需要读取锂电池的电压、容量、输出电流等信息。以便我们对电池状态有较好的掌握,以免造成设备停电带来故障。
在前期的文章中,我们也讲到过利用INA219模块来实现对电池信息的获取,但是效果感觉不是很理想。而本次,我们采用MAX17048模块。
关于模块
MAX17048 是一款专为 3.7–4.2V 锂聚合物 / 锂离子电池设计的低成本、高精度电量监测模块。可以读取电池的实时电压、电池电量(SOC)、充/放电速率。双 JST 端口设计:两个等效的 JST 2PH 端口,可同时连接电池和负载 / 充电器,实现边充电边使用,无需额外切换电路。
功能描述
利用18650锂电池给ESP8266或ESP32等设备供电,并通过MQTT将传感器的数据和电池信息发送到MQTT服务器,供用户查看!
☢️设备清单:
- • ESP8266
- • MAX17048模块
- • 18650锂电池(可并联不能串联)
😘线路连接:
| ESP8266 | MAX17048 | | — | — | | 3.3V | 3.3V | | GND | GND | | D1 | SCL | | D2 | SDA |
注意,线路连接时一定要注意,请勿正负极接反,不然容易烧掉板子。
线路连接
代码
代码完全开源,项目地址见下方:
项目地址:https://github.com/Priess0503/MQTT_18650_MAX17048
代码核心API函数:
// 基本读取
float cellVoltage(); // 读取电池电压 (V)
float cellPercent(); // 读取电量百分比 (%)
float chargeRate(); // 读取充放电速率 (%/hr)
// 初始化
bool begin(); // 初始化芯片
uint8_t getChipID(); // 获取芯片ID
// 休眠模式
void hibernate(); // 进入休眠
void wake(); // 唤醒
bool isHibernating(); // 检查休眠状态
// 告警功能
void setAlertVoltages(float minV, float maxV); // 设置电压告警阈值
uint8_t getAlertStatus(); // 获取告警状态
bool isActiveAlert(); // 检查是否有告警
MQTT输出示例
{"voltage":3.251,"soc":18.5,"rate":-5.23,"state":"Discharging"}
rate是CRATE寄存器的值,表示电池的充放电速率。如:-5.23%/hr电池正在以 每小时5.23% 的速度放电(+为充电)。
注意事项
初次使用,电池的电量需要充电到(4.2v)满电。这样会触发quickStart,从而校准SOC的值。
MQTT数据
如上,我们测得电池电压为4.13V,电池电量SOC=91.8%。接下来我们用万用表测量。
可以看到,测量的数据还是比较准确的。配置MQTT我们便可以随时随地查看电池的信息。
更多精彩文章 欢迎关注我们
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:kali笔记 大表哥吆 大表哥吆《通过MQTT实时获取锂电池信息-MAX17048》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论