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:广播 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 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:

设置指令说明:

  • 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里面下载:传送门