ESP8266之间通信

  • 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之间通信的配置流程

上一篇:基于华为云设计的智能家居控制系统(STM32+ESP8266)


下一篇:NodeMCU-ESP8266连接阿里云Iot平台进行数据监测