【MQTT学习】NODEMCU(ESP8266-12F)的AT指令

官方AT固件烧录方法参考
ESP8266-12F烧录V1.7以上版本AT固件的方法

模块设置

AT—Tests AT Startup

命令

AT

返回

OK

AT+RST—复位模块

命令

AT+RST

返回

OK

AT+RESTORE—恢复出厂设置

命令

AT+RESTORE

响应

OK

ATE—AT 命令回显

关闭回显

ATE0

打开回显

ATE1

AT+UART_CUR—当前UART设置,不保存到Flash

查询

AT+UART_CUR?

设置

AT+UART_CUR=<baudrate>,<databits>,<stopbits>,<parity>,<flow control>

参数说明

<baudrate>: UART baud rate
<databits>: data bits
	5: 5-bit data
	6: 6-bit data
	7: 7-bit data
	8: 8-bit data
<stopbits>: stop bits
	1: 1-bit stop bit
	2: 1.5-bit stop bit
	3: 2-bit stop bit
<parity>: parity bit
	0: None
	1: Odd
	2: Even
<flow control>: flow control
	0: flow control is not enabled
	1: enable RTS
	2: enable CTS
	3: enable both RTS and CTS

AT+UART_DEF—默认UART配置,保存进FLASH

查询

AT+UART_DEF?

设置

AT+UART_DEF=<baudrate>,<databits>,<stopbits>,<parity>,<flow control>

参数与 AT+UART_CUR命令一致

AT+CWMODE—设置WIFI模式

查询命令

AT+CWMODE?

相应

+CWMODE:<mode>
OK

设置命令

AT+CWMODE=<mode>

响应

OK

参数

<mode>:
0: Null mode, WiFi RF will be disabled
1: Station mode
2: SoftAP mode
3: SoftAP+Station mode

AT+CWJAP—连接到AP

查询命令

AT+CWJAP?

相应

+CWJAP:<ssid>,<bssid>,<channel>,<rssi>
OK

参数说明

Parameters:
<ssid>: a string parameter showing the SSID of the AP.
<bssid>: the AP’s MAC address.
<channel>: channel
<rssi>: signal strength

设置命令

AT+CWJAP=<ssid>,<pwd>[,<bssid>][,<pci_en>][,<reconn>][,<listen_interval>]

响应

OK

或者
+CWJAP:
ERROR

参数说明

<ssid>: the SSID of the target AP.
Escape character syntax is needed if SSID or password contains any special characters,
such as , or " or \.
<pwd>: password, MAX: 64-byte ASCII.
[<bssid>]: the target APs MAC address, used when multiple APs have the same SSID.
[<pci_en>]: enable PCI Authentication, which will disable connect OPEN and WEP AP.
[<reconn>]: enable Wi-Fi reconnection, when beacon timeout, ESP32 will reconnect
automatically.
[<listen_interval>]: the interval of listening to the AP's beacon,the range is (0,100],
<error code>: (for reference only)
	1: connection timeout.
	2: wrong password.
	3: cannot find the target AP.
	4: connection failed.
	others: unknown error occurred.

AT+CWQAP—与 AP 断开链接

命令

AT+CWQAP

响应

OK

建立连接

AT+CIPSTART—建立TCP连接,UDP传输或SSL连接

设置

AT+CIPSTART=<type>,<remote IP>,<remote port>[,<TCP keep alive>][,<local IP>]
Multiple TCP Connections (AT+CIPMUX=1):
AT+CIPSTART=<link ID>,<type>,<remote IP>,<remote port>[,<TCP keep alive>][,
<local IP>]

例:连接私有云MQTT服务器

AT+CIPSTART="TCP","129.***.***.127",1883

若之前没有连接过,则响应成功连接

AT+CIPSTART="TCP","129.28.***.127",1883
CONNECT

OK

若之前连接过,则响应

AT+CIPSTART="TCP","129.***.***.127",1883
ALREADY CONNECTED

ERROR

AT+CIPCLOSE—关闭TCP/UDP/SSL 连接

命令

AT+CIPCLOSE

响应

OK

AT+CIFSR读取模块IP地址

命令

AT+CIFSR

响应

+CIFSR:<SoftAP IP address>
+CIFSR:<Station IP address>
OK

发送数据

AT+CIPSEND—Sends Data

AT模式下发送数据

命令

AT+CIPSEND=<length>

响应

OK
>

跟随发送数据即可。

如果在数据传输过程中无法建立或中断连接,则系统
返回:

ERROR

如果数据传输成功,系统将返回:

SEND OK

透传模式下发送数据

在透传模式下,发送数据更为简单,首先进入透传模式,然后使用发送数据命令启动发送,再进行数据发送即可
发送命令

AT+CIPSEND

响应

>

在接收到>,后,直接发送我们的报文即可。

网络测试命令

AT+PING: Ping测试

命令

AT+PING=<IP>

响应

+PING:<time>
OK

例:

AT+PING="www.baidu.com"
+8

OK

登录阿里云服务平台流程

1、发送“+++”让ESP8266退出透传
2、使用AT+RESTORE,恢复出厂设置
3、ATE0,关闭回显功能
4、AT+CWMODE_CUR=1  设置当前客户端为station模式
5、AT+CWJAP=<ssid>,<pwd>  连接到路由器
6、AT+CIPSTART="TCP","a1a3XzsznJI.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883  连接到阿里云,地址根据自己的情况进行修改。
7、AT+CIPMODE=1   进入透传模式
8、AT+CIPSEND  启动数据收发
9、发送报文、接收报文
10、退出连接前,先发送"+++"退出透传模式,设置AT+CIPMODE=0 进入正常AT命令模式。

透传模式说明:
进入透传模式后,向服务器端发送命令和接收命令就无需带AT命令,接收到的信息也没有
例如:我们要发送连接MQTT协议报文时,在AT模式下,我们需要发以下命令(标注的位置是我们发给ESP8266模块的):
AT+CIPSEND=143

OK
'> <这儿是143字节报文数据>
Recv 143 bytes

SEND OK

+IPD,4: \0\0

而进入透传模式时,我们只需要发送报文数据即可,例如我们发送C0 00心跳报文,则直接发送C0 00给ESP8266模块即可

[19:29:04.971]发→◇C0 00 □
[19:29:05.055]收←◆D0 00 
[19:29:14.968]发→◇C0 00 □
[19:29:15.054]收←◆D0 00 
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 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指令控制ESP8266MQTT服务器进行通信。 在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、付费专栏及课程。

余额充值