《ESP8266通信指南》3-常用AT指令详解-8266连WIFI


往期

《ESP8266通信指南》1-ESP8266 简介-CSDN博客

《ESP8266通信指南》2-ESP8266 AT测试-CSDN博客

1. 小节目标

介绍 AT 指令集的内容,并为各位读者整理出常用指令。

2. AT 指令集

AT 指令集参考:AT 命令集 — ESP-AT 用户指南 文档

我们可以看到 AT 指令集非常多,我们不可能全部记住,所以我们需要用好用的工具进行 AT 指令管理,在下一节中会提到(ESP8266 调试工具)。

3. AT 指令集分类和注意的点

各位读者请注意,以下内容很重要,需要详细阅读,否则在使用 AT 指令控制 8266 模块的时候,会遇到各式各样的问题,来源:AT 命令集 — ESP-AT 用户指南 文档

AT 指令集可以分为以下几类:

类型

命令格式

说明

测试命令

AT+<命令名称>=?

查询设置命令的内部参数及其取值范围

查询命令

AT+<命令名称>?

返回当前参数值

设置命令

AT+<命令名称>=<…>

设置用户自定义的参数值,并运行命令

执行命令

AT+<命令名称>

运行无用户自定义参数的命令

  • 不是每条 AT 命令都具备上述四种类型的命令。
  • 命令里输入参数,当前只支持字符串参数和整形数字参数。
  • 尖括号 < > 内的参数不可以省略。
  • 方括号 [ ] 内的参数可以省略,省略时使用默认值。例如,运行 AT+CWJAP 命令时省略某些参数:
AT+CWJAP="ssid","password"
AT+CWJAP="ssid","password","11:22:33:44:55:66"
  • 当省略的参数后仍有参数要填写时,必须使用 ,,以示分隔,如:
AT+CWJAP="ssid","password",,1
  • 使用双引号表示字符串参数,如:
AT+CWSAP="ESP756290","21030826",1,4
  • 特殊字符需作转义处理,如 ,、"、\ 等。
    • \\:转义反斜杠。
    • \,:转义逗号,分隔参数的逗号无需转义。
    • \":转义双引号,表示字符串参数的双引号无需转义。
    • \<any>:转义 <any> 字符,即只使用 <any> 字符,不使用反斜杠。
  • 只有 AT 命令 中的特殊字符需要转义,其它地方无需转义。例如,AT 命令口打印 > 等待输入数据时,该数据不需要转义。
AT+CWJAP="comma\,backslash\\ssid","1234567890"
AT+MQTTPUB=0,"topic","\"{\"sensor\":012}\"",1,0
  • AT 命令的默认波特率为 115200。
  • 每条 AT 命令的长度不应超过 256 字节。
  • AT 命令以新行 (CR-LF) 结束,所以串口工具应设置为“新行模式”。

4. 常用指令

4.1. AT+RST:重启模块

在控制 ESP8266 模块的单片机上,在初始化模块之前会用到。

命令:

AT+RST

响应:

OK

4.2. ATE:开启或关闭 AT 回显功能

AT 回显指的是,我们发送的 AT 指令是否要显示出来,如果关闭就只会显示 8266 返回的数据,如果开启就会显示我们发送的 AT 指令,举个例子:

// 开启AT回显
AT
OK

// 关闭AT回显,就只会回复OK
OK

命令:

ATE0

响应:

ATE1
OK

参数:

  • ATE0:关闭回显
  • ATE1:开启回显

4.3. AT+RESTORE:恢复出厂设置

命令:

AT+RESTORE

响应:

OK

说明:

  • 该命令将擦除所有保存到 flash 的参数,并恢复为默认参数。
  • 运行该命令会重启设备。

4.4. AT+CWMODE:查询/设置 Wi-Fi 模式 (Station/SoftAP/Station+SoftAP)

WIFI 工作有三种模式,STA、AP、STA+AP:

  • STA:该模式下可以连接到 WIFI 上
  • AP:作为第一个站点给别人连接,相当于手机开热点
  • STA+AP:两种模式共存

命令:

AT+CWMODE?

响应:

+CWMODE:<mode>
OK

<mode>:模式

  • 0: 无 Wi-Fi 模式,并且关闭 Wi-Fi RF
  • 1: Station 模式
  • 2: SoftAP 模式
  • 3: SoftAP+Station 模式

例子:

2 表示 SoftAP 模式,手机可以连接到 8266 上
 

4.5. AT+CWLAP:扫描当前可用的 AP

功能:

列出当前可用的 AP

命令:

AT+CWLAP

响应:

+CWLAP:<ecn>,<ssid>,<rssi>,<mac>,<channel>,<freq_offset>,<freqcal_val>,<pairwise_cipher>,<group_cipher>,<bgn>,<wps>
OK

例子:

// 寻找指定 SSID 的 AP
AT+CWLAP="Wi-Fi"

  • 扫描到可用 AP ,如上图所示

4.6. AT+CWJAP:连接 AP

扫描到 AP 后,就可以通过该 AT 指令连接 AP。

功能:

  • 设置 ESP Station 需连接的 AP

命令:

AT+CWJAP=[<ssid>],[<pwd>][,<bssid>][,<pci_en>][,<reconn_interval>][,<listen_interval>][,<scan_mode>][,<jap_timeout>][,<pmf>]

响应:

WIFI CONNECTED
WIFI GOT IP

OK
[WIFI GOT IPv6 LL]
[WIFI GOT IPv6 GL]

+CWJAP:<error code>
ERROR

其他说明:

// 如果目标 AP 的 SSID 是 "abc",密码是 "0123456789",则命令是:
AT+CWJAP="abc","0123456789"

// 如果目标 AP 的 SSID 是 "ab\,c",密码是 "0123456789"\",则命令是:
AT+CWJAP="ab\\\,c","0123456789\"\\"

// 如果多个 AP 有相同的 SSID "abc",可通过 BSSID 找到目标 AP:
AT+CWJAP="abc","0123456789","ca:d7:19:d8:a6:44"

// 如果 ESP-AT 要求通过 PMF 连接 AP,则命令是:
AT+CWJAP="abc","0123456789",,,,,,,3

4.6.1. 例子-连接至上次

功能:

将 ESP station 连接至上次 Wi-Fi 配置中的 AP

命令:

AT+CWJAP

响应:

WIFI CONNECTED
WIFI GOT IP

OK
[WIFI GOT IPv6 LL]
[WIFI GOT IPv6 GL]
+CWJAP:<error code>
ERROR

4.6.2. 例子-连接到扫描到的 AP 上

5. 结语


介绍 AT 指令,同时列举了在使用 8266 时常用的 AT 指令,并举了一个配置模块模式,扫描 AP 、通过 AT 连接 WIFI 的功能。



柴头物联网出品

  • 29
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ESP8266是一个低成本、易于使用的Wi-Fi模块,具有强大的处理能力和丰富的通信接口。ESP8266AT指令集是一组与ESP8266通信模块进行交互的指令集合。 MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,采用发布/订阅模式,广泛应用于物联网、传感器和嵌入式系统等领域。它非常适合低带宽和不稳定网络环境下的数据传输。 通过ESP8266AT指令集,我们可以使用ESP8266模块连接到MQTT服务器,并实现与服务器之间的通信。 首先,我们需要设置ESP8266模块的无线局域网连接参数,包括Wi-Fi网络名称和密码等。使用AT+CWMODE指令设置模块为STA模式,AT+CWJAP指令连接到指定的Wi-Fi网络。 接下来,我们需要通过AT+CIPSTART指令建立与MQTT服务器的TCP连接。在建立连接后,使用AT+CIPSEND指令发送MQTT协议格式的数据,包括连接请求、发布消息、订阅主题等。通过AT+CIPSEND指令发送的数据必须符合MQTT协议规定的格式。 如果需要接收来自MQTT服务器的数据,我们可以使用AT+CIPRECV指令接收服务器发送过来的消息。 除了基本的连接和通信功能,ESP8266AT指令集还支持设置心跳包、断开连接、保持持久连接等高级功能。例如,使用AT+CIPSTATUS指令可以查询当前连接状态,使用AT+CIPCLOSE指令可以断开与MQTT服务器的连接。 总之,通过ESP8266AT指令集,我们可以方便地与MQTT服务器进行通信,实现物联网和嵌入式系统中的数据传输和远程控制等功能。 ### 回答2: ESP8266是一款集成了Wi-Fi模块的芯片,AT指令集是用于控制ESP8266芯片的一套指令。而MQTT是一种轻量级的消息协议,适用于物联网设备之间的通信ESP8266芯片通过AT指令集来与外部设备通信。AT指令集包括一系列的指令,可以用于设置Wi-Fi连接、接收和发送数据等功能。而MQTT协议可以通过ESP8266芯片来实现设备与设备之间的通信。通过使用MQTT协议,设备可以发布和订阅主题,实现消息的传输。 mqtt指令ESP8266芯片配合MQTT协议使用的一些指令。在使用ESP8266芯片进行MQTT通信时,可以使用相应的mqtt指令来连接MQTT服务器,发布消息和订阅消息。通过发送特定的mqtt指令,可以实现设备与设备之间的即时通信,以及与云平台的实时数据交换。 总而言之,ESP8266AT指令集与MQTT协议结合使用,可以帮助实现设备之间的通信。通过使用ESP8266芯片,可以轻松地实现MQTT协议的功能,从而实现物联网设备之间的数据传输和交互。 ### 回答3: ESP8266是一款流行的Wi-Fi模块,可以通过AT指令集控制。MQTT是一种轻量级的消息传输协议,适用于物联网应用。ESP8266AT指令集MQTT是通过ESP8266的AT指令集实现MQTT通信。 在使用ESP8266AT指令集MQTT时,首先需要将ESP8266模块连接到Wi-Fi网络。通过AT指令,我们可以设置ESP8266的Wi-Fi连接参数,包括SSID和密码。一旦连接成功,可以通过AT指令控制ESP8266与MQTT服务器进行通信。 在ESP8266AT指令集中,有一些特定的指令用于MQTT通信。例如,AT+CIPSTART指令可以用来建立与MQTT服务器之间的TCP连接。通过指定MQTT服务器的IP地址和端口号,ESP8266可以与服务器建立连接。 建立连接后,我们可以使用AT指令来订阅和发布MQTT主题。AT+CIPSEND指令可以用来发送MQTT消息,包括订阅和发布主题以及相应的消息内容。AT+CIPRECV指令则可以用来接收来自MQTT服务器的消息。 除了基本的MQTT通信功能,ESP8266AT指令集还提供了一些其他的功能。例如,可以使用AT指令来查询ESP8266模块的状态,包括Wi-Fi连接状态和MQTT连接状态。通过这些状态查询指令,我们可以及时了解到模块的工作状态,以便进行相应的处理。 总之,ESP8266AT指令集MQTT为开发者提供了非常方便的方式来控制ESP8266模块与MQTT服务器之间的通信。无论是在物联网应用还是其他相关的项目中,这个组合都可以帮助我们实现稳定可靠的无线通信

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值