本文主要对讲述ESP8266模块硬件连接工作,以及作为服务器和客户端情况下的配置实现的详细过程,并对相关AT指令和实验现象进行说明。
模块型号使用的是ESP-12E,基于ESP8266核心处理器的模块,使用模块时,需要对引脚进行相应的连接才能正常使用。引脚连接如下图:
通过USB-TLL下载器与模块连接到电脑,进行AT指令通信。由于模块引脚间距2mm。不能使用2.54mm排插,需要在洞洞板上,通过导线进行引线处理,如图:
当模块上电后,LED指示灯会闪烁一下,表示可以正常工作。下面就可以对模块进行调试使用了!
串口调试软件:模块默认使用115200波特率
网络调试助手:本文用了两个网络调试助手软件,原因是在调试过程中,有一款软件进行创建客户端时无法连接上模块服务器,可能是软件版本问题,因此将模块配置为服务器时,改用了另一款调试助手,两款软件分别如下:
1)该软件在创建服务器时能正常使用。而创建客户端时无法使用(版本问题)。
2)创建客户端时用这款软件。
下面是将模块作为服务器端的配置流程,以及对常用的AT指令进行解释
注:发送AT指令后面一定要加入换行(回车),再点击发送,指令才有效!
- 模式配置:AT+CWMODE=3,配置成AP兼station模式(AP理解为路由器,被连接,station理解为非路由器,去连接别人),一般通用配置成此模式即可。
指令介绍:
在调试助手将指令发给模块,如图:
2.设置为路由器,为模块配置路由器名称和密码
发送指令为:AT+CWSAP=”MYESP8266”,”ldy1314520”,11,2
名称是MYESP8266,密码是ldy1314520
指令介绍:
指令发送,如图:
3.电脑连接到模块路由器 配置完WIFI模块后,可以通过电脑无线连接到WIFI模块,如下图。
电脑连接到WIFI模块路由器,实际上就已经建立了以路由器为中心的局域网,这为下面建立客户端和服务器的连接打下了基础。
说明:建立局域网的条件,也可以让WIFI模块连接其他路由器,然后电脑也连接该路由器也能构成局域网,这里不做详解。
- 模块复位。AT+RST,即:复位模块,成功后返回ready,其中会返回一串乱码是模块内部信息,正常现象。
指令介绍:
指令发送:
2 配置为多连接。AT+CIPMUX=1,即:模块作为服务器时,可以被多个客户端连接,若作为客户端时,可以连接多个服务器。
指令介绍:
指令发送:
3.配置为服务器。AT+CIPSERVER=1,8089 端口号8089的服务器 ,此时,就将模块作为服务器创建好了!但是客户端要连接上该服务器,需要知道该服务器的IP地址,因此需要下一步指令对IP地址获取。
指 令介绍:
指令发送:
4 .获取服务器本机IP地址。知道IP地址,客户端才能进行连接。
指令介绍:
指令发送如下,可以看到模块返回的IP地址。IP是192.168.4.1 端口号是之前配置的8089.
5 .下面就是在电脑端创建客户端了,用网络调试助手,创建如下,并成功连接服务器,连接上后,模块会响应CONNECT。
6 .连接服务器后,WIFI模块想知道连接上来的客户端ID编号,IP地址,端口号的相关信息,可以通过指令:AT+ CIPSTATUS。指令介绍:
指令发送,可以获得客户端信息,显示的是0号客户端:
7.下面可以进行双方通信,首先客户端给服务器发消息:
需要注意的是:由于模块内部有定时机制,如果双方长时间没通信,连接会被自动断开!
8.服务器给客户端发消息,需要通过指令AT+CIPSEND=0,5(多路连接下)。该指令指对0号客户端发5字节数,如果实际发的字节超过5,会被截取前面5个。发送完后,模块返回字符‘>’,此时AT指令失效,用户可以任意发自己想要的信息,发送成功,返回“SEND OK”。
指令发送如图,模块返回字符‘>’:
任意发送想要的5字节数,发送成功返回“SEND OK”:
9.上面就是双方的通信过程,如果想要关闭连接,可以通过指令AT+CIPCLOSE=0(多连接模式),可以将0号客户端关闭连接。
指令发送如图:
将模块作为客户端,应在WIFI模块作为路由器的基本配置下,再进行如下的操作。
1.通过网络调试助手创建服务器,服务器IP必须为电脑连接路由器后的本机IP。这样才能确保在局域网下的同网段。
2.模块复位。AT+RST,成功后返回ready。同上,不做详细介绍
。
3.配置为多连接。AT+CIPMUX=1,即:模块作为服务器时,可以被多个客户端连接,若作为客户端时,可以连接多个服务器。同上,不做详细介绍。
4.不作为服务器。AT+CIPSERVER=0。
指令发送如下:
5.连接到服务器,通过指令:AT+CIPSTART= “TCP”, “192.168.4.2”, 9085 意思为:建立TCP连接到IP为192.168.4.2,端口9085的服务器
指令介绍:
指令发送如下,若连接成功将返回CONNECT OK,并且在网络调试助手显示连接进来的客户端IP。
6.双方数据通信,服务器给客户端发,只要直接在网络调试助手里发送想发的信息就行。如图:
7.客户端给服务器发消息,需要通过指令:AT+CIPSEND=0,6(多路连接下)。该指令指对0号服务器发6字节数,如果实际发的字节超过6,会被截取前面6个。AT+CIPSEND指令详解见上。
指令发送如图:
出现‘>’字符就可以发送想发的数据: