INA219电流表

刘栋
发布于 2025-08-31 / 19 阅读
0
0

INA219电流表

关联链接

关联Bilibili视频:仿合宙电流表UI的Air001电流表:https://www.bilibili.com/video/BV1hYhCzBEad/?vd_source=425d7d0c81c684df6ac325f130b52e34

关联嘉立创 INA219电流表:https://oshwhub.com/djddb/esp8266_ina219-dian-liu-biao

关联gitee:https://gitee.com/djddb/ina219-ammeter.git

项目简介

本项目是自制电流表,起因是后面有个项目用的是锂电池供电,需要监测ESP睡眠模式下耗电,奈何之前错过合宙电流表的车,一直心有不甘,现在买合宙电流表又太贵了。所以仿照合宙电流表的UI做了个电流包,显示电压V、电流A、功率W、电量mWh,功能简单。

复刻建议选择嘉立创以下原理图:

  • INA219功率表_12V紧凑版_V1.2;

  • INA219功率表_26V_V1.4;

注意:可能是因为我买的INA219AIDCNR不是正品,接24V电源时IN+和IN-引脚之间炸了一下冒火花,并击穿了Air001。事后逐级拆解,LDO电路在24V下可以稳定工作输出3.3V,新换的Air001和屏幕都没有问题,只有这个INA219AIDCNR被炸了,后续没有继续验证了。

项目功能

可以用于手机充电检测、ESP芯片睡眠模式电流监测、电池电量检测等等。

  • 电压显示小数点前2位小数点后3位,例如05.110V或12.010V

  • 电流显示小数点前1位小数点后4位,例如0.0681A或1.9376A

  • 功率<1000.0mW显示为mW,小数点前3位后1位,例如900.3mW

  • 功率≥1000.0mW并<10000.0mW显示为W,小数点前1位后3位,例如2.466W

  • 功率≥10000.0mW显示为W,小数点前2位后2位,例如16.98WW

  • 电量分两段显示,0.001~9.999mWh和00.010WH~48.000Wh,显示Wh时小数点后第三位数字字体缩小。

成品全家福

全家福5V.jpg

全家福12V.jpg

全家福24V.jpg

项目核心器件

主控:

主控

ESP8266

Air001

资源

96K RAM + 4M Flash

4K RAM + 32K Flash

功耗@5V

5V 100mA 500mW

5V 24mA 120mW

功耗@12V

12V 90mA 1080mW

12V 24mA 280mW

Arduino

Adafruit_INA219库 + Adafruit_ST7789库

自定义精简驱动

I2C

IO口上拉能力强,无需上拉电阻

IO口上拉能力弱,需要外部上拉电阻

GPIO

引脚资源紧张,复用严重,SPI_MISO引脚作为BL控制引脚,初始化SPI时需要特别注意

引脚完全够用,有富余

LDO选型如下:

  • ASM1117,12V转3.3V,1A,电流足够给ESP8266供电,在12V电压下工作需要注意散热;

  • 78L05G-AB3-R,30V转5V,100mA,供电能力有限,无法满足ESP266供电,可以满足Air001的版本供电;

  • XC6206P332MR,6V转3.3V,250mA,和78L05G搭配使用,提供3.3V供电;

ST7789屏幕:

  • 240x240分辨率,对角线1.3寸;

  • SPI接口ST7789驱动;

  • 我选的这个型号,背光需要51Ω的限流电阻,实测加上限流电阻后耗电少了30mA左右;

嘉立创电路图各版本介绍

INA219功率表_12V_v1.0

此版本为第一版,ESP8266主控+ASM1117 LDO,输入电压最大12V。

主要特点为:

  • 0.1Ω采样电阻支持2512贴片封装和插件2种;

  • INA219AIDR为SOIC-8封装,体积较大;

  • 采用DC5521接口,方便接12V电源;

  • 整个板子布局较为稀疏,焊接难度小。

请忽略飞线,那个是第一次打板LDO选的不对踩得坑,后来改为ASM1117了,原理图中已经更改。

V1.0正面.jpg

V1.0背面.jpg

INA219功率表_12V紧凑版_V1.1

此版本为ESP8266主控+ASM1117 LDO,输入电压最大12V。

主要特点为:

  • INA219AIDR为SOIC-8封装,体积较大;

  • 采样电路和主控屏幕分开,上下层叠结构;

  • 电路板上下两层做成一块板,尺寸小于10cm x 10cm,到手后锯开。

但是后来发现仅靠4pin排针对插,很难牢固,上层乱晃,遂放弃,原理图留着留作纪念。

INA219功率表_12V紧凑版_V1.2

此版本为ESP8266主控+ASM1117 LDO,输入电压最大12V。

主要特点为:

  • INA219AIDCNR为SOT-23-8封装,体积较小;

  • 采用USB公头接口,方便接手机充电器;

  • 整个板子尺寸紧凑,拿在手里感觉很牢固;

  • 支持按键选择WIFI OTA升级(开机亮屏后按BOOT键),可以二次开发接入MQTT等。

B站视频--ESP8266电流表OTA:https://www.bilibili.com/video/BV1hYhCzBEad?vd_source=425d7d0c81c684df6ac325f130b52e34&amp;p=2

V1.2正面.jpg

V1.2背面.jpg

INA219功率表_26V_V1.3

此版本为Air001主控+(78L05G+XC6206)LDO,理论输入电压最大26V(实际只测过12V)。

主要特点为:

  • INA219AIDR为SOIC-8封装,体积较大;

  • 采样电路和主控屏幕分开,上下层叠结构;

  • 电路板上下两层做成一块板,尺寸小于10cm x 10cm,到手后锯开。

和V1.1版本同样的,后来发现仅靠4pin排针对插,很难牢固,上层乱晃,遂放弃,原理图留着留作纪念。

INA219功率表_26V_V1.4

此版本为Air001主控+(78L05G+XC6206)LDO,理论输入电压最大26V(实际只测过12V)。

主要特点为:

  • INA219AIDCNR为SOT-23-8封装,体积较小;

  • 采用USB公头接口,方便接手机充电器;

  • 整个板子尺寸紧凑,拿在手里感觉很牢固;

  • 整体功耗非常低,仅24mA。

V1.4正面.jpg

V1.4背面.jpg

软件代码

我的gitee库代码分享:https://gitee.com/djddb/ina219-ammeter.git

  • ESP8266_INA219_ST7789.ino这个是直接用的官方Adafruit_INA219库 + Adafruit_ST7789库

  • Air001_ST7789_mini.ino用的自定义的精简ST7789驱动,只引用SPI.h。用Adafruit_ST7789库编译的结果太大,32Kflash放不下。

  • Air001_INA219_mini.ino用的自定义的精简INA219驱动,只引用Wire.h。用Adafruit_INA219库编译的结果太大,32Kflash放不下。

  • Air001_INA219_ST7789.ino是最终程序,编译完占用30956字节flash和1528字节RAM,刚好满足Air001的大小

其实关于精简Air001程序这里有很多的细节,如下是摸索的记录,中间也大量借用了DeepSeek的建议,好在最终实现了目标。

Air001自定义精简驱动.jpg


评论