ATX 利用小米智能插座防止手机过充电

codeskyblue · 2017年11月15日 · 最后由 codeskyblue 回复于 2019年08月07日 · 4221 次阅读

手机过充电有什么坏处呢?

在知乎上找到了一篇有关电池过充电的文章https://www.zhihu.com/question/22382912/answer/21433077(作者:郑艳磊),文中提到

相对于铅蓄,锂电在性能上的最大的优点就是循环寿命长,即使全充全放,上千次也毫无压力。但缺点是对过充过放反应灵敏,一旦过充或过放,电池就发生不可逆的损坏。为了应对过充过放,所有的锂电都有复杂而严格的电源管理系统 (BMS, battery management system),该系统会严格控制进出电池的电量,从而保证电池一直在安全状态下工作。好的手机,电源管理系统非常精确,即使一直插在充电器上,也不会过充,即使过度使用,也不会过放。所以,随便使用就行,出门时没充满电,如果觉得出门不久不会自动关机就算了,否则你还是带个随身电源;晚上充到 90%,可以继续充。但为了安全,我建议你拔掉。如果锂电池电源管理系统不够好,那么,虽然过充和过放都会直接导致电池报废,但对于使用者而言,过充的影响更大,因为过放了,最多也就是电池寿命终止,但过充了,电池膨胀或者爆炸,这麻烦就大了。

实践证明了一下,连续充电大概 3 个多星期,手机就变成了这样

打开来看是这个样子

摸一摸,感觉电池里面都是液体。非常怕它流出来。

什么时候会碰到手机过充的问题

通常经常用的手机是不是过充的,因为经常拿起来用,肯定不会一直充电。
建设手机自动化测试集群的时候,经常会遇到。这是因为很多的测试框架 (Appium, Macaca, ChromeDriver etc ...) 都是基于 adb 的,手机连接上数据线的话,就可以获得一个稳定的 Adb 环境,但是一直插着数据线的话,就会出现过充的问题。

谁会用到这个技术?

自动化的处理方案

看社区里面有人发了一篇文章 一种 android 耗电量自动化测试方案, 这篇文章利用了小米智能插座,完成耗电的测试。

于是我就设想,是不是可以利用我过去写的自动化工具加上小米插座来防止手机集群过度充电的问题。

步骤大概是

  1. 如果所有手机电量>=95%,关闭总开关
  2. 如果存在手机电量<=30%,打开总开关

平均每 5 分钟检查一次

使用小米智能插座自动断电

小米的只能插座使用的是米家 App,这里用了一点 UI 自动化的代码,使用的是uiautomator2这个项目

# coding: utf-8

import uiautomator2 as u2

def switch(on=True):
    u = u2.connect()#'10.242.43.103')
    u.healthcheck()
    u.app_start('com.xiaomi.smarthome')
    u(resourceId='com.xiaomi.smarthome:id/tab_text', text='米家').click()
    u(className="android.widget.RadioButton", index=0).click() # 同级别组件编号
    print("checking switch")
    poweron = u(resourceId="com.xiaomi.smarthome:id/name_status").info.get('text').strip() not in [u'已关闭', u'电源关']
    if poweron is not on:
        u(resourceId="com.xiaomi.smarthome:id/device_switch").click()

if __name__ == '__main__':
    switch(True)

如果米家 APP 更新了,这个代码估计就不能用了,但还是贴上去,给读者一个参考吧。

不想拖延到下周了,匆匆的结帖了。如果以后有更好的方案我再更新。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 8 条回复 时间 点赞

我这边电池膨胀两个了,一直没去查找原因,看来得加上这个预防才行

mrx102 回复

咦,第一个回复唉

codeskyblue 回复

好方法,有些低端手机确实容易过充。买个试试。

陈恒捷 回复

最新的方法,发现根本就不需要检测什么电量。直接弄个充电 3 小时,然后断电 3 小时,继续充电 3 小时,断电 3 小时。一直循环下去就好了

5楼 已删除

请问一下你们的手机是 WiFi 连接电脑的吗?如果是有线的,断电了是不是也不能传输了

TD 回复

有线的,断电了,还有没断电的手机撑着呢

codeskyblue 回复

那你们智能插座不是对整个 hub 进行控制吗?还是可以单独控制某个手机呢?能具体讲一下你们的方案借鉴一下吗

TD 回复

现在不用了,爱咋滴咋滴

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册