M0M1系列模组,经过1年多的演化后,已存在多套标准的固件程序。如果用户需要使用MQTT方式进行通信,则需要选择标准AT指令+MQTT的版本。此版本不仅可以支持标准AT指令的SOCKET通信,还可以支持阿里云物联网套件。本文将着重介绍标准MQTT服务器的连接与通信。同时,我们的模组可以支持多达10个订阅号,是目前市场上支持最多订阅号的AT模组!
在使用MQTT方式进行通信时,我们需要知道一点,MQTT的通信在目前这套固件中,只支持接收MQTT主动串口的输出方式。所以必须设置模组为状态输出打开,此时模组会通过串口提示MQTT服务器是否连接成功以及断开的消息,并且提示接收到的数据。注意,在这种状态下MQTT断开后会自动重新进行连接,如果再次连接成功,用户需要重新进行订阅号的订阅。
一、MQTT连接:
1. 打开模组收到网络数据自动输出功能:
AT+STATUS=on
功能:打开/关闭模组状态输出功能 |
|
查询指令格式: AT+STATUS<CR><LF> |
响应: +ok<CR><LF><CR><LF> |
参数:参考说明 |
|
设置指令格式: AT+STATUS=<status><CR><LF> |
响应: +ok<CR><LF><CR><LF> |
参数: status:状态输出方式 on:打开状态输出 off:关闭状态输出 |
2. 设置登录一个账号为:Mylinks,密码为:TESTMQTT的MQTT服务器
AT+MUSER=Mylinks,TESTMQTT
功能:设置/查询 MQTT的登录用户名和密码 |
|
查询指令格式: AT+MUSER<CR><LF> |
响应: +ok=<user,password><CR><LF><CR><LF> |
参数:请参考设置参数 |
|
设置指令格式: AT+MUSER=<mode><CR><LF> |
响应: +ok<CR><LF><CR><LF> |
参数: user:MQTT服务器登录账号 password:MQTT服务器登录密码 |
3. 设置一个主题为WILL,消息为mywill的遗愿消息will message
AT+WILL=WILL,mywill
功能:设置/查询 WIFI 操作模式(AP/STA/APSTA),重启后设置生效 |
|
查询指令格式: AT+WILL<CR><LF> |
响应: +ok=<theme,massage><CR><LF><CR><LF> |
参数:请参考设置参数 |
|
设置指令格式: AT+WILL=<theme,message><CR><LF> |
响应: +ok<CR><LF><CR><LF> |
参数: theme:遗愿消息主题 massage:遗愿消息内容 |
4. 设置一个内容为client123456的CLIENT ID
AT+MCID=client123456
功能:设置/查询 MQTT的CLIENT ID |
|
查询指令格式: AT+MCID<CR><LF> |
响应: +ok=<client id><CR><LF><CR><LF> |
参数:请参考设置参数 |
|
设置指令格式: AT+MCID=<client id><CR><LF> |
响应: +ok<CR><LF><CR><LF> |
参数: client id:mqtt的client id |
5. 连接域名为app.mqlinks.com,端口为1883的的MQTT服务器
AT+MSOCK=1883,app.mqlinks.com
功能:设置/查询 MQTT服务器的域名(或者IP地址)和端口号 |
|
查询指令格式: AT+MSOCK<CR><LF> |
响应: +ok=<port,ip><CR><LF><CR><LF> |
参数:请参考设置参数 |
|
设置指令格式: AT+MSOCK=<mode><CR><LF> |
响应: +ok<CR><LF><CR><LF> |
参数: port:MQTT服务器的端口号 ip:MQTT服务器的IP地址或者域名 |
二、MQTT通信功能:
1. 订阅一个QOS等级为1,主题为test001的订阅号:
AT+MSUB=QOS1,test001
功能:设置订阅号和QOS等级 |
|
设置指令格式: AT+MSUB=<qos,sub><CR> |
响应: +ok=<CR><LF><CR><LF> |
参数: qos:取值为QOS0,QOS1,QOS2 sub:主题号 |
2. 发布一个QOS等级为1,主题为test002,内容为hello world的发布号:
AT+MPUB=QOS1,11,test002
>hello world
+ok=11
功能:OTA升级固件 |
|
指令格式: AT+MPUB=<qos,len,pub><CR> |
响应: > +ok=len<CR><LF><CR><LF> |
参数: qos:取值为QOS0,QOS1,QOS2 len:消息内容的数据长度 pub:发布号的主题 |
|
说明:指令接收成功后,模组会先返回>用于提示接收数据,此时串口等于接收3秒,此时输入串口数据等于len或者两字节之间超时10ms以上,则串口数据自动截断发送。 |
3. MQTT数据接收:
当模块接从服务器接收到订阅的数据内容,则会主动输出格式为+MQD,len,sub,data的串口数据,如收到:
+MQD,11,test001,how are you,则收到的订阅号为test001,消息内容长度为11,内容为how are you
三、MQTT其它指令
1. 取消一个订阅号:
AT+MUSU=test001
功能:取消订阅号 |
|
指令格式: AT+MUSU=<sub><CR><LF> |
响应: +ok<CR><LF><CR><LF> |
参数: sub:订阅的主题 |
|
说明:只有之前订阅过的主题,才可以使用此命令并提示成功 |
2.关闭MQTT服务器连接
AT+MCLOSE
功能:关闭与MQTT服务器的连接 |
|
查询指令格式: AT+MCLOSE<CR><LF> |
响应: +ok<CR><LF><CR><LF> |
参数:无 |