首先确认下4G模块供电是否正常,不能使用TTL串口模块供电,其不能满足4G模块工作所需电流。
前期我们先使用串口助手AT指令调试 ,下面是官方给出的流程图,出自这里AT固件MQTT测试实例 · 银尔达电子,不过里面没有给出onenet的连接实例。
AT固件MQTT测试实例 · 银尔达电子跟着这个链接的教程,直到AT+CISFR发送后,我们就开始使用AT+MCONNECT尝试连接onenet.
通过下方网址进入onenet物联网开发云平台
https://open.iot.10086.cn/console/product/own
首先点击左边的产品开发,点击创建产品
这里产品品类随便写就好了,智能化方式我选的是设备接入,另一个没试过。
这里4G模块联网方式一般选择蜂窝,节点类型直连设备,使用MQTT和OneJson,其他的随便写或者不写也可以。
创建完产品之后,在左边点击设备管理,在右侧点击添加设备,出来的弹窗所属产品选择刚刚创建的,产品名称填写,后面需要用。
点击设备右侧的详情,可以看到产品的密钥,ID
我们需要用生成token,这里的res 填入 products/{你的产品ID}/devices/{设备名称}
et填入往后面算十年的时间戳,十年完全够了,时间戳(Unix timestamp)转换工具 - 在线工具
key填入设备密钥 填写完成后点击生成 token.
AT+MCONFIG="4G","lm33U5A7Xw","version=2018-10-31&res=products%2FWf5IXIGcZn%2Fdevices%2F868655072230313&et=1721630715&method=md5&sign=DPqCcsPQAQok9Gt7mNPTbA%3D%3D"
//这里参数分别填入的是{设备名称},{产品ID},{token}
OK
AT+MIPSTART="studio-mqtt.heclouds.com",1883 //这里填入onenet的服务器地址和端口号
OK
CONNECT OK
AT+MCONNECT=1,120//心跳建议60~300秒,这里设置120秒
OK
CONNACK OK//返回这个才表示连接上云平台。
可以在onenet看到设备状态变成在线状态。
接下来我们来讲如何接收onenet下发的命令。
首先4G模块需要订阅一个topic,onenet的topic格式如下通信主题_开发者文档_OneNET
发送下面AT指令订阅主题,中间两个参数是产品ID和设备名称
AT+MSUB="$sys/lm33U5A7Xw/4G/#",0
OK
SUBACK
之后再onenet云平台,按照下面图片,从上到下依次点击完成命令下发
再串口助手这里成功收到消息,接收数据成功
+MSUB: "$sys/lm33U5A7Xw/4G/thing/property/set",56 byte,{"id":"39","version":"1.0","params":{"AlarmState":true}}
接下来我们讲下上传数据,首先AT指令订阅主题
AT+MPUB="$sys/lm33U5A7Xw/4G/thing/property/post",0,0,"{\22id\22:\22123\22,\22params\22:{\22AlarmState\22:{\22value\22:false}}}"
OK
这里红色部分是需要改成自己的参数的,id号我随便写123的,AlarmState是参数的标识符,flase是bool类型,不用加/22
注意数据中的"号,要用\22替代。在实际值使用中\本身就要转义,在MCU实际格式是\\22,如:
AT+MPUB=pubtopic1,0,0,"{\\22test\\22:\\22abc\\22}"\r
发送完后返回OK,在onenet可以看到布防状态被修改成关了
参考链接