手把手使用esp8266一起来做智能插排-硬件篇

从开始入arduino的坑开始就一直想做个智能插排,从一开始折腾小车、3D打印机、学习esp8266 SDK编程到现在,都对这玩意一直念念不忘。由于之前一直都是从事软件工作,做这个除了需要软件知识还需要硬件电子电路基础,硬件方面完全是小白,常用晶体管都不懂几个,以前学的物理都完完整整地还给老师了,折腾了一段时间,对esp8266总算有了一定的了解,同时对智能插排用到的相关电路也有了初步的认识,也动手练习焊接了部分电路。经过这段时间的摸索,也总算把需要的配件都买齐了,每次都是不是差这个就是差那个的,白白花了不少邮费。

制作之前也参考了度娘上的很多资料,东拼西凑的,网上的资料很多也是互相转载,做出来的东西经测试发现也存在很多问题,其中部分问题在本文中得到解决,也有一些问题虽然知道原因但是由于个人能力有限,至今也未能解决,希望大神能不吝指教。

一开始的思路是采用arduino+esp8266+继电器的方案实现,后来发现arduino+esp8266之间的通信受外部影响很大,在测试过程中总是出现莫名其妙的问题,很不稳定,后来查阅了相关资料,原来esp8266本身就带了mcu,而且性能完全能够满足目前的需要,就放弃了原有方案,直接采用esp8266+继电器的方案实现,经过试验,既减小了体积,又提高了稳定性,就是需要进行esp8266的SDK进行编程实现,需要一定的c语言基础,期间为了搞懂相关的编程,花了不少时间,不过也可以使用arduino ide for esp8266等工具来编写,方便很多。啰嗦了一大堆,现在我们来正式切入正题,分享一下制作过程。首先先说一下用到的材料:

1、esp8266-01模块(由于就只是实现简单的继电器的控制,其实整个过程只需要用到一个gpio口,所以使用最常见的01入门模块就可以满足需求了)


2、小型固态继电器【注意:需要使用低电平有效的模块】(这里使用的是固态继电器,网上大部分资料都是使用金属触点的继电器,经测试,如果使用金属触点继电器,在插排接感性设备(最常见的就是电扇)的时候,对电路会造成比较大的影响,查阅了相关资料,原因是继电器的通断会产生电弧影响电路,由于控制模块也是从交流电转换后进行供电的,电弧会对控制电路造成比较大的影响,网上提到的解决方案是在电路中添加吸收电路,由于手头的材料有限,暂未测试成功,改用固态继电器后,插排已工作正常,未受用电器影响。小型固态继电器的缺点是功率一般都比较小,价格相对于触点继电器来说稍微贵一点,我这里淘的是6块钱一个的5V直流控制交流240V-2A的模块,即是插排的总功率不能大于480W,如果有特殊需要,也有大功率的固体继电器可以买,就是体积大点,并且需要自己焊接部分控制电路)


3、杜邦线若干,排针座若干、1K电阻一个、开关一个、电线若干(用于连接和焊接控制模块)

4、某宝上常见的便宜220V交流你转直流5V模块(为控制模块和继电器供电)


5、ams1117-3.3芯片、10uf、22uf电容(用于转换直流5v为3.3v,为esp8266供电)


6、二极管若干(由于继电器和esp8266电压不一致,这里未使用光耦进行隔离,使用二极管的方式来进行压降,有点曲线救国的意思,这里要感谢一下群友提供的解决思路)

7、用于改装的废排插一个(有位置能装得下所有模块就行)


下面这张是所有模块接好的整体图


个人认为插排主要可分为三大部分,供电部分,控制部分,程序部分,这篇主要介绍一下硬件部分,软件部分稍后再讨论。整个电路大概的接线图如下:

供电部分主要是通过降压转换模块将220V交流市电转换为5V直流电供继电器使用,再通过ams1117转换成3.3V直流电后供esp8266模块使用,转换模块这里就不介绍了,某宝自己淘,我买的是那种最便宜的,也有那种密封封装的,不知道会不会稳定点,我用这个暂时也还算稳定,因为刚做好,也没深入测试。这里注意一下,这几个模块需要共地。

下面介绍一下ams1117转换电路吧,百度文库有ams1117-3.3的中文文档(地址:http://wenku.baidu.com/link?url=kAGNFIfAqHcGchTNewNkzneRnEtof4BjmXDOWjNvHcDdqu1ik8l7-J_kH6U2OI30oMzHOlbx49Ah2f34Hes6qsS2kVYRI99LNFT-pWV6MD3),接线电路如下图:


这里我们采用的是图一的典型固定输出电压的接法,注意手头的ams1117芯片的封装方式,不同封装方式三个管脚的定义是不一样的,我的是SOT-223的封装模式,所以大家焊接板子的时候要注意一下,其实电路很简单,也没什么可以特别介绍的,就是焊接的时候要提前布局一下,我在输入端这里串联了一个二极管,防止反接。

下面说一下控制电路部分,由于只是控制一个继电器,逻辑比较简单,这里使用ESP8266-01作为控制模块,GPIO2口作为控制口,ESP8266的接线可参考《【Arduino学习笔记】手把手教你使用ESP8266----①接线篇》,百度文库有01模块的中文文档说明(地址:http://wenku.baidu.com/link?url=8HiIVrbbhPSVQh4WwPF4ZJ8jiElNkDyLijp4JulRXJuRAkgVVIng61_pTWIuvyRoXWY3fzRGjfxfjR6Xs02rcYLlBFb_kLpZ41zjFjeJKKi),大家也可以参考一下。

这张表里可以很清楚的了解模块针脚的作用,我们使用的是GPIO2管脚做逻辑控制口,CH_PD管脚跟RESET管脚串联一个1K的电阻后接VCC管脚,管脚拉高后,模块上电即正常工作,GPIO0串联一个开关跟负极相连,作为固件更新刷写按钮同时也可以在程序中对这个按钮编写相关的功能,使其作为外部输入使用。电路接线如下图,懒得用软件直接手画了,有点乱,将就看吧。注意接继电器这里的三个二极管,主要是因为这里模块没有使用光耦隔离的方式做,继电器跟esp8266模块的电压不一致,一个是5v一个是3.3v,采用二极管降压的方式来使两边的电压达到平衡,如果这里不接二极管,两边会产生电压差,8266输出端永远为低电平,导致继电器永远为接通状态,这个方法比较曲线救国,回头有时间采用光耦的方式来控制,应该会合理点,这个也是请教网友后采取的临时处理方案,不知道这种处理方式对不对,还请大佬们指正,下图是我焊接的电源转换和模块电路板,供大家参考。

继电器部分这里就不做详细介绍了,对应针脚接上线就可以了,没啥特别需要注意的地方,就是用的这种继电器功率比较小,接用电设备的时候留意一下功率,防止模块过载损坏,其实整个电路还算比较简单,就是ams1117-3.3转换跟esp8266电路需要动手焊接一下,焊接之前注意做好规划,别做出来的到时塞不进插排就悲剧了,其它部分都是直接使用现成的模块就可以了,总体来说,制作过程中还是没有啥太大的技术难度,新手完全也能做,就是在制作过程中望大家能注意安全,防止烫伤和触电,通电测试前确认电路连接是否正确,防止受到人身伤害和造成模块损坏。

这里再补充几张竣工图:



注意事项:

手头没有固态继电器的也可以使用触点继电器,但别接感性电器(如风扇),否则继电器切换过程中,esp8266控制模块会重启,而且产生的电弧有可能会损坏继电器,接其他如充电器之类的用电设备,插排工作正常,查阅相关资料,目前能解决此问题的是在交流电路中添加吸收电路,由于手头材料不足,暂时没有测试,有条件的可自行测试,忘能告知测试结果。

欢迎有兴趣的朋友加群互相学习讨论:254267969






猜你喜欢

转载自blog.csdn.net/jackhuang2015/article/details/53241013