一.前言
最近像做一个物联网项目,就选择了阿里云和4G模块来实现联网的数据交互。
于是就选择有人物联的4G模块。
二.问题
其实有人官方的文档写的还是非常详细,但是其中遇到了一些问题就是有发现我没有设置阿里云的物理模型的topic类(其实官网的MQTT操作指南上面有只是懒得看没发现)一直都没有发送成功。
三.解决
按照官网给出的操作步骤配置阿里云的时候添加一条阿里云上物理模型的topic类就可以了。
阿里云上面的配置再次就不过多介绍搜一下照这看就是了。
有人的这个型号的模块出厂就配置好了串口指令直接使用就可以了。
4G模块上配置阿里云的具体AT指令如下:
+++ //此步骤为进入临时指令模式的流程,该流程具体描述可参看对应模组说明书---->串口配置相关章节
a
a
+ok
AT+WKMOD=MQTT,NOR //此步骤设置模组的工作模式
AT+WKMOD=MQTT,NOR
OK
AT+MQTTSVR=47.93.32.32,1883 //此步骤设 MQTT 服务器 IP(域名)以及端口
AT+MQTTSVR=47.93.32.32,1883
OK
AT+MQTTUSER=HEHEHE //此步骤设 MQTT 服务器用户名
AT+MQTTUSER=HEHEHE
OK
AT+MQTTPSW=123456 //此步骤设 MQTT 服务器密码
AT+MQTTPSW=123456
OK
AT+MQTTCID=02401322081900001968 //此步骤设 MQTT Client ID,此处使用模组自身的 SN 作为 Client ID
AT+MQTTCID=02401322081900001968
OK
AT+MQTTVER=4 //此步骤设 MQTT 服务器版本为 V3.1.1
AT+MQTTVER=4
OK
AT+MQTTSUBTP=1,1,/SubTopic1,0 //此步骤预设订阅的主题,此处使能订阅主题 1,设置主题名
为/SubTopic1
AT+MQTTSUBTP=1,1,/SubTopic1,0
OK
AT+MQTTPUBTP=1,1,/PubTopic1,0,0 //此步骤预设发布的主题,此处使能发布主题 1,设置主题名为/PubTopic1
AT+MQTTPUBTP=1,1,/PubTopic1,0,0
OK
AT+MQTTMOD=1 //此步骤设置 MQTT 通信模式为分发模式
AT+MQTTMOD=1
OK
AT+S //此步骤保存上述写入的参数并重启,重启之后模组会自动联网和连接到 MQTT 服务器
AT+S
+++ //此步骤为进入临时指令模式的流程,该流程具体描述可参看对应模组说明书---->串口配置相关章节
a
a
+ok
这个位置不需要加回车其他位置都需要加回车。
在保存参数之前设置如下:
AT+MQTTPUBTP=2,1,/PubTopic2,1,0
AT+MQTTPUBTP就是设置发布的主题的。
一共可以设置10个发布主题和订阅主题。
发布数据就是你需要发布的主题的需要加上数据比如说我想向第二个发布的数据格式应该为:
2,date
如果要向阿里云的物理模型发送数据为你自己的设置的主题号,加上物理模型需要的JSON格式的数据后面也要加回车。
2,{"params":{"temp":21.60}}
“params”:这是一个键(key),表示参数集合。
“temp”:这是在参数集合中的一个键,通常表示温度。其实就是你设置物理模型的标识符
21.60:这是与键 “temp” 对应的值,表示具体的温度值,单位通常是摄氏度(℃)。
对了忘记说了,上面的配置都是使用的串口调试助手完成的。配置阿里云的MQTT参数时建议把每条指令都事先在串口调试助手上面保存下来。(ps:我刚开始的时候没有先保存,发送+++的时候总是不成功,应为等他回复a的时候需要在3s内发送一个a来不及 )。