一、 ESP8266 WIFI模块调试(串口发送AT指令调试)。

ESP8266 WIFI模块的调试算是最复杂的了,虽然通信是简单的串口通信,但是要设置ESP8266连接服务器并稳定无误的将数据上传,还是非常不容易的。

在前期模块调试阶段我是使用USB转串口工具结合电脑串口调试助手来对ESP8266进行模拟ARM单片机设置ESP8266,通过查看电脑串口调试助手收到的ESP8266返回数据,来判断设置指令有没有设置成功。如图5-1所示:

                   

C语言 ESP8266 UDP通讯 改变通讯对象 esp8266串口调试_STM32

C语言 ESP8266 UDP通讯 改变通讯对象 esp8266串口调试_ESP8266_02

                                                图5-1 TTL串口工具连接ESP8266S实物图

连接好ESP8266模块之后,打开电脑串口调试助手,默认波特率为115200。为了验证模块连接是否正确,我们可以发送“AT”指令给ESP8266,如果返回OK,那就说明WIFI模块是好的且线路连接正确。如图5-2所示:

             

C语言 ESP8266 UDP通讯 改变通讯对象 esp8266串口调试_WIFI_03

                                                                                  图5-2 ESP8266测试指令

下面我们调试测试模块在 STA 模式下的透传设置(命令成功响应都是OK)

1)设置 WIFI 模式:AT+CWMODE=1 设置为 STA 模式  响应:OK

2)重启生效AT+RST响应:OK

3)连接路由器AT+CWJAP=”xiaohai”,”xiaohai123”响应:OK 如图5-3所示:

                                      

C语言 ESP8266 UDP通讯 改变通讯对象 esp8266串口调试_C语言_04

                                                                                图5-3 ESP8266连接到路由器

4)查询模块IP: AT+CIFSR 响应:192.168.1.xxx

5)在电脑上面使用网络调试助手,创建一个服务器 (模拟服务器数据接收,电脑与ESP8266要在同一个局域网即连接到同一个路由器)如图5-4所示:

                             

C语言 ESP8266 UDP通讯 改变通讯对象 esp8266串口调试_51单片机_05

                                                                   图5-4 网路调试助手模拟一个局域网服务器

6)模块连接到服务器 (目前是局域网模拟,实际工作时,换成服务器IP和端口)

AT+CIPSTART="TCP","192.168.2.38",8888 响应: OK  如图5-5所示:

                       

C语言 ESP8266 UDP通讯 改变通讯对象 esp8266串口调试_C语言_06

                                                                 图5-5 ESP8266成功连接到局域网模拟服务器

7) 开启透传模式 AT+CIPMODE=1 响应:OK

8) 开始透传 AT+CIPSEND响应:OK >   如图5-6所示:

               

C语言 ESP8266 UDP通讯 改变通讯对象 esp8266串口调试_C语言_07

                                                                         图5-6 ESP8266成功进入透传模式

现在就可以相互发数据了,如图5-7所示:

                  

C语言 ESP8266 UDP通讯 改变通讯对象 esp8266串口调试_ESP8266_08

                                                                       图5-7 ESP8266与服务器在透传模式下交互数据

9) 退出透传模式(透传模式下,所有AT指令都没有响应,指令也当做数据发送到服务器了)

在透传模式中,若识别到单独的一包数据“ +++”(不要发送新行),则退出透传模式。如图5-8所示:

       

C语言 ESP8266 UDP通讯 改变通讯对象 esp8266串口调试_STM32_09

                                                                    图5-8 ESP8266退出透传模式
光对ESP8266设置也是不够的,有时候我们还得需要获取ESP8266的一些信息,其中最需要获取的就是ESP8266的网卡地址,因为本项目设计设备ID时就是用的ESP8266的网卡地址。单片机通过发“AT+CIFSR”命令来获取ESP8266的网卡地址信息,收到的信息不直接是网卡地址,而是“+CIFSR:STAMAC,<MAC address>”。此时,我们就不得不写数据处理算法来提取里面的网卡地址。其他获取ESP8266信息的处理也差不多。如图5-9所示:

                      

C语言 ESP8266 UDP通讯 改变通讯对象 esp8266串口调试_51单片机_10

                                                                        图5-9 获取ESP8266网卡地址