事情的起因是这样的..........
为了伺候鱼缸里的几条小孔雀鱼,每天早上我都要起来开水泵、开水草灯,晚上睡前则要关灯关水泵。
PS:晚上睡觉感觉水流声还是有些吵。
作为一个理工男,这种重复性的工作每天都需要花费我3分钟的时间,一年就是1095分钟!!虽然没事干就喜欢去看鱼,但是!这种固定周期的机械动作我不能忍。至此萌发了改造一个wifi控制插排的念头。
物料清单
1.插排*1。
2.ESP8266模块*1
3.继电器*2
4.NPN型三极管8050*2
5.120欧电阻*2、4.7K欧电阻*2
6.1N4007二极管*2
7.导线若干
电阻和二极管建议尽可能选用直插器件。
准备工作
首先是淘宝找的插排亮相。
选购建议:一定要有空间可以放控制器,建议带usb口的,这样就直接有5V电源可以用。
8266模块找了很久,最后还是选择wemos D1,因为体积真的很小,就比模块大一圈。价格也便宜,12元左右就可以买到了。
下面进行电路设计,本次设计采用两个NPN的三极管来控制继电器的状态,8266模块通过D1和D2两个管脚与继电器驱动电路连接。具体控制电路原理图如下。
本次项目的程序方面采用了arduino加上一套名叫blinker的物联网解决方案来控制。
blinker的官网:https://blinker.app/
GitHub地址:https://github.com/blinker-iot
社区支持:https://www.arduino.cn/forum-132-1.html
QQ群:301438087(这个是blinker的群)
当然大家也可以采用机智云、Onenet等物联网平台的解决方案去控制。我目前也是arduino的初学者,不过依托于Arduino的各种库,个人感觉使用起来还是比较便利的。
开始改造
一开始没想到5V供电的问题,所以买的是不带USB供电口的插排,严重失策了。好在有个220V转5V点小模块,拆了自带的触摸灯后,勉强能够放到插排内部。
拆开后的照片。构造还是很简单的。
下面是ESP8266 wifi模块(wemos d1)
一路继电器控制电路的元件全家福。
因为没有额外购买阻容和二级管,所以只能拿有的贴片来用了,今天就给你们展示下什么叫做人肉贴片机
首先焊接NPN的三极管(8050),有丝印面朝自己,从左到右为e(射极)、b(基极)、c(集电极)。集电极与继电器线圈的一个引脚相连。
在射极与基极之间焊接一个4.7k的电阻。
在继电器的线圈两脚之间焊接续流二极管1N4007。
一定要注意二级管的方向!
最后基极焊上一个120欧的电阻,再焊到一根导线上。
同时射极管脚也焊到另一根导线上,注意,这根导线相对需要粗一些。
这样一个继电器模块就做好了。
由于我当时选的是不带usb口的插排,所以额外加了一个220v转5v的模块。如果带usb的直接从usb上引出5v电源到8266模块的5V和GND就可以了。
本次两路继电器控制脚为D1和D2,上面制作好的继电器模块,继电器内部线圈的另一端直接连接到5V,射极连接到GND,基极经过120欧电阻引出来的线连接到继电器的D1或D2用于控制继电器开关。
另一路照着连接就可以了。需要多少路都可以扩展,只要引脚足够,驱动电流足够。最终完成的插排内部如下。由于材料准备不充分,线显得比较乱。
开始编程
由于使用了现成物联网解决方案blinker,所以程序还是比较简单的,只是如果之前没接触过arduino的同学可能需要稍微了解下arduino的基础知识。
首先需要安装arduinoIDE、8266扩展package、blinker的arduino库以及blinker手机app。这些都可以在blinker官网的快速开始中找到如何操作的步骤,在此不再叙述。
开发板我们选择为wifiduino,话不多说直接开始撸代码
部分代码如下
完整的arduino工程已经上传到百度云了,使用前需要安装好8266扩展包和blinker的arduino库哦~~然后根据自己创建设备的秘钥和家中wifi,修改程序,编译下载即可。编程相关内容可以参照blinker的开发手册。
本次工程源码已上传百度云,链接: https://pan.baidu.com/s/1DXCEgAHsEEeheGiA2YFXDQ 提取码: 3xsw
blinker的APP可以直接拖动组件,组成一个简单的控制界面,非常方便。
总结
目前改造的插排已经在稳定运行了~~有兴趣的小伙伴可以根据以上教程自行制作。有任何问题都可以关注公众号,在后台直接发送问题,可能无法快速回复,但是我都会定期查阅回复的,非常感谢大家的支持。