
MQTT协议是Message Queuing Telemetry Transport的缩写,中文名叫作消息队列遥测传输。是一个即时通讯协议,该协议支持所有平台,可以当作传感器来使用,举个例子,你仅仅在家通过此协议制造一个“传感器”,家里有医疗设备和装置并且安上了无线发射器,这样很适合那些有旧疾而且需要定期检查的病人们,在家就可以用设备自我检查之后通过无线MQTT协议将检查结果发送给负责你的医生,医生可以随时查看你的健康状况,并给出合理的建议,这样极大地方便了用户和医生的交流,非常便利。所以在推送信息和快速即时方面MQTT协议发展前景很是可观。
而TCP协议是学过计算机的人都比较熟悉的协议,分了四层,面向连接又可靠,可以用于文件传输、远程登陆、发送邮件等,但传输速度较慢,要求也比较多。这两个协议中大多数人都会推荐MQTT协议,因为MQTT是建立在TCP基础之上的,光实时性这一点就符合许多人的要求,现在信息高速时代大家要的第一点就是快速,让生活方便,并且比TCP有过之而无不及。
我也相信在未来MQTT协议会出现在我们的生活各个方面,这样灵活便捷的协议如果我们很好地利用,对我们信息技术的发展一定有着很大的帮助,这也是移动互联网发展的特色了吧。其实也不能绝对性地说MQTT比TCP好,只能说它功能更加全面,适应时代发展的要求,所以推荐选择它。
现在MQTT协议国内外也在逐渐应用,相信它会发展得越来越好的。
1Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。2MQTT协议是应用层协议不依赖长连接,适合弱网络。通过topic缓存信息。符合物联网设备的使用场景。因为通过topic缓存信息,因此可以实现通过topic与多个端的一对多连接,而不是设备与设备的多对多连接,节省了能耗及带宽。
MQTT的心跳,及非信息的报文,较Websocket更少,更节省带宽及能耗。更适用于物理网的多种网络协议。
3WebSocket和>mqtt与socket的区别有:
1、mqtt协议是为工作在低带宽、不可靠网络的远程传感器和控制设备通讯而设计的协议,而WebSocket则是为了浏览器与服务器全双工通信的一种协议。
2、mqtt是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。Socket是HTML5一种新的协议。
MQTT是一个基于客户端-服务器的消息发布、订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器、通信和物联网。其在智能家居、及一些小型化设备中已广泛使用。MQTT通信协议的基本介绍参考文章 NT35 MQTT通信 ,本篇给出阿里云的基本 *** 作,NT35E通过订阅阿里云的主题&发布信息与阿里云平台相互通信。
登录阿里云 → 工作台 → 物联网平台 → 进入控制台→ 公共实例
阿里云默认通信协议为MQTT,不需要特殊选择,用户按照如下步骤创建自己的产品:
创建产品 → 添加设备
在"查看"标签中,包含了MQTT连接的基本三元组信息,也就是后面设备要填充的基本参数
用户每定义一类产品都会自动生成对应的Topic列表,当然我们也可以"自定义Topic"便于自己测试。
指令解析参考《Lierda NT35E&NT26E-CN AT命令手册》,这里给出使用到的AT指令对应参数说明以便于理解。
AT+LMQTTCFG=cloud,<tcpconnectID>[,<cloud _ type>,<data_type > ]
<tcpconnectID> 。MQTT Socket 标识符。范围:0~4。
<cloud_type>整型。2 alibaba,其他参数指定其他平台
<data_type>整型。阿里云平台 1 json数据
AT+LMQTTCFG="cloud",0,2,1 对应就是对接阿里云平台,发送json格式的数据
AT+LMQTTCFG=aliauth,<tcpconnectID>[,<product_key>,<device_name>,<device_secret>]
填充阿里云平台中设备的三元组信息
AT+LMQTTCFG="aliauth",0,"a1JszCpjS61","NT35E_06011","390358fc595040aa73221e8393aba86c"
这部分是模组进行TCP链路连接(需抓包确认)
AT+LMQTTOPEN=<tcpconnectID>,<host_name>,<port>
host_name对应阿里云 "设备信息"→"MQTT连接参数" 中的 "mqttHostUrl"
AT+LMQTTOPEN=0,"a1JszCpjS61iot-as-mqttcn-shanghaialiyuncscom",1883
模组作为客户端,通过MQTT协议连接到服务器(需抓包确认)
AT+LMQTTCONN=<tcpconnectID>[,<clientID>[,<username>[,<password>]]]
<clientID>字符串型。客户端标识符。用户可以随便定义。 <username>,<password> 不需要填写
AT+LMQTTCONN=0,"NT35E"
AT+LMQTTSUBUNSUB=<tcpconnectID>,<subflag>,<msgID>,<topic1>[,<qos1>[,<topic2>[,<qos2>]d…]]
<subflag>整型。消息类型 0 订阅 1 取消订阅
<msgID>整型。数据包消息标识符。范围:0~65535。
<topic>带双引号的字符串型。客户端订阅或者退订的主题。长度范围:0~256 字节。
<qos>整型。客户端发送订阅消息(SUBSCRIBE)的 QoS 等级,此时为必选参数。2 正好一次,该主题下的消息确保接收端仅接收到一次
AT+LMQTTSUBUNSUB=0,0,1,"/a1JszCpjS61/ NT35E_06011 /user/COMMUTEST",2
这里注意<topic>对应参数的替换,里面的deviceName需要替换。
订阅主题之后,服务器下发的数据模组就可以正常接收了。模组下发位置
发布消息在对应的设备目录下,如果有设备"订阅"对应的消息,平台"发布"相应的数据设备就可以接收到了。
AT+LMQTTPUB=<tcpconnectID>,<msgID>,<qos>,<retain>,<topic>,<msglen>,<msg>
<msgID>整型。 0~65535。任意定义,但<qos>=0 时,该参数值只能为0。
<qos>整型。 0 最多一次 1 至少一次 2 正好一次
<retain>整型 。服务器是否保存该消息。0 不保存 1 保存
<topic>带双引号的字符串型。 客户端发布消息的主题。长度范围:0~256 字节
<msglen>整型 。指定的消息数据长度。范围:0~1460。
<msg>字符串型。 需要发布的消息数据。
AT+LMQTTPUB=0,0,0,1,"/a1JszCpjS61/ NT35E_06011 /user/COMMUTEST",10,"1122334455"
注意刚刚自己创建的主题属性是" 发布和订阅 ",所以模组发送该主题的信息,阿里云也是可以收到的
注意这里模组发送数据的时候,也推送了自己发送的数据,因为刚刚订阅了这个主题,所以模组订阅(收)到了对应的数据
前面我们通过NT35E与平台进行信息交互,那么为什么是这样填写对应的参数呢,每个参数对应的说明在阿里云上是什么样的呢,用户可以查看阿里云的<帮助文档>进行确认。
上面我们使用三元组的方式( 一机一密 )实现NT35E与阿里云平台通信,但实际生产过程中该方式不好实现,比如工厂有1000个设备生产,如果每个设备都复制不同的三元组,很难实现工厂批量化生产,此时可以通过 一型一密 的通信方式解决该问题。
一型一密模组端实现方式后续更新。
问题1:工业物联网是什么?
简单来说,就是物联网在工业控制上的具体应用。
问题2:SSL/TLS是什么?
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种 安全协议 。TLS与SSL在传输层对网络连接进行加密。大部分互联网登录都是用的SSL/TLS,可以去网易邮箱>物联网平台为设备提供安全可靠的连接通信能力,向下连接海量设备,支撑设备数据采集上云;向上提供云端API,指令数据通过API调用下发至设备端,实现远程控制。
物联网平台也提供了其他增值能力,如设备管理、规则引擎、数据分析、边缘计算等,为各类IoT场景和行业开发者赋能。
如下是共享单车基于物联网平台的解决方案。
物联网平台提供边缘计算能力,支持在离设备最近的位置构建边缘计算节点处理设备数据。
在断网或弱网情况下,边缘计算可缓存设备数据,网络恢复后,自动将数据同步至云端。
提供多种业务逻辑的开发和运行框架,包括场景联动、函数计算和流式计算,各框架均支持云端开发、动态部署。
边缘计算能力允许在最靠近设备的地方构建边缘计算节点,过滤清洗设备数据,并将处理后的数据上传至云平台。
物联网应用可广泛应用于:智能生活、智能工业、智能楼宇、环境保护、农业水利、能源监控等环境。计算平台主要涉及:
开发者使用设备接入SDK,将非标设备转换成标准物模型,就近接入网关,从而实现设备的管理和控制。
设备连接到网关后,网关可以实现设备数据的采集、流转、存储、分析和上报设备数据至云端,同时网关提供规则引擎、函数计算引擎,方便场景编排和业务扩展。
设备数据上传云端后,可以结合云功能,如大数据、AI学习等,通过标准API接口,实现更多功能和应用。
物联网 (IoT) 设备必须连接互联网。通过连接到互联网,设备就能相互协作,以及与后端服务协同工作。互联网的基础网络协议是 TCP/IP。MQTT(Message Queue Telemetry Transport,消息队列遥测传输) 是基于 TCP/IP 协议栈而构建的,已成为 IoT 通信的标准。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)