AT指令连接百度天工IOT HUB(M0M1系列)

前言

M0M1系列模组,经过1年多的演化后,已存在多套标准的固件程序。如果用户需要使用MQTT方式进行通信,则需要选择标准AT指令+MQTT的版本。此版本不仅可以支持标准AT指令的SOCKET通信,还可以支持阿里云物联网套件。本文将着重介绍标准MQTT服务器的连接与通信。同时,我们的模组可以支持多达10个订阅号,是目前市场上支持最多订阅号的AT模组!
在使用MQTT方式进行与百度天工IOT HUB通信时,我们需要知道一点,MQTT的通信在目前这套固件中只支持接收MQTT主动串口的输出方式。所以必须设置模组为状态输出打开,此时模组会通过串口提示MQTT服务器是否连接成功以及断开的消息,并且提示接收到的数据。注意,在这种状态下MQTT断开后会自动重新进行连接,如果再次连接成功,用户需要重新进行订阅号的订阅。

注意:模块出厂默认波特率为115200,模块串口工作模式有两种,一是AT指令模块,二是透传模式,模块默认为透传模式。

具体步骤

进入AT指令模式

通过串口工具入模块输入+++(3个字节),当模块输入a以后在3秒内往模块输入a(1个字节),模块输出+ok,则表示模块则进入了AT指令模式。

配置基础的AT指令

1.设置WIFI模块工作模式

设置 返回
AT+WMODE=STA +ok
查询 返回
AT+WMODE +ok=STA(模式有:APSTA,STA,AP)

2.设置连接路由器的账号和密码

设置 返回
AT+WJAP=APtest,12345678 +ok(APtest为路由器的AP,12345678为路由器的密码)
查询 返回
AT+WJAP +ok=APtest,12345678 (APtest为路由器的AP,12345678为路由器的密码)

3.打开模组收到网络数据自动输出功能

设置 返回
AT+STATUS=on +ok
查询 返回
AT+STATUS +ok=on

4.设置模块开机模式为AT指令

设置 返回
AT+TMODE=cmd +ok
查询 返回
AT+TMODE +ok=cmd

5.保存并重启

设置 返回
AT+Z +ok

注意:至些模块每次重启,都会加载上面设置的参数,此时模块重启后开始连接路由器,模块重启后会出现ready,表示可以接收AT指令。

配置MQTT连接的AT指令

1.设置登录一个账号为:test15000000999mylinks,密码为:ABc8KAaPskTdvN6g的账号

设置 返回
AT+MUSER=test15000000999mylinks,ABc8KAaPskTdvN6g +ok
查询 返回
AT+MUSER +ok=test15000000999mylinks,ABc8KAaPskTdvN6g

2.关闭遗愿消息

设置 返回
AT+WILL=, +ok
查询 返回
AT+WILL +ok=,

3.设置CLIENT ID

设置 返回
AT+MCID=client123456 +ok
查询 返回
AT+MCID +ok=client123456

4.设置一个内容为keepalive的数值

设置 返回
AT+MKEEP=120 +ok
查询 返回
AT+MKEEP +ok=120

注意:默认Keeplive为60秒

5.连接百度天工服务器

设置 返回
AT+MSOCK=1883,parser15000000999.mqtt.iot.gz.baidubce.com +ok
查询 返回
AT+MSOCK +ok=1883,parser15000000999.mqtt.iot.gz.baidubce.com

注意
1.完成以上步骤后,模块开始连接MQTT服务器,当连接成功后,会出现+MQTT:OK,则连接服务器成功!当出现+MQTT:FAIL时,则说明从MQTT断开。
2.当连接MQTT服务器失败后,模块将输出连接MQTT失败+MERR:x,x值连接错误具体如下,此功能在033版本后才会实现:

返回的连接码 描述
0 0x00 连接接受 连接接受
1 0x01 连接拒绝(不可接受的版本) 服务端不支持所连接的MQTT的协议
2 0x02 ​​​连接拒绝(Client ID服务器不允许) Client ID符合UTF-8标准,但是服务器不允许这个Client ID
3 0x03 连接拒绝(服务器不可达) MQTT服务器不可达
4 0x04 连接拒绝(错误的用户名和密码) 错误的用户名和密码
5 0x05 连接拒绝(客户端没有通过授权认证) 客户端没有通过授权认证
6~255 未来保留字段

配置MQTT通信功能

1.设置透传订阅号

设置 返回
AT+MSUB=QOS1,testmst +ok

注意:当订阅的主题号重复时,会提示错误!订阅号总数为10个。

2.发布数据

设置 返回
AT+MPUB=QOS1,12,testmpt >
hello world! +ok=12

说明:指令接收成功后,模组会先返回>用于提示接收数据,此时串口等于接收3秒,此时输入串口数据等于len或者两字节之间超时10ms以上,则串口数据自动截断发送。

3.MQTT数据接收:
当模块接从服务器接收到订阅的数据内容,则会主动输出格式为+MQD,len,sub,data的串口数据,如收到:
+MQD,11,testmst,how are you则收到的订阅号为testmst,消息内容长度为11,内容为how are you。

MQTT其它指令

1.取消一个订阅号

设置 返回
AT+MUSU=testmst +ok

2.关闭MQTT服务器连接

设置 返回
AT+MCLOSE +ok

注意:为保证可靠性,当出现+MQTT:OK,MQTT服务器重新连接时,一定要使用AT+MSUB将之前的订阅号重新订阅

说明

如果遇到模组使用上的问题,可以进群号为519630819的QQ群进行交流。
相关产品,请关注:shop.mqlinks.com

猜你喜欢

转载自blog.csdn.net/mqlinks/article/details/87346525