移远EC20模组MQTT连接阿里云平台

22 篇文章 13 订阅

一.实现原理

        在开始操作前说一下MQTT的实现的原理,MQTT协议(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,是为大量计算能力有限,且工作在低带宽,不可靠的网络的远程传感器和控制设备通讯而设计的协议
利用MQTT协议是一种基于二进制消息的发布/订阅编程模式的消息协议,下面的应用程序先在阿里云IoT平台订阅(Subscribe)一个Topic成功,然后自己向该Topic做发布(Publish)动作,阿里云IoT平台收到之后,就会原样推送回这个应用程序,因为该程序之前已经通过订阅(Subscribe)动作成为该Topic的一个接收者,发布到这个Topic上的任何消息,都会被推送到已订阅该Topic的所有终端上

二.注册登陆阿里云账户

https://www.aliyun.com/

1.产品->物联网->物联网设备接入,点击进入

       在这里插入图片描述

2.进入管理控制台

        在这里插入图片描述

如果没有开通阿里云物联网平台的,需要先开通一下,免费的。


三.创建产品和设备

1.登录物联网平台控制。
2.创建产品。
        左侧导航栏选择设备管理 -> 产品。在产品管理页面,单击创建产品。

        在这里插入图片描述

        单击完成。产品将自动出现在产品列表中。
3.创建设备。
        左侧导航栏选中设备管理 > 设备,进入设备管理页面。
        单击添加设备。选中上一步创建的产品,输入设备名称(DeviceName),设置设备备注名,单击完成。

        在这里插入图片描述

        记录设备证书内容。设备证书包含ProductKey、DeviceName和DeviceSecret。设备证书设备后续与物联网平台交流的重要凭证。


四.设备上阿里云

        此处用到的调试工具是串口调试助手,网上很多这种工具。
1.AT+CGATT? //查询附着和分离GPRS业务,返回+CGATT:1附着状态,返回+CGATT:0分离状态
2.AT+CREG? //查询网络注册信息,返回+CREG:0,1成功注册上网络,返回+CREG:0,2正在注册,返回+CREG:0,5处于漫游状态
3.AT+CSQ //信号质量查询

在这里插入图片描述

与MQTT有关的AT指令,移远官方文档网址:
https://download.csdn.net/download/qq_42908042/11445459


4.AT+QMTCFG="recv/mode",0,0,1 //配置为接受模式
5.AT+QMTCFG="aliauth","0","ProductKey","DeviceName","DeviceSecret" //配置阿里云上的设备信息
6. AT+QMTOPEN=0,"iot-as-mqtt.cn-shanghai.aliyuncs.com",1883 //为MQTT客户机打开网络

在这里插入图片描述

7.AT+QMTCONN=0,"DeviceName" //连接MQTT服务器

在这里插入图片描述

此时,阿里云物联网平台的设备已经连接上
注:返回+QMTCONN:0,0,0才成功,返回其他参数则重复4,5,6步

在这里插入图片描述

 

8.AT+QMTSUB=0,1,"/a10hC2CWMGC/device1/user/get",0 //订阅服务器主题

在这里插入图片描述

主题地址查看方式:点击设备旁的查看,进入Topic列表

在这里插入图片描述

服务器端发布消息到EC20,点击发布消息

在这里插入图片描述

EC20模组收到消息

在这里插入图片描述

9.

AT+QMTPUBEX=0,0,0,0,"/sys/a10hC2CWMGC/device1/thing/event/property/post",51   //发布消息到阿里云服务器

在这里插入图片描述

在这里插入图片描述


        我看移远的官方文档发现设备发布消息使用的是AT+QMTPUBEX,而不是AT+QMTPUB,本人也试过AT+QMTPUB,发现确实出现问题。AT+QMTPUBEX最后一个参数是数据的长度,可以自己使用函数strlen()去查看自己的数据长度是多少。

在这里插入图片描述

接下来输入自己的数据

在这里插入图片描述

现在讲一下数据哪里来,格式是什么样
点击产品->查看设备对应的产品->功能定义->添加功能
也可以自定义功能,一定要记住标识符,这是数据能否上场成功的一个关键要素。

在这里插入图片描述

这里数据的格式是JSON格式,但是发现EC20模组发送数据内容中不能包含双引号。而JSON格式里的字符串是用双引号隔开的,后面发现干脆不用双引号阿里云就能解析成功。
此时设备上的数据已经成功上传到阿里云

在这里插入图片描述

————————————————
版权声明:本文为CSDN博主「liushoujin」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42908042/article/details/97641506

https://blog.csdn.net/qq_42908042/article/details/97641506?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-10.edu_weight&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-10.edu_weight

  • 3
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值