走进物联网智能家居-手把手带你制作wifi智能开关-ESP8266学习笔记(一)
最初的目的是为了远程控制家里的一台NAS的开机,最终变成了一个小小的物联网项目,在折腾过程中踩了一个又一个的坑,作为了记录,下面我来带大家揭开一个小小的物联网项目神秘面纱。如果有一点电路和编程基础最好,没有基础的话完全按照如下步骤也没问题。
家里有一台NAS,主要作为照片备份和影音服务器用。由于使用频率不是很高。一般都是用的时候开机,用完就关机了
这样就有了一个问题,偶尔出差的时候需要用,又不想一直保持开机状态。怎么办?家里如果有人还可以帮忙开机,没人的时候就只能干着急了。
作为一个理工科的大叔, 这种事情怎么能忍受, 为了远程控制家里NAS开机的目的,经过度娘搜索,最简答成本又低的办法是实现网络唤醒开机,经过确认我的NAS主机的BIOS不支持网络唤醒,无奈放弃。
那么只能通过远程控制按下开机按钮的办法了,其实开机过程就是开机按钮的两根线短接一下就可以实现开机了,转化为控制过程就是远程控制一个继电器闭合一下让两根开机信号线短接一下就开机了
万能的某宝应该有这类产品,搜索了一下,要三十多块钱。
其实现在流行的智能插座,wifi插座也能实现这个功能。这背后是怎么实现的呢,能不能利用手头的设备实现这个功能,经过一番折腾结果如下:
最终实现方案有两种
第一,利用手头现有的一片树莓派和5V继电器,利用远程SSH登录来控制树莓派的GPIO输出信号来控制继电器实现短接开机信号,有感兴趣的可以留言,单独再说这个。
第二,就是本文的重点,利用现在比较热门的物联网控制芯片ESP8266来实现控制继电器,现在很多的物联网设备都是使用的这个模组。
那么为什么没有利用第一种方案,首先树莓派功率大约有5W左右,长期运行功耗还是有点高,体积也比较大,并且控制界面比较麻烦,需要在命令行界面输入命令,在手机上操作命令行确实是比较痛苦!
方案二就是用一片ESP8266 12F加一个继电器,运行功率约0.5W,体积也很小,主要的是可以使用手机APP直接控制,使用比较方便.
实际成本如下:
一片ESP8266 万能某宝大约6元多点包邮。
一片5V低电平触发的继电器大约2元多点包邮。
四个10K电阻 - 10个大约1到2元包邮。
一个10UF电容 - 10个大约1到2元包邮。
一个100NF电容 - 10个大约1到2元包邮。
两个AMS11173.3的LD0芯片某宝10片1元多包邮。
一个家里闲置的手机充电器作为5V供电。
总成本不含充电器不超过10元就实现了远程控制NAS开关的功能,为了避免广告嫌疑不发链接了,真需要买找不到的可以留言。
实际上一片ESP89266 12F可以实现7路开关的控制,可以控制7个灯或者其他设备的开关,扩展空间很大,啰嗦了这么多,下面我们进入正题。到底怎么用不到10元的成本来做一个小小的WIFI控制开关呢?
首先我们要买一片ESP8266 12F,邮寄到手之前我们先简单了解一下这个芯片,网上查一下资料很多,我们需要的官方的资料来自乐鑫和安信可,简单来说芯片是乐鑫做的,安信可给封装成了模组,一般我们用到的都是模组,单独的芯片我们是用不了的
ESP8266芯片
ESP826612F模组
ESP8266模组的型号也特别多,某宝的价格也有差别,最新的是ESP826612F,引出的接口也比较多,扩展性较大,我们就用这个模组,某宝搜索的时候型号也特别多,有NODEMCU模组,arduino模组等等,价格也不一样,我们这里只需要单纯的ESP826612F模组,其他的都不需要,注意别买错了
那么这些模组有什么区别呢?
简单来说,其他的模组都是在ESP826612F模组外接了一个MCU,仅仅把ESP8266当做了wifi信号转串口信号的一个工具,优点是对于熟悉各种MCU的人比较好入门,开发难度较低,缺点则是增加了额外的芯片,价格贵一些,体积和功耗也会变大 ,并且只用了8266的TX和RX接口,其他的接口都浪费了,没有充分发挥ESP826612F的功能。
那么为什么不单独使用ESP8266模组呢,主要是因为ESP8266的开发编程是基于官方SDK进行开发的,相对入门难度略大一点,需要一定的学习。
了解了以上这些,下面我们就需要到安信可官网去查找一下826612F的资料了,查资料时我们会发现开发方式也分为SDK开发和AT开发,分别对应了以上两种模式。
AT开发就是把826612F当做WIFI转串口的工具,AT指令就是外接单片机跟模组通讯的格式要求。
SDK开发则是直接使用ESP826612F本身进行,要使用官方的开发环境和官方SDK进行开发,固件直接写入模组本身,不需要外接其他MCU。
说了这么多,下面我们来看看ESP 8266的真身吧,到手后这样
正面
背面
下面到底这么用呢?我们去安信可官网看看,在产品中心,找到ESP12
点击查看文档,找到文档中心
找到12F产品规格书
找到第13页应用电路
按照官方的电路推荐,最小工作电路一共需要6个外围元件,4颗10K电阻,1颗10UF电容,1颗100NF电容。实际第18脚的电阻是不需要的,因为我们看第12页的引脚说明,GPIO0可以悬空
所以我们实际上需要3颗10K电阻和2颗电容即可,按照官方文档焊接后成品如下
为了调试方便,我使用了面包板和杜邦线,成品是不需要的,当然有面包板会方便很多。为了调试方便,我引出了两个3.3的正极和三个地,其中下面那排靠中间的地是为了方便下载程序时GPIO0接地方便使用的。
分别了用了两颗电容,黄色的小电容为100NF无极性陶瓷电容,黑色的为10UF无极性电解电容,注意使用电容要注意有的是有极性的,正负极不要弄错。
按照官方推荐接了R1 R2和R4,没有接R3,但是增加了R5,接在GPIO0对地线路上,这个可以不接。到此为止。已经按照官方的推荐接好了外围电路。下面就是上电看看成果的时候了。这时候还需要一个TTL转接口,作为下载程序和调试的接口,成品不需要。这个东西长这个样子
注意TTL上面有跳线帽要接到3V3那边,以为ESP8266是使用3.3V工作电压的,千万别弄错了。连接好以后是这样的
确认TTL转接板装好驱动,每个电脑的COM后面的数字是不一样的,这个没关系
再去安信可的产品页面选择开发工具清单
把这个页面的工具都下载下来,我们首先使用串口调试助手
下载后解压打开,界面如下
TTL转接板安装正常后会自动识别串口,如果有多个串口,选择TTL转接板使用的那个,波特率设定115200,打开串口,然后给8266上电
一般出厂都是默认AT固件,因为出厂固件版本不一样,显示的信息不一定完全相同,一般最后显示ready,说明ESP826612F工作正常,可以进行下一步的开发调试了。显示其他的信息也不要急,下一步我们来给ESP8266更新固件,进行初步调试。