使用WIFI模块AT指令连接百度天工IOT HUB
前言
劢领系列模组,经过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