ESP8266支持3种模式:Station模式、AP模式和Station+AP混合模式。关于这三种模式的区别可以类比我们的手机,当手机连接无线网时,此时手机为Station模式,当手机打开移动热点时,此时手机为AP模式。简单的说就是Station模式就是作为终端,AP模式就是作为路由器。而Station+AP混合模式,就和路由器的无线桥接功能是一样的,既可以连接别的无线网,同时也可以自己作为路由器。
本文分享ESP8266的两种工作模式下的数据传输:Station模式作为TCP客户端、AP模式作为TCP服务器,分别和网络调试助手进行通讯的AT指令配置流程。
AT指令可以由MCU的串口来完成,这样就可以实现两块ESP8266之间进行通讯,电脑和ESP8266的无线控制,手机和ESP8266的无线控制等。
ESP8266作为TCP客户端,电脑作为TCP服务
ESP8266模块配置为Station模式连接WiFi,电脑也连接同一个WiFi,电脑使用网络调试助手建立一个TCP服务器,指定服务器地址和端口号。
ESP8266作为TCP客户端,和电脑上的网络调试助手进行通讯,或者直接透传。实现的效果
是模块发送的数据,电脑可以接收到,电脑发送的数据,模块可以接收到。
1.模块配置为Station模式:AT+CWMODE=1
2.配置WiFi信息按照信号强度排序:AT+CWLAPOPT=1,127
3.扫描附近的WiFi信息:AT+CWLAP
//配置当执行AT+CWLAPwifi分享指令时,WiFi信息按照信号强度排序
AT+CWLAPOPT=1,15
//1表示按照信号强度排序,15表示WiFi信息只显示加密方式,WiFi名称,信号强度,MAC地址
//扫描附近的WiFi信息
AT+CWLAP
+CWLAP:([加密方式],[WiFi名称],[RSSI信号强度],[MAC地址])
+CWLAP:(4,"Tenda_A3AA00",-76,"c8:3a:35:a3:aa:01")
+CWLAP:(4,"Tenda_A3AA00 Sander",-81,"e4:d3:32:9c:e3:c4")
+CWLAP:(3,"EZVIZ_D38296744",-81,"50:13:95:84:e0:16")
+CWLAP:(4,"TP-LINK_4723",-84,"cc:08:fb:c1:47:23")
4.连接指定WiFi:AT+CWJAP="Tenda_A3AA00","password123"
//连接指定AP
AT+CWJAP="Tenda_A3AA00","password123"
//如果WiFi名称重复,需要指定MAC地址来确定要连接的WiFi
AT+CWJAP="Tenda_A3AA00","password123","c8:3a:35:a3:aa:01"
//如果WiFi名称或密码中含有特殊字符,前面要添加\转义符号
如,目标WiFi名称为: ab\,c,密码为: 0123456789"\,则指令如下:
AT+CWJAP="ab\\\,c","0123456789\"\\"
//查询已经连接的WiFi信息
AT+CWJAP?
//断开当前WiFi连接
AT+CWQAP
5.设置单连接模式:AT+CIPMUX=0
//如果之前使用AP模式开启过TCP服务器,要先关闭TCP服务器
AT+CIPSERVER=0
//设置单连接模式
AT+CIPMUX=0
6.电脑和模块连接同一WiFi,电脑启动网络调试助手,并建立TCP服务器。
7.模块作为TCP客户端,连接电脑上创建的TCP服务器
//主机地址和端口要和电脑上的TCP服务器保持一致,
AT+CIPSTART="TCP","***.***.***.***",6000
CONNECT
OK
8.如果连接成功,网络调试助手会显示有一个客户端上线,并显示了客户端的IP为***.***.***.***
9.查询当前TCP服务器分配的IP地址:AT+CIPSTATUS
AT+CIPSTATUS
STATUS:3        //3表示已经建立TCP传输
+CIPSTATUS:0,"TCP","***.***.***.***",6000,26441,0    //本地IP地址
OK
10.此时网络调试助手(TCP服务器)发送的信息,WiFi模块(TCP客户端)已经可以实时收到了。