
MQTT是一个轻量的发布订阅模式消息传输协议,专门针对低带宽和不稳定网络环境的物联网应用设计。
MQTT特点:
阿里云的MQTT有两个版本,这里只说没有RocketMQ依赖的311及以上版本。
这里会自动生成用户名密码有很多通信模块只有TCP功能,没有MQTT功能,比如WIFI,W5500等模块,还有一些NBIOT模块,但是又想连接阿里云物联网平台,官方提供了 *** 作系统,需要自己移植,很麻烦,比较难看得懂。就在想有没有一些简单一定的方法。
心想MQTT是基于TCP的,能否使用TCP转MQTT?因此就想使用TCP协议然后转MQTT协议连接阿里云物联网平台,经过试验证明是可以的。
首先我们先分析一下如何登陆接入Onenet平台。
先从它数据格式开始分析。首先我们要从后台取出三个信息,我们以这个为例。
我们把产品ID,设备名称,设备秘钥,简称三要素 (具体是什么看你自己的设备)
其实阿里云物联网平台的MQTT协议用的就是标准的,不过它加入了自己的认证方式。
MQTT协议需要上传四个参数,报活时间,clientID,用户名,密码。
那么阿里云的就在clientID,用户名,密码做了手脚。
clientID比较长,按照一定的格式
用户名:设备名和秘钥组成
密码:使用了加密串进行了加密,有sha1或者MD5加密方式
下面我们来介绍一下
MQTT接入都是发十六进制的数据。
么我们发送的时候就是这样子的一串数据
0x74 0x00 0x04 0x4d 0x51 0x54 0x54 0x04 0xC0 0078 0033 0x61 0x62 0x63 0x7c 0x73 0x65 0x63 0x75 0x72 0x65 0x6d 0x6f 0x64 0x65 0x3d 0x33 0x2c 0x73 0x69 0x67
0x6e 0x6d 0x65 0x74 0x68 0x6f 0x64 0x3d 0x68 0x6d 0x61 0x63 0x73 0x68 0x61 0x31 0x2c 0x74 0x69 0x6d 0x65 0x73 0x74 0x61 0x6d 0x70 0x3d 0x31 0x32 0x30 0x7c 0009
0x35 0x36 0x37 0x38 0x26 0x31 0x32 0x33 0x34 0028 0x32 0x32 0x32 0x37 0x35 0x30 0x44 0x45 0x44 0x46 0x45 0x34 0x46 0x37 0x37 0x34 0x30 0x30 0x32 0x45 0x45 0x38 0x37 0x45 0x45 0x44 0x32 0x39 0x43 0x46 0x44 0x30 0x36 0x33 0x38 0x43 0x35 0x46 0x36 0x36
十六进制解释
数据长度:0x74
协议数据长度 0x00 0x04
协议类型: 0x4d 0x51 0x54 0x54
协议数据: 0x04 0xC0
keepAlive数据:0078
ClientID长度:0033
ClientID: 0x61 0x62 0x63 0x7c 0x73 0x65 0x63 0x75 0x72 0x65 0x6d 0x6f 0x64 0x65 0x3d 0x33 0x2c 0x73 0x69 0x67 0x6e 0x6d 0x65 0x74 0x68 0x6f 0x64 0x3d 0x68 0x6d 0x61 0x63 0x73 0x68 0x61 0x31 0x2c 0x74 0x69 0x6d 0x65 0x73 0x74 0x61 0x6d 0x70 0x3d 0x31 0x32 0x30 0x7c
用户名:0009
用户名: 0x35 0x36 0x37 0x38 0x26 0x31 0x32 0x33 0x34
密码长度:0028
密码: 0x32 0x32 0x32 0x37 0x35 0x30 0x44 0x45 0x44 0x46 0x45 0x34 0x46 0x37 0x37 0x34 0x30 0x30 0x32 0x45 0x45 0x38 0x37 0x45 0x45 0x44 0x32 0x39 0x43 0x46 0x44 0x30 0x36 0x33 0x38 0x43 0x35 0x46 0x36 0x36复制代码上面的就是连接服务器的连接包
下面呢,我们来做个发布包(上传数据到服务器)
0x30 0x1D 0009 2f7379732f706f7374 0x7b 0x70 0x61 0x72 0x61 0x6d 0x73 0x3a 0x7b 0x74 0x65 0x6d 0x70 0x3a 0x31 0x30 0x7d 0x7d
十六进制数据解释
数据头:0x30
数据长度:0x1D
TopicName数据长度:0009
TopicName数据内容:2f7379732f706f7374
主体json数据: 0x7b 0x70 0x61 0x72 0x61 0x6d 0x73 0x3a 0x7b 0x74 0x65 0x6d 0x70 0x3a 0x31 0x30 0x7d 0x7d复制代码以上就是连接阿里云的数据包格式及发布数据的格式,由于时间问题没有做订阅的数据包分析,下一次更新订阅的内容。不宜比较。
1、阿里云物联网平台是向下连接海量设备,支撑设备数据采集上云;向上提供云端API,指令数据通过API调用下发至设备端,实现远程控制。
2、开源是把源代码开放,使用者只要不违反开源平台的相关规定,就可以进行相关修改开发,Linux系统就是开源系统,只要有能力,就可以修改Linux系统的内核代码,实现想要的变态功能。是。第一次使用物联网模块平台服务时,需要注册阿里云账号并登录阿里云IoT网站去开通该服务,才能够使用物联网平台下的各服务功能。物联网是一个基于互联网,让所有能够被独立寻址的普通物理对象实现互联互通,从而提供智能服务的网络。在会上,阿里云计算业务总监刘克鸿在演讲中表示,现在云是处于如何使用它的一个阶段。 图:阿里云计算业务总监刘克鸿 刘克鸿称,云大范围的使用主要基于两点
:第一,互联网一定是这个社会的基础,
第二,云计算这个云是互联网的基础。云不仅仅在互联网应用上使用,现在越来越多的企业应用部署在云端。以前,在做一个应用解决方案时,要考虑企业的网络基础设施,硬件基础设施,软件基础设施等问题。现在通过宽带费用降低成本都可以交给云去做,南北网络的问题也可以由云来解决。 他还说到,硬件的可靠性,可升级,成本优势都可以由云直接带过来,架构的复杂性,可用性,可靠性也是云统一可以解决的。系统的运行维护由云的提供商统一做好,基于云的集成方式安全性、抗攻击性是天然的,云的集成界面少,不用跟硬件和软件的提供商打交道,前期投入也少。 对于基于云来进行企业应用解决方案的集成有哪些好处,刘克鸿说,第一,架构上比较简单统一。云对数据的集中和打通是天然的,云也可以把架构的复杂性、伸缩性、可用性、可靠性这些问题天然的解决。
第二,合作模式比较简单,无需多方谈判,运维是由云服务提供商统一来提供,无后顾之忧。 最后,关于云安全,他说,世界上不存在完全安全的东西,云本身还是非常安全的。从集成的角度来讲,使用云的方式是区别于传统的。以下是两种获取方式的简介:
1、阿里云控制台:登录阿里云物联网平台控制台,在左侧导航栏中选择“日志服务”,即可查看所有日志相关的内容。您可以选择不同的查询方式(如按时间范围、关键字等),然后导出日志数据,并在小程序中展示。
2、API/SDK:使用阿里云物联网平台提供的API/SDK,可以直接调用相应的接口获取日志数据。您需要先进行身份验证(如AccessKeyID和AccessKeySecret),然后按照接口文档中的说明,设置相应的参数和请求格式,就可以成功获取日志数据了。最后将获取到的数据解析并在小程序中展示即可。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)