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