文章目录
最近在使用 ESP32 做一些小东西,其中一个设备是使用电池供电,因此对使用电池时的续航比较关心,但是手头并没有合适的电子负载仪,在翻模块库存的时候,刚好发现有一个 INA219 模块,就直接拿它现做一个功率计了。
再配上一个 12864 OLED 屏幕,这样就可以实时去观测单片机设备的实时功率以及功耗了:
ESPHome
ESPHome 是一个配置化生成 ESP32/ESP8266 智能家居固件的系统,一般都会用它来作为智能家居节点中的系统来使用,配合很便宜的 ESP32/ESP8266 模块,使用起来很是方便。
在查阅它所支持的模块时,发现 INA219 也在其中,并且 ESPHome 本身对 12864 OLED 也有良好的支持,因此最终就直接选择了 ESPHome 来作为功率计的基础系统,这样可以省去编写很多基础代码,例如任务设计、屏幕绘制、I2C 总线读写等,只需要关注功率计核心的功能即可。
最近也使用 ESPHome 比较好,发现它还是有很多优点的,基本可以作为一个 Arduino 项目的基础应用框架来使用:
- 配置化生成代码,无需管理复杂的库依赖
- 丰富的模组库支持,对于开发单片机应用来说,常见的输入输出模块都内置支持
- 完整的运行框架,开发者只需要关注业务本身,其他相关内容都内置了,例如 MQTT、OTA 等功能
- 灵活的 Lambda 支持,它的 Lambda 就是 C++ 的 Lambda,因此对于有能力的开发者来说,可以直接写代码
总的来说,对于一般 DIY 项目来说,ESPHome 足够强大、足够灵活来处理大部分需求了。
INA219
INA219 是德州仪器出品的一款功率监测芯片。
INA219 是一款具备I2C 或SMBUS 兼容接口的分流器和功率监测计。 该器件监测分流器电压降和总线电源电压,转换次数和滤波选项可通过编程设定。 可编程校准值与内部乘法器相结合,支持直接读取电流值(单位:安培)。 通过附加乘法寄存器可计算功率(单位:瓦)。
INA219 的特性:
- 感测的总线电压范围:0V 至 26V
- 报告电流、电压、和功率
- 16 个可编程地址
- 高精度:整个温度范围内的精度为 0.5%(最大值)(INA219B)
一般单片机开发,供电都是 5V 或者 3.3V,锂电池供电的范围也在 3V~4.2V,因此 INA219 的测量范围足够使用了,而且 0.5% 的精度在使用过程中也足够测量出预期范围内的数据。
数据监测
对于如何监测数据,我直接在 App Store 上找到一个 App MQTT Explorer,它可以将 MQTT Topic 消息中的数值直接显示为图表,这样就可以很方便的去观测整个设备在运行期间的功率、耗电量变化。
项目代码
这个功率计比较简单,可以直接使用 ESP8266 + INA219 模块 + 12864 OLED 在洞洞板上飞线连接起来,插上 USB 就直接可以开始使用了。
我已经整理好了项目的代码,放在了 GitHub 上。
具体的代码请前往 GitHub:ohdarling/EasyPower
--- EOF ---
0 条评论。