内容简介:看到网上有人说,备用机长时间插在电源上会导致电池鼓包,虽然不确定真假,但还是“宁可信其有,不可信其无”,安全第一嘛。tasker在电量变化时通知单片机当前电量,单片机收到手机发来的http post包后查看当前电量,并决定是否操作继电器。例如,当点量小于35时启动充电,等于100时关闭充电,36~99时不进行任何操作。在tasker上新建一个电量变化配置文件。
起因
看到网上有人说,备用机长时间插在电源上会导致电池鼓包,虽然不确定真假,但还是“宁可信其有,不可信其无”,安全第一嘛。
工具
- tasker
- esp8266开发板
- 带光耦的继电器
- usb公头,母头,线材若干
- 电烙铁(非必需,如果直接截断一根usb线接到继电器上的话,4也可以省了)
操作
基本流程
tasker在电量变化时通知单片机当前电量,单片机收到手机发来的http post包后查看当前电量,并决定是否操作继电器。例如,当点量小于35时启动充电,等于100时关闭充电,36~99时不进行任何操作。
tasker
在tasker上新建一个电量变化配置文件。
并在电量变化时将当前电量发送至esp8266(或者发送至自己的物联网服务器,再由该服务器控制继电器以实现更复杂的功能。物联网部分今后有系列文章详细介绍),可参考这篇博客 《Android手机使用Tasker转发短信及来电》
esp8266+光耦继电器
大致效果如图。简单来说就是把继电器的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
其它思路
- Tasker中可以实现对应电量触发不同任务,给继电器直接下达开/关命令。我并没有采用这种思路,原因见2
- Tasker将电池电量送至物联网服务器,由物联网服务器来控制继电器开关。最初设计为该思路,但物联网服务器没写完,故只能将这部分功能转移到单片机上实现
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 假期充电 Day 3 —— Lodash 中文文档
- 飞哥学习篇:这样利用工作以外的时间给自己充电
- 亿级数据下灵活快速查询,充电桩市场霸主如何做?
- 索尼公司宣布中国地区召回不达标充电宝:免费换新
- 【安全帮】手机充电时自动订总统套房,真的是被植入后门了吗?
- 施耐德修复旗下电动汽车充电桩EVLink Parking严重安全漏洞
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
ANSI Common Lisp
Paul Graham / Prentice Hall / 1995-11-12 / USD 116.40
For use as a core text supplement in any course covering common LISP such as Artificial Intelligence or Concepts of Programming Languages. Teaching students new and more powerful ways of thinking abo......一起来看看 《ANSI Common Lisp》 这本书的介绍吧!