ESP8266调试-P2P(AP模块与STA模块通信)
ESP8266有三种模式可以选择,AP/STA/AP+STA,
下面我们要实现的是模块与模块之间点对点的通信
通信的三个过程
1. 建立WiFi连接
a. 首先一个模块配置为AP模式,开启WiFi热点,(可以设置WiFi名称、密码和加密方式)
b. 然后另一个模块配置为STA模式,连接到上面的热点(要是手机、带有无线网卡的电脑直接连接到上面的热点)
2. 建立TCP Server与TCP Client的连接
a.首先AP模式的那个模块配置为TCP Server(可以设置IP和端口,默认IP是192.168.4.1)
b.然后STA模块配置为TCP Client(建立WiFi连接之后会被自动分配一个IP和端口 默认IP是192.168.4.2)
要是手机或者PC端,使用网络调试助手,选择TCP Client
c. 建立连接,TCP Client 连接到 TCP Server,(TCP Client连接到服务器的IP)
3. 进行数据传输
. 数据数据传输有透传模式和非透传模式
a. 建立透传模式 TCP Client 发什么,TCP Server就收到什么,而且不退出透传这种连接就不会中断
b. 建立非透传模式 首先TCP Client约定好发送的字节,再发送出去,而且隔一段时间不发送,第2步建立的连接就中断了,要再次传输数据就要重新进行 Step2.c和Step3
建立通信的调试指令
a. AP模块部分的
//模块AP热点 TCP Server
AT+CWMODE=2 ;//开启 AP 模式
AT+RST ;// 复位模式才能生效
AT+CWSAP="ESP8266","TJUT2017",5,4 ;// 设置模块的 wifi 和密码
AT+CIPMUX=1 ;//打开多连接
AT+CIPSERVER=1,8686 ;//设置模块服务器端口
//注意 每次 AP 重启都能 可以自动开启热点
//但要从新配置服务器端口 就是要重新建立服务器 Step2.a
//AT+CIPSERVER=1,8686 不然无法建立连接的
b.STA模块部分的
//模块STA模式 TCP Client
AT+CWMODE=1 //开启 STA 模式
AT+RSTAT+CWLAP //查询当前可搜索的热点,看是否有这个
AT+CWJAP=”ESP8266”,”TJUT2017” //连接热点的 wifi 和密码
AT+CIPMUX=0 //打开单连接
//AT+CIPMODE=1
AT+CIPSTART="TCP","192.168.4.1",8686 //建立TCP连接
//透传模式
AT+SAVETRANSLINK=1,"192.168.4.1",8686,"TCP" //这个指令可以保存远端的IP和端口
//从而开机自动连接
AP+CIPSEND //之后就可以透传了
+++ //(取消发送新行,退出透传)
//非透传模式
AP+CIPSEND //之后就可以透传了
AP+CIPSEND=0,10 //约定往哪个id发,发多少字节
使用小贴士
- 使用串口发送数据 波特率要匹配[默认115200] 当然也可以用AT指令自己修改
- 使用串口发送数据 要在结尾发送新行,(只有退出透传的+++要取消发送新行)
- 在P2P的透传模式下TCP Sever与TCP Client是不会断开连接的
- 非透传模式下,如果一定时间没有数据传输,系统会自动断开连接的,需从新建立TCP连接
- 要是不确定模块工作在什么模式 首先可以使用一些查询指令,不行可以RST/RESTORE ,或者关闭串口,拔下模块,重新连接试试
- 要注意模块的电压和接线