Android手机使用Tasker控制充电

栏目: 服务器 · 发布时间: 6年前

内容简介:看到网上有人说,备用机长时间插在电源上会导致电池鼓包,虽然不确定真假,但还是“宁可信其有,不可信其无”,安全第一嘛。tasker在电量变化时通知单片机当前电量,单片机收到手机发来的http post包后查看当前电量,并决定是否操作继电器。例如,当点量小于35时启动充电,等于100时关闭充电,36~99时不进行任何操作。在tasker上新建一个电量变化配置文件。

起因

看到网上有人说,备用机长时间插在电源上会导致电池鼓包,虽然不确定真假,但还是“宁可信其有,不可信其无”,安全第一嘛。

工具

  1. tasker
  2. esp8266开发板
  3. 带光耦的继电器
  4. usb公头,母头,线材若干
  5. 电烙铁(非必需,如果直接截断一根usb线接到继电器上的话,4也可以省了)

操作

基本流程

tasker在电量变化时通知单片机当前电量,单片机收到手机发来的http post包后查看当前电量,并决定是否操作继电器。例如,当点量小于35时启动充电,等于100时关闭充电,36~99时不进行任何操作。

tasker

在tasker上新建一个电量变化配置文件。 Android手机使用Tasker控制充电

并在电量变化时将当前电量发送至esp8266(或者发送至自己的物联网服务器,再由该服务器控制继电器以实现更复杂的功能。物联网部分今后有系列文章详细介绍),可参考这篇博客 《Android手机使用Tasker转发短信及来电》

esp8266+光耦继电器

Android手机使用Tasker控制充电

大致效果如图。简单来说就是把继电器的vcc,gnd,sig连接至开发板的Vusb,GND,一个gpio口。之后将usb充电线的vcc线截断,连接至继电器的常开端(为了,省电)

备注:关于光耦继电器

esp8266的gpio是3.3v,但常见的arduino继电器模块是5V的,部分模块可能无法正常使用。采用光耦继电器可以避免因为电平不匹配带来的麻烦。

arduino

这里使用arduino来编写esp8266的代码。只贴出处理函数,其它支持代码(如,连接wifi,启动web服务器,gpio初始化)略。

server.on("/auto", [](){
digitalWrite(led, 0);
for (uint8_t i=0; i<server.args(); i++){
if (server.argName(i) == "battery"){

//当电量<35时,继电器对应的引脚写1,启动继电器

if(server.arg(i).toInt() < 35){
digitalWrite(PIN, 1);
}

//当电量=100时,继电器对应的引脚写0,关闭继电器

if(server.arg(i).toInt() == 100){
digitalWrite(PIN, 0);
}
}
}
digitalWrite(led, 1);
server.send(200, "text/plain", "auto");
});

ESP8266 可以使用 lua 编写,不过我个人对它不熟所以用了相对熟悉的arduino

其它思路

  1. Tasker中可以实现对应电量触发不同任务,给继电器直接下达开/关命令。我并没有采用这种思路,原因见2
  2. Tasker将电池电量送至物联网服务器,由物联网服务器来控制继电器开关。最初设计为该思路,但物联网服务器没写完,故只能将这部分功能转移到单片机上实现

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

ASP.NET 4高级程序设计(第4版)

ASP.NET 4高级程序设计(第4版)

Matthew MacDonald / 博思工作室 / 人民邮电出版社 / 2011-6 / 148.00元

《ASP.NET 4高级程序设计(第4版)》,本书是ASP.NET领域的鸿篇巨制,全面讲解了ASP.NET4的各种特性及其背后的工作原理,并给出了许多针对如何构建复杂、可扩展的网站从实践中得出的建议。一起来看看 《ASP.NET 4高级程序设计(第4版)》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具