一、总体说明
本人是个外行,没事搞一下单片机纯属业余爱好而已。学习历程为51——Arduino——NodeMcu_ESP-8266——STM32。做过几样东西,倒是觉得很有趣,也便有了继续学习下去的动力。ESP系列是入门级和业余爱好者开发物联网的不二之选。ESP-01S小开发板对于做简单的物联网开发,是很好的硬件平台。本人在入门的过程中,查了很多资料,踩了很多坑,终于把这条路走通了,也给其他人一些参考吧。外行,水平有限,如有错误,还恳请各位指出,共同进步。
二、硬件准备
1、ESP-01S。
2、USB转TTL模块,CH340驱动。
有专门的ESP-01/01S的下载器,不过我没有这个模块,就用手上有的工具,自己接线吧。注意:VCC接3.3V。
3、面包板,面包板电源,杜邦线等。
既然自己只有USB转TTL模块,自己接线,面包板是少不了的。
三、软件准备
1、串口调试工具。这个网上很多,一般都能用,自己随便找一个就行。安信可官网也有,可以去下载使用。
2、固件下载工具。安信可官网也有下载,我用的是v3.6.4版本。
3、Arduino IDE。这个上官网下载,安装。
四、Arduino IDE开发
这里有一个曲折的故事。最初用Arduino IDE是开发NodeMcu-ESP-8266,主控芯片是ESP-12E或者F什么的,这是一个开发板,开发板,开发板,是经过封装的,实验用它绝对好使。可是我当时不懂啊,写完程序直接把它嵌入到产品了。后来才回过味来,完全没有必要啊,嵌入产品直接用ESP-12E或者F就行了啊,体积小多了。既然ESP-12E通过再次封装,加了串口硬件比如CH340和CP2102就可以用Arduino IDE开发了,那么ESP-01S应该也可以。通过网上找资料,还真可以啊,欣喜!不过接线可得自己来了。很多博客都没有讲硬件接线问题,只讲软件,还好有一篇提到过,亲测可用,如下:
高电平为3.3V,低电平为GND
ESP-01S管脚 | 电平状态 |
---|---|
3V3 | 高 |
GND | 低 |
IO0 | 低 |
EN | 高 |
TX | USB/TTL RX |
RX | USB/TTL TX |
RST | 通过轻触开关连接GND |
其他 | 悬空 |
用Arduino IDE开发ESP系列,需要做一些前期工作。
文件——首选项——附加开发板需要添加如下地址:
然后工具——开发板——开发板管理,如下:
进去后搜索ESP8266:
如果没有安装的话,在“删除”位置那里会出现版本号,和安装按钮,点击安装。有许多博客说被墙了,安装不了,需要另外去下载来安装(具体参考其他博客),我不想那么麻烦,每次失败了,又重新点安装,多几次也就安装好了。
然后选择如下的开发板:
在例程里面找一个BLINK的例程,然后编译下载。不出意外,板载的LED并不会按照程序呈现闪速的功能。原因如下:
这是ESP8266手册里面的一句话,它是对的。因为刚下载完程序,所有的引脚还没有改变,而且还是USB/TTL供电,LED当然不会闪烁,应该是由于电流低的原因。最好用面包板的电源,连接一个手机充电器都行,将ESP-01S只接VCC和GND,你就会发现LED会闪烁了,说明刚才Arduino IDE下载程序是没有问题的。这一条路,走通了。复杂的程序慢慢再开发吧。
五、AT固件开发方式。
我们买到的ESP-01S一般都是刷好了官方固件的,可以通过UART发送AT指令来对模块进行操作。由于一开始通过电脑上的串口助手对ESP-01S发送AT指令就没有成功,因此我直接跳过,先用Arduino IDE开发了之后,再开始尝试刷固件操作。
1、刷固件硬件连接
硬件连接与Arduino IDE开发一样。
2、刷固件操作方法。
连接好USB/TTL,打开刷固件的工具,如下图:
在上面选择你自己电脑上固件存放的路径,记得打勾。(补充说明:安信可官网有很多固件,感兴趣的都可以试试,特别是MQTT AT固件,对开发物联网用处大)。下面红框里面的设置如图。点击”START",这时候注意了,有可能直接就成功了,我只成功了一次,多数时候需要把RST拉低一下(我自己用一个轻触开关连接到GND,方便复位,面包板那张图可见),才会成功。如果RST拉低了,还是失败,继续再试,反正我一般是试了3次才成功的。具体原因,我就不甚了解了,只提供自己的经验而已。当然如果能够知道原因更好,以便以后遇到问题能更好解决。
3、再次测试刷固件是否成功。
为什么用“再次”呢,呵呵。因为Arduino烧录程序是成功了的,这时候原来的AT固件是被干掉了的。再次刷AT固件后,又会把Arduino程序干掉,所以现在再次测试,如果串口助手向模块发送AT指令成功,就说明这次刷固件是成功了的。
前面已经提到,用USB/TTL直接供电是不行的,所以我最初测试AT指令不成功,也是这个原因。测试AT指令的时候,ESP-01S的引脚接线要改变一下,官方手册也是这么连接的,如下:
高电平为3.3V,低电平为GND
ESP-01S管脚 | 电平状态 |
---|---|
3V3 | 高 |
GND | 低 |
TX | USB/TTL RX |
RX | USB/TTL TX |
RST | 通过轻触开关连接GND |
其他 | 悬空 |
连接USB/TTL,打开串口助手,无论怎么发送测试"AT",都没有反应,复位一下,会有乱码发过来。
这时候打开面包板的电源,面包板的电源3.3和GND与USB/TTL的3.3和GND分别接在一起。
有一次直接打开面包板电源就OK了,如果不OK的话,再复位一下,就OK了,如下:
有"ready"的字样了,再次发送"AT",终于收到心爱的ESP-01S的回应了,就像所追求的女孩终于答应了自己一样,心情溢于言表。
有时候不复位,碰了一下模块,也出现"ready"的字样,可能是我接线有松动吧。还有很多问题等着我解决,先告一段落。以上。