提出需求:

前几年买的热水器,因为诸多原因,最终就是没买带wifi的,后来发现在外边远程控制热水器启动还是非常有必要的。这种储热式的热水器功率一般2000w-3000w,加热一整桶水需要很长的时间,所以很多时候回家晚了,就只能等着水慢慢加热……如果能花费最少又能利用简单的装置给热水器增加一个远程wifi控制功能就好了。

需求分析:

1. 控制设备

一般的wifi远程开关几十元就能买到一个,基本都是使用继电器实现的,先将远程开关插在插座上,然后将用电器插在远程开关上。远程开关内部通过继电器实现对热水器的供电。这种方式虽然简单,但不适合热水器这种大功率需要控制的设备,主要原因如下:

a) 般远程开关的额定电流10A,热水器功率较大,频繁开关有烧掉远程开关的风险

b) (我家的)热水器通电后还需要遥控器或手动启动才能开始工作

c) 买现成的远程开关还写什么DIY文章呀!

综上,决定使用近些年来火的不能再火、便宜的不能再便宜的ESP8266集成wifi功能的soc来解决需求。

通过修改热水器内部电路的方式控制热水器比较麻烦,还不安全,pass掉这个方案。只剩下红外遥控的控制方案。嗯,不叫事,先检测一下遥控器发出的红外信号,再通过红外发射管模拟一下遥控器,轻松解决。

2. 远程控制终端(请允许我起这么高大上的名字)

设备肯定是手机,不用多说,现在米家那套智能家庭设备就用手机控制吗。当然还可以考虑平板电脑什么的,综合成本和易用还是手机划算。

界面:可以考虑app和网页,app开发难度比较大。。嗯,选择简单粗暴的网页控制,里有就这么简单。

3. 物联网平台

OneNET、机智云。。。。前几年兴起了很多物联网平台,虽然基本都是免费的,开发起来还是有点麻烦,本着简单粗暴的原则,直接在esp8266上运行个简单的web服务器,路由器端口转发到8266上,轻松访问。

开工制作:

方案定下了,接下来就是实现了,解决实际问题。

准备材料:

· esp8266 nodemcu v3(v1也可以,应为v1的3D打印外壳出了点问题,就换成v3的外壳了)

· 红外发射管(约1元5个)

· 电阻(100-200欧都行)

· 外壳(可以不用)

· 供电(microUSB电源线,手机充电器)

· 双面胶(固定外壳和红外发射管用)

系统原理 如图所示:

· esp8266(nodemcu)通过家里wifi连接公网

· 手机或者电脑通过互联网控制esp8266

· esp8266模拟原装遥控器发射红外开关信号控制热水器

· 就这么简单

手机控制界面设计:

浏览器截图,注意右上角没有使用wifi

· 简单粗暴——只整了一个大大的电源按键

· 使用流量模拟外网测试

· web界面,不是内网穿透哦,用的端口转发,不要问我公网ip啥的

完成照片

近照:

红色的是热缩管,防止短路用的,电阻就是电阻,裸露问题不太讲究,有待改进

远点的照片

经朋友提醒,卫生间湿度大,可能出问题,于是增加了一个保鲜膜,双面胶真好用!

图片中红色线的是热缩管,防止红外发射LED的引脚短路用的,别再问这么搞安全吗,不是接到220v,是通过红外模拟遥控器实现控制热水器开关的。

带改进功能

开机成功反馈功能:热水器的红外接收位置不太确定(因为这个拆热水器太麻烦了),有时在手机上点了按钮,可能不一定能启动,可以通过摄像头或者光敏电阻确认一下是否开机。

华丽的界面:人靠衣装吗,真个高大上的界面还是很有必要的,尽管需求只需要一个开机键

探出的线换成硬线:可以更加方便的查找热水器红外接收的位置,省去用胶布固定红外发射管。

电源线走线:稍微有点不讲究。

增加密码登陆:直接暴露在公网上,被熊孩子玩坏了就不好了。