ESP8266之间通信
- ESP8266共有3种模式:STA、AP、STA+AP
- STA:ESP8266设备作客户端
- AP:ESP8266设备作服务器
- STA+AP:混合模式
服务器端ESP8266配置流程
1、配置AP模式
查询指令:
AT+CWMODE?
功能:查询 ESP8266 当前 Wi-Fi 模
响应:+CWMODE:
? OK
设置指令:
- AT+CWMODE=
- 功能:设置 ESP8266 当前 Wi-Fi 模 式。
- 响应:OK
指令:
AT+CWMODE=2 //1:STA模式 2:AP模式 3:STA+AP模式
响应:
OK
2、复位
指令:
AT+RST
响应:
OK
ready //最后一行
3、配置AP系数
设置指令:
- AT+CWSAP=
, , , [, ][, ] - 响应:OK 或 ERROR
参数说明:
:字符串串参数 接入点名称 :字符串串参数 密码?长度范围: 8 ~ 64 字节 ASCII :通道号 :加密?方式,不不?支持 WEP 0:OPEN、2:WPA_PSK、 3: WPA2_PSK 、 4:WPA_WPA2_PSK [ ](选填参数):允许连?入 ESP8266 SoftAP 的最多 Station 数?目,取值范围 [1, 8]。 [ ](选填参数):默认为 0,开启 广播 ESP8266 SoftAP SSID。 0:广播 SSID 1:不广播 SSID
指令:
AT+CWSAP="hao","h123456.",5,3
响应:
OK
4、设置多连接
查询指令说明:
- AT+CIPMUX?
- 响应:+CIPMUX:
设置指令说明:
AT+CIPMUX=
: ? 0:单连接模式
? 1:多连接模式
响应:OK
指令:
AT+CIPMUX=1 //0:单连接模式、1:多连接模式
响应:
OK
5、设置 AP 的 IP 地址
指令:
AT+CIPAP="192.168.0.43"
响应:
OK
6、建立TCP服务器
多连接情况下,才能开启 TCP 服务?,创建 TCP 服务?后,自动建立 TCP 服务?监听,当有TCP客户端接入,会自动占用一个连接ID
设置指令说明:
AT+CIPSERVER=
,
Mode:
0:关闭服务器
1:建立服务器
Port:端?口号,默认为 333
指令:
AT+CIPSERVER=1,8080
响应:
OK
7、查询IP地址
指令:
AT+CIFSR
响应:
+CIFSR:APIP,"192.168.0.43"
+CIFSR:APMAC,"86:cc:a8:a0:02:e6"OK
这个IP地址一会会用到
8、设置TCP服务器超时时间
查询指令说明:
- AT+CIPSTO?
- 功能:查询 TCP 服务器?超时时间
设置指令说明:
- AT+CIPSTO=
- 功能:设置 TCP 服务?超时时间。
- ESP8266 作为 TCP 服务器,会断开一直不通信直至超时了的 TCP 客户端连接
指令:
AT+CIPSTO=1800
响应:
OK
至此ESP8266服务器端配置完成
客户端端ESP8266配置流程
1、配置STA模式
查询指令:
AT+CWMODE?
功能:查询 ESP8266 当前 Wi-Fi 模
响应:+CWMODE:
? OK
设置指令:
- AT+CWMODE=
- 功能:设置 ESP8266 当前 Wi-Fi 模 式。
- 响应:OK
指令:
AT+CWMODE=1 //1:STA模式 2:AP模式 3:STA+AP模式
响应:
OK
2、复位
指令:
AT+RST
响应:
OK
ready //最后一行
3、连接AP
查询指令:
- AT+CWJAP?
- 功能:查询 ESP8266 Station 已连接的 AP 信息
- 响应:+CWJAP:
, , , - ? OK
设置指令:
- AT+CWJAP=
, [, ] - 功能:设置 ESP8266 Station 需连接的 AP。
- 参数:
:?目标 AP 的 SSID - ?
:密码最?长 64 字节 ASCII - ? [
]:目标 AP 的 MAC 地址,一般用于有多 个 SSID 相同的 AP 的情况 - 响应:OK
指令:
AT+CWJAP="hao","h123456."
响应:
WIFI CONNECTED
WIFI GOT IPOK
此时在服务器端会响应如下内容:
+STA_CONNECTED:"84:cc:a8:a0:02:e6"
+DIST_STA_IP:"84:cc:a8:a0:02:e6","192.168.4.2"
4、查询IP地址
指令:
AT+CIFSR
响应:
+CIFSR:STAIP,"192.168.4.2"
+CIFSR:STAMAC,"84:cc:a8:a0:02:e6"OK
响应的内容和上一步服务器端响应的IP相同
5、设置单连接
查询指令说明:
- AT+CIPMUX?
- 响应:+CIPMUX:
设置指令说明:
AT+CIPMUX=
: ? 0:单连接模式
? 1:多连接模式
响应:OK
指令:
AT+CIPMUX=0 //0:单连接模式、1:多连接模式
响应:
OK
6、建?立 TCP 连接
设置指令:
- AT+CIPSTART=
, , [, ] - 参数说明:
:字符串串参数,连接类型, "TCP","UDP"或"SSL" :字符串串参数,远端 IP 地址 :远端端?口号 - [
]: TCP keep-alive 侦测时间,默认关闭此功能 - ? 0:关闭 TCP keep-alive 功能
- 1~7200:侦测时间,单位为 1s
- 响应:OK 或 ERROR
- ? 如果连接已经存在,则返回 ALREADY CONNECTED
指令:
AT+CIPSTART=”TCP","192.168.0.43",8080 //IP为服务器的,端口也是
响应:
CONNECT
OK
此时在服务器端会响应如下内容:
0,CONNECT
7、设置传输模式
- 查询指令:
- AT+CIPMODE?
- 功能:查询传输模式
- 响应:+CIPMODE:
- ? OK
- 设置指令:
- AT+CIPMODE=
- 功能:设置传输模式
- 响应:OK
- 参数说明:
: - ? 0:普通传输模式
- ? 1:透传模式,仅?支持 TCP 单连接和 UDP 固定通信对端的情况
指令:
AT+CIPMODE=1
响应:
OK
8、发送数据
在透传模式时,开始发送数据
指令:
AT+CIPSEND
响应:
OK
>
此时就可以客户端向服务器发送数据了
9、退出发送数据
当输入单独一包 +++ 时,返回普通 AT 指令模式
10、关闭 TCP传输
指令:
AT+CIPCLOSE
响应:
OK
以上过程就是两个ESP8266之间通信的配置流程
SAT、AP配置工程代码可以从我的GitHub里面下载:传送门