描述:基于有方N10模组,采用MCU+N10的方式,通过AT指令实现连接阿里云(MQTT),订阅topic和向topic发送消息。
基于有方N10模组,采用MCU+N10的方式,通过AT指令实现连接阿里云(MQTT),订阅topic和向topic发送消息。
一、在阿里云物联网平台创建一个产品,并添加设备
至此我们已经可以得到连接阿里云物联网的三元参数了。
其中ProductKey,DeviceName,DeviceSecret三个参数就是连接阿里云物联网鉴权的参数。
二、设备端实现连接阿里云物联网套件(AT指令结尾需添加"\r\n",以下示例命令不显式添加,注意使用时补上)
1、检测AT指令通信是否正常
命令:AT
2、创建PPP链接
命令:AT+XIIC=1
3、注册阿里云物联网套件鉴权信息
命令:AT+CLOUDHDAUTH=UUyXwNSvTcm,play001,YhQTfo06ZlBV76ukJnk4sIA6QwvqfpAT
其中,参数依次为第一节中创建的三元参数——ProductKey,DeviceName,DeviceSecret
4、配置MQTT参数
命令:AT+CLOUDCONN=60,0,4
5、订阅需要subscribe的参数
命令:AT+CLOUDSUB=/UUyXwNSvTcm/play001/get,0
成功返回:+CLOUDSUBACK: <OK>
说明:订阅的topic需要在云端创建,阿里云物联网套件默认是有几个topic的,可以直接订阅
在设备管理界面,点击左侧“Topic列表”
至此,连接阿里云物联网套件和订阅topic的流程已经完成。
三、阿里云物联网套件通信
1、向阿里云物联网套件中的topic发送消息:
命令:AT+CLOUDPUB=/shadow/update/UUyXwNSvTcm/play001,0,{"method":"get"}
成功返回:+CLOUDPUBACK: <OK>
+CLOUDPUBLISH:13829,/shadow/get/XZ17Rf7j8A8/0002,162,{"method":"reply","payload":{"status":"error","content":{"errorcode":"407","errormessage":"shadow content is empty"}},"clientToken":"null","timestamp":1510111983}
3、接收到未订阅的topic消息示例:
+PUBLISHDEFAULT:24760,/1000146090/Ndevice_T1/neo001,5,hello
可以看到,接收到的订阅和未订阅的topic消息,主要是以AT指令中数据头关键字不同作为判断依据。