来源:蜘蛛抓取(WebSpider)
时间:2018-07-05 01:55
标签:
工业设备物联网平台
物联网平台
MQTT助力,开发快推极具性价比物联网平台及套件
众所周知,物联网的重要价值就在于将万物连接起来后,如何高效地对设备进行控制和管理。在瞬息万变的市场,如何快速开发产品,且便捷、迅速和安全地收集相关设备的数据并进行处理,就成为广大开发者的需求。在早几年,这对硬件开发者来说不但是一个庞大的工作,且还需要昂贵的投资。
而随着这几年来物联网产业链的完善,涌现出了一些开发简易、价格适中的物联网云平台及套件,能够高效地解决上述问题,日渐成为物联网开发者的选择。易通星云科技发展有限公司的&小e开发板&就是当中的一个代表。
最具性价比的MQTT物联网云平台及套件
据易通星云科技发展有限公司的产品总监崔恒齐介绍, 小e开发板是由该公司&开发快&团队打造的首款微信控制的物联网开发板,是采用最具性价比的ESP8266的WIFI 开发板,板载丰富的传感器,可以进行微信指令控制、语音控制,灯光控制,温湿度查询等。代码完全开源,并配备丰富的视频教程,帮助开发者快速的上手。
更为重要的,小 e开发板提供基于MQTT的配套云平台服务&&ET- iLink,用户可以免费的使用公有云平台进行自己的智能硬件的开发。
除了公有云以外,小e开发板还提供了专有的私有云服务。
按崔总的说法,开发快团队推出公有云,一方面验证了商业模式和云平台的可靠性,另一方面,为一些中小型企业,爱好者、创客等那些经济条件比较有限的群体提供免费使用的环境。
而私有云的提出,就是彻底解决了中大型企业为解决数据隐私性、方便性提出的解决方案。
&目前这两种云平台都是按照1元钱一个节点收费,价格非常的惊人,可以算得上是行业最低价格。&Henry强调。&一套传统云平台的开发,人力成本在几十万&,Henry补充说。
开发快团队不但通过私用云的方式保证物联网的产品的安全,在数据传输过程中也加强了安全防护。
崔总表示,开发快所有的产品的ID都是随机生成的,不会被轻易猜测到,另外,在数据传输过程中,我们提供了SSL加密,来保证数据的安全,不被破译;后期,我们会提供独家的端对端的非对称加密的专利技术,来保证数据的安全。另外,我们设备的ID是与MAC地址没有任何关联的,换句话说,即使被人知道了MAC地址,也无法控制产品。
为什么是MQTT
前文提到,物联网云平台是物联网的关键一环,除了需要考量传输稳定性、可靠性以外,开发的简便性也是开发者关注的重点。开发快团队跳过了AMQP、JMS、DDS、甚至HTTP,选择的MQTT物联网协议的原因,正是因为MQTT刚好完美地解决了以上问题。
这个由IBM开发的物联网传输协议,能够为低带宽和不稳定的网络环境(如野外、高温、信号差的地方)中的物联网设备,提供可靠的网络服务。
作为一款专门针对物联网开发的轻量级传输协议。MQTT协议针对低带宽网络,低计算能力的设备,比如单片机等,做了特殊的优化,使得其能适应各种物联网应用场景。
MQTT的设计思想是开源、可靠、轻巧、简单,MQTT的传输格式非常精小,最小的数据包只有2个比特,且无应用消息头。
MQTT可以保证消息的可靠性,它包括三种不同的服务质量(最多只传一次、最少被传一次、一次且只传一次),如果客户端意外掉线,可以使用&遗愿&发布一条消息,同时支持持久订阅。
MQTT在物联网应用中的优势有:
第一点:可靠传输。MQTT可以保证消息可靠安全的传输,它包括三种不同的服务质量(最多只传一次、最少被传一次、一次且只传一次),如果客户端意外掉线,可以使用&遗愿&发布一条消息,因此可以与产品应用开发简易集成。
第二点:消息推送。支持消息实时通知和内容的反向推送,区别于传统的HTTP请求应答的模式、灵活的Pub-Sub以及消息存储和过滤。
第三点:低带宽、低耗能、低成本。占用移动应用程序带宽小,最小的数据包只有2个比特,且无应用消息头,带宽利用率高,耗电量较少。
在物联网时代,万物都接入到物联网,接入网络的节点数巨大,硬件环境千差万别,网络环境也各有差异,这些因素决定了MQTT是最好的选择。
凭借更自由的开发环境。具体来说,就是连接ET-iLink云平台不需要用户对业务逻辑做任何的更改,用户的产品传输的任何指令,开发快团队的云平台会透明的传输给手机或者PC端,实现真正的透明传输,自由开发。
另外,开发快提供了7个平台的SDK,开发者可以在任何异构平台之间进行自由的数据通信,还提供了HTTP与云平台的接口,帮助传统WEB云平台快速的升级成MQTT双向传输的云平台。这样的一个物联网云平台和套件,不正是开发者一直所追求的吗?期望在开发快的支持下,看到更优秀的物联网产品,期望更好的物联网时代到来。
现在小e开发板正在电子发烧友网参加众筹,价格优惠,有兴趣者请点击下面链接参与:
关注电子发烧友微信
有趣有料的资讯及技术干货
下载发烧友APP
打造属于您的人脉电子圈
关注发烧友课堂
锁定最新课程活动及技术直播
曾几何时,科技圈有两个最大的靶子,一个叫乐视,另一个叫小米,这两个公司是科技媒体圈最常用的素材,当找...
发送者只发送一次消息,不进行重试,Broker不会返回确认消息。在Qos0情况下, Broker可能...
安装好MQTT.fx(注意MQTT.fx是java开发的,电脑要安装JDK才能安装打开),一打开里面...
在IHS Markit的一份新白皮书中,面向2017年的全球制造技术市场,分析师们提供了他们博学多闻...
IBM近日携手数十家客户和合作伙伴宣布,推出建立物联网生态系统的重大举措,以更好地推动物联网合作创新...
面对潜力巨大的物联网市场,ATT、Verizon、德国电信、SK电讯等国际运营商已成功搭建开放合作的...
物联网具有碎片化的特点,即便只是其中的一个细分领域也是一个很大的市场。不过即便市场潜力巨大,我们目前...
为了抢攻智能家电市场,Google 14 日推出全新物联网平台“Android Things”的开发...
物联网市场的迅速发展涌现了大量的物联网设备,为了能够体现物联网的价值,物联网平台起到了承上启下的关键...
日,由华强聚丰旗下电子发烧友网举办的2016第三届·中国IoT大会在深圳市南山区科...
据福布斯报道,这一年的物联网(IoT)和工业物联网(IIoT)预测反应出越来越重视基于传感器数据产生...
物联网在实际应用上的开展需要各行各业的参与,并且需要国家政府的主导以及相关法规政策上的扶助,物联网的...
詹姆斯?贺普曼在2014年11月的《哈佛商业评论》之文章《物联网产品如何改变竞争》所提出的物联网技术...
小e开发板自众筹开始便受到业内的高度关注——小e开发板拥有基于IBM的MQTT协议开发的MQTT+...
物联网产业正在迅猛发展,虽然目前还处在物联网连接大规模建立的第一阶段,但越来越多的云计算厂商、物联网...
此前,多家科技媒体报道过的MQTT私有云ET-iLink众筹活动给物联网行业再添惊喜!
诺基亚已经把目光瞄向了物联网,并且从15年下半年底布局不断。当时看诺基亚的一系列举动,只觉得雾里看花...
消息传递作为基本通信机制已经在全世界成功运用。无论是人与人、机器与人还是机器与机器之间,消息传递一直...
通信对物联网来说十分关键,无论是近距离无线传输技术还是移动通信技术,甚至是LPWAN都影响着物联网的...
大家正在讨论的物联网并不简单,我们需要让所有的设备连上网,需要解决设备和控制端通信,需要保证通信的安...
IBM虽犹豫创建云计算商用模型的错误初始策略,但它正积极应对物联网。在周三,它推出了构建物联网相关应...
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司
电信与信息服务业务经营许可证:粤B2-本文原创作者:bt0sea,本文属FreeBuf原创奖励计划,未经许可禁止转载 0 00、前言 最近因为工作关系接触到很多新 本文原创作者:bt0sea,本文属FreeBuf原创奖励计划,未经许可禁止转载0 00、前言最近因为工作关系接触到很多新兴物联网企业。各个企业对自身物联网安全没有一个整体的概念,同时对于解决方案提供商来说,物联网厂商对他们有很重的安全方面的要求。要么自研或者寻找现成的安全解决方案,在这样的背景下,想谈谈自己的观点,说明一下企业级物联网安全如何做。在传统安全走向业务安全的今天,IoT物理网安全也是一个重要发展方向。那么,根据其业务形态可以分为:(1)工业控制物联网(2)车载物联网(3)智能家居物联网(4)。。。他们对安全的需求也不尽相同:工业控制物联网 :涉及到国家安全、再加上目前工业控制网络基本是明文协议很容易遭受攻击。所以很早就有很多安全公司看到这块蛋糕:威努特、匡恩网络等已经完成市场布局。主要产品形态:工控防火墙、工控漏洞挖掘、主机白名单产品。安全需求也不难看出,基本是传统安全的一套思路。 车载物联网 :涉及到驾车人生命安全。但是目前是争标准的时代,据我了解,目前国内厂商也只有360在这方面有所建树。当然在标准没有确定之前,安全厂商都想做升级版的OBD,嵌入安全硬件。国外相关安全厂商产品形态大致是OBD防火墙、云端大数据分析异常监控等。安全需求还是集中在车载核心物联网硬件安全上。 智能家居 :涉及到个人家庭隐私安全。这一块的安全投入,比较少。但是大的家电企业相对来说会多一点。这也是安全厂商的机会。 0 01、安全需求要想做物联网安全,那么首先我们要了解企业级物联网架构。工业控制物联网:这个互联网上很多,就不在这描述了,大致就是工业物联网内外隔离。由一台安装ICS控制软件的计算机上传物联网所需要的数据。车载物联网:一般是由云端、APP、车机(android、Linux ARM)、高级OBD(Linux ARM)组成。智能家居:0 02、安全需求抽象1.物联网通讯协议安全(XMPP、MQTT、自有协议)需要物联网厂商提供提供协议访问API接口,以及访问证书,这样可以更全面的监控物联网设备,更好判断异常现象。针对MQTT协议,如果是XMPP,建议不要使用这种不支持TLS的物联网协议,协议本身就缺乏安全考虑。自有协议,建议是站在巨人的肩膀上做事情,因为你自己造的轮子可能有很多缺陷。其实也不建议用。如果出于成本的考虑,那在协议本身增加部分安全性限制。2.物联网设备安全问题2.1、IoT设备弱口令问题有条件的做一次一密,不允许把密码固化到软件或者物联网设备固件中。否则你的物联网设计就是物联网僵尸中的一员(Mirai)。2.2、IoT操作系统安全问题通用系统漏洞检测,特别是那些可以提权的涉及到ARM的CVE-、CVE-、CVE-。2.3、安全芯片到底能不能解决安全问题个人觉得不是一个好的方向,intel收购Mcafee就是一个例子,最终安全技术没有整合到SoC中,还是ARM的天下。国际巨头都这下场,初创公司不适合做这块。2.4、固件更新有关固件更新的漏洞就更多了,升级没有签名检查、版本降级限制、内容未加密、无法验证来源等。2.5、数据泄露2013年,Target用户数据泄露事件,起因就是通过HVAC供应商物联网系统开始的。3.云管端安全3.1、安全边界设定混乱由于App与IoT技术结合,目前很多物联网和现实当中的App网络互通,导致入侵的可能性。3.2、API安全传统Web安全漏洞同样影响物联网云端Web接口。0 03、企业级IoT安全解决方案1.传统安全防御解决方案针对传统的连接互联网的网络以及传统的云端架构还是需要使用传统边界防护解决方案。1)带防火墙模块硬件IPS:可以限制App访问的端口,以及做通过签名方式对传统的SQLi、XSS等做检测。2)WAF:web应用防火墙:主要是通过上下文语义关联对OWASP Top 10攻击类型做检查和阻断。3)定期对后端web应用、数据库服务器、物联网大数据分析平台等做操作系统、中间件、数据库漏洞扫描。当然建议配合一下渗透测试服务。这样会发现更多问题。2.IoT安全解决方案调研了各个物联网安全公司,大致的解决方案如下:2.1、Agentless IoT设备资产管理1)快速发现连接到您网络IoT设备2)已经连接的IoT设备可视化3)配置检测、基线检测。2.2、快速安全响应1)快速监测到异常终端2)隔离可疑应用程序和停止攻击扩散到IoT网络2.3、通过大数据分析IoT事件,预测其安全状态、给出预防建议。2.4、IoT设备上安装状态防火墙、保证通讯协议安全。0 04、安全解决方案实践了解物联网安全厂商的思路后,其实我们可以总结一下,如果物联网项目本身周期很短,那么可以委托安全公司开发一套针对物联网安全监管平台。传统安全的老三样,其实购买就好。但是针对IoT设备端的安全目前还没一个很好的解决方案,国外的东西买来直接用风险太大。那么,确定了思路后,那么IoT端的安全核心问题在哪里呢?其实不难看出,主要是针对物联网协议的解析和反控。所以,这部分的解决方案必须支持MQTT、XMPP等物联网协议。同时对IoT设备做到资产管理、MQTT协议审计和安全应急响应。那么部署方式如何?为了不干扰正常的物联网业务操作,建议通过端口镜像的方式部署设备。那么,物联网安全管理设备有哪些功能呢?个人建议如下:一、资产管理1.列举硬件设备(1)业务分组、硬件UUID、固件型号、GPS、软件资产2.列举网络拓扑(1)HUB(2)Client3.硬件软件生命周期跟踪(1)软件升级管理(2)漏洞管理4.风险评估(基线扫描)(1)PKI使用检测(2)TLS证书检测(3)应用消息和控制数据包的完整性检测(4)设备防篡改检测(5)客户端证书检测二、MQTT协议审计1.物联网访问流量审计(1)重复认证尝试(暴力破解)(2)尝试发送或订阅许多主题(3)发送无法送达的邮件(4)连接但不发送数据的客户端2.外部流量审计 -App、互联网访问三、安全应急响应1.自动客户端断开机制2.动态访问控制列表(例如IP地址或客户端GUID)3.速率限制和/或阻塞(例如IP地址)0 05、总结本文抛砖引玉和大家聊聊物联网安全,各大安全厂商也在布局物联网安全,几年前就听说梆梆安全已经布局物联网安全。但是不了解是否做有关协议安全相关的事情。有了解的话,大家相互讨论一下。本文原创作者:bt0sea,本文属FreeBuf原创奖励计划,未经许可禁止转载微信公众号 微信扫一扫 关注我们的微信公众号 官方微博 微博扫一扫 关注我们的微博
周一至周日 9:00-18:00(全国免费咨询)
您正在使用移动设备访问,是否切换到手机版?
欢迎访问APISTORE
免费试用,在线咨询
工作时间:& 9:00-24:00您好,欢迎访问本站!
基本上不用你说,IT圈里的人都清楚,物联网(IoT)非常重要并且正以极高的速度飞速增长。据市场研究机构BI Intelligence估计,到2019年物联网设备将会达到233亿部。随着物联网连接越来越受企业关注,部署企业物联网(EIoT)时需要考虑四个关键问题:
1.企业物联网终端设备的数量——到2019年将达到10亿部。
2.物联网设备的数据生成频率——市场研究机构IDC预测,到2025年,全球平均每名接入物联网的人每天要与联网设备进行4800次交互,相当于每18秒交互一次。
3.海量的物联网数据量——IDC预测,全球在2025年将生成的163泽字节数据,其中60%将来自物联网终端并且有半数(大约49泽字节)将存储在企业数据中心内。
4.设备的安全面临严峻挑战——IDC预测,到2025年,存储的企业数据中有45%的敏感数据处于需要被保护但却没有被保护起来的状态。
现在,如果你是一名早期采用者,那么你可能已经构建起了自己的物联网基础设施,或许正在部署端点设备。这时你会发现,在企业物联网领域,自己动手完成这些部署困难重重。另一方面,如果你正打算进入物联网世界,但是又不想自己开发构建方案,那么你应该选择什么平台呢?为了让调研工作更为容易些,我们在此列出了六个领先的企业物联网平台,它们不仅非常优秀而且都是企业级的。
广义的物联网架构
企业物联网的构建模块
在开始接触这些产品之前,让我们来看看企业物联网的构建模块。首先,要考虑自己将使用的端点设备的种类或类型。目前已有成千上万的现成产品可用于原型设计、跟踪车辆和产品、监控环境条件、控制设备,以及报告各种事物的状态。凡是你能说得出的,可能都会有一个现成的设备在等着你来使用。由于大多数平台都没有设备限制,所以我们选择EIoT平台也没有太多的约束。也就是说,仅有少数平台只支持特定设备,且在某些情况下仅支持单一类型的设备。
或许,你可能不得不自己动手DIY,将物联网功能构建到自己的现有流程和产品中。
在端点硬件方面,现在可供使用的单板计算机非常多(例如Arduino、Raspberry Pi和SolidRun的HummingBoard-Gate),你也可以选择其他更为智能的设备。
在通信方面,你可以使用MQTT、HTTP/ HTTPS、AMQP、XMPP、DDS和CoAP等行业标准协议,并轻松找到兼容的EIoT平台。如果端点设备使用了不被支持的协议,那么你可以使用物联网网关对协议进行转换,从而让它们能够与EIoT平台进行通信。
雾计算与物联网
接下来是一个可选的中间服务层,通常被称为雾计算,它们位于端点设备和云之间(这是一个主要的营销战场,因此你会发现这个层有很多种称呼)。在雾计算层,数据聚合、过滤和处理等功能可被用于优化通信带宽。例如,只发送关键数据或摘要以改善通信性能,从而减少数据成本或降低云处理负载(如机器学习或执行统计分析)。
思科的Fog Data Services和微软的Azure IoT Edge都是雾计算产品,不过后者侧重于将过滤和处理功能转移到设备本身上,让设备实际上成为一个额外的端点-设备层,而不是通常认为的雾计算。是否需要雾计算取决于选择的端点设备以及部署环境中的通信限制。
值得指出的是,在需要实时或接近实时交互的物联网情况下(例如,在达到液位时关闭阀门),你的设备要足够智能以低延时或无延时地响应并控制事件,或者是依靠雾计算来处理传感器数据并向执行器发出控制信号。
通常,从端点设备到雾计算服务的延时在几毫秒到几秒之间。将这种延时与将设备或雾计算服务连接至EIoT平台所造成的几秒至几分钟的延时相比较,你会发现雾计算在现实环境中具有重要作用。
物联网网关
在雾计算系统中你会发现另一项服务,即物联网网关。物联网网关最常见的用途之一是作为桥梁连接终端设备,例如通过Wi-Fi连接到另一个媒介,如以太网或蜂窝服务。网关还可以在协议之间进行转换。例如,它们可能会将来自于端点设备的HTTP请求或自定义协议转换为MQTT消息。
托管物联网平台
最后,我们将到达云端上的企业物联网平台核心。这就是托管的平台即服务(PaaS),其会提供发布-订阅(pub-sub)或请求-响应(RR)消息代理系统。使用哪种消息模式取决于设备的可用协议、限制和性能。
物联网数字孪生
许多EIoT平台都提供的一个功能是虚拟端点设备。这些虚拟设备有多种称呼。如,AWS IoT Core把它们称作“设备阴影”,微软则称它们为“孪生”。虚拟端点设备为文档或数据库记录,允许其他设备与实际设备的最后已知或预测的未来状态进行交互,即便实际设备未被连接。例如,一个端点设备将水浴的温度设置为200华氏度,但设备由于某种原因必须断开连接,并且在水浴达到目标温度时可能仍无法重新连接,这时可以设置虚拟的端点设备以显示它们将要实现的目标温度和时间。其他需要与水浴交互的设备此时能够读取设备未来目标状态,而不需要测量设备在线。
企业物联网安全
物联网架构还有一个至关重要的环节,这个环节适用于所有层,即安全性。鉴于不安全的物联网产品带来的问题和相关责任,如2016年对DNS服务管理公司Dyn的大规模分布式拒绝服务(DDoS)攻击,因此强大的安全性是绝对需要的。我们在此列出的所有EIoT解决方案也都有着出色的安全性。
那么,哪个企业物联网平台最符合你的需求呢?最重要的是,成功的企业物联网解决方案需要从端点设备开始,从雾计算层到云端,最后再到EIoT平台都进行严谨的工程设计。在数据被EIoT平台采集后,它们的处理、加工和存储方式将决定数据的可管理性和可操作性,以及EIoT系统的成本和价值。
本文由来源 中国物联网原创,由 iotcn 整理编辑!
最赞的文章
才能发表留言!
用户名或邮箱密码
用户名邮箱密码重复密码已经有帐户?
用户名或电子邮件地址请输入您的用户名或电子邮箱地址。您会收到一封包含创建新密码链接的电子邮件。百万级分布式开源物联网MQTT消息服务器
基于高并发的Erlang/OTP语言平台设计,支持百万级连接和分布式集群,发布订阅模式的开源MQTT消息服务器
完整支持MQTT V3.1/V3.1.1协议规范,扩展支持WebSocket、Stomp、CoAP、MQTT-SN或私有TCP协议
完全开放源码
基于Apache Version 2.0开源协议
百万级并发连接
单节点100万并发MQTT连接峰值负载
完整MQTT协议支持
MQTT V3.1.1协议规范QoS0/1/2消息支持
简便安装部署
跨平台部署在Linux、FreeBSD、Mac OS X或Windows服务器
分布式集群或桥接
双节点负载均衡或多节点分布式集群
扩展模块与插件
LDAP, MySQL, PostgreSQL, Redis, MongoDB扩展插件集成
EMQ 项目为移动推送、移动消息、物联网(IoT)、车联网、智能硬件等应用,提供完全开放源码、百万级连接支持、安装部署简便、容易定制扩展的MQTT消息服务
物联网传感器、智能硬件、移动终端、浏览器、应用服务器与数据服务器通过异步发布订阅模式MQTT消息连接
基于出色的软实时、低延时、高并发、分布式的Erlang/OTP语言平台开发设计
按主题树(Topic Trie)和路由表(Routing Table)发布订阅模式在集群节点间转发路由MQTT消息
EMQ 项目可应用于物联网、车联网、移动推送、移动即时消息、智能硬件智能家居、在线教育智慧医疗、电力石油能源行业
移动即时消息
MQTT协议将在即时消息领域逐渐取代XMPP协议,移动消息例如Facebook Messenger采用MQTT协议,我们为部分客户基于EMQ项目定制了即时消息服务端。
Android、HTML5消息推送
Android客户端通过MQTT协议实现低电量、低带宽消耗的消息推送,ZAKER新闻客户端基于EMQ项目实现单节点90万+连接新闻推送。
物联网M2M、物联网大数据
物联网终端通过MQTT协议实现发布订阅模式的M2M通信,物联网网关通过MQTT协议上报传感器数据到云平台进行大数据分析和存储。
车联网、电动车站桩管理
电动车联网电池监控,电动车、站、桩传感数据采集与分析。鲁能电力基于EMQ项目开发了电动车联网数据采集分析平台。
智能硬件、智能家居、智能电器
智能硬件与移动终端通过MQTT协议实现双向通信与智能控制。智能家居、智能电器通过MQTT协议实时双向连接云端服务器。
智慧城市、智慧医疗、远程教育
智慧城市传感器、智慧医疗终端均可通过MQTT协议实时上报检测数据,远程教育等多媒体客户端可采用MQTT作为控制通道协议。
电力、石油与能源行业
电力、石油、能源等行业户外终端设备,可通过MQTT协议卫星链路推送数据到服务端网络,例如实现石油管道监测系统。
SCADA与工业4.0
采用MQTT协议与物联网架构,改造和实现新型的SCADA系统。工业4.0的工厂网络通过MQTT协议打造消息总线并实现云端互联。
q.emqtt.com:1883
我们在合作伙伴上部署的开放EMQTT集群,开发测试的MQTT客户端无需认证可直接连入
EMQ 开源项目由杭州小莉科技有限公司,专业团队提供安装部署、咨询培训、插件开发、数据集成、项目定制等技术支持。
欢迎云计算基础设施厂商、物联网应用开发厂商、移动互联网应用开发厂商成为EMQTT开源项目合作伙伴
青云 QingCloud
加入合作伙伴
微信二维码
杭州市余杭区仓兴街15号
良仓太炎众创2楼物联网核心之MQTT(一) - STM32 - 意法半导体STM32/STM8技术社区
后使用快捷导航没有帐号?
查看: 4422|回复: 10
物联网核心之MQTT(一)
在线时间46 小时
该用户从未签到主题帖子精华
高级会员, 积分 618, 距离下一级还需 382 积分
& && & MQTT,目前物联网的最主要的协议,基本所有收费的云平台都是基于MQTT协议,比如机智云,和所有的开放云平台比如中国移动的oneNet、百度的云平台也都支持MQTT的接入。虽然MQTT很火,但是目前对MQTT的很少,尤其是在如何移植到嵌入式上来。大部分的平台商的做法都是跟模块商合作把MQTT协议集成到WiFi模块跟GPRS模块里面,捆绑一销售,不让用户过多的了解物联网最核心的东西。& & 在还没有深入去了解MQTT协议之前,总以为是非常复杂的东西,毕竟之前一直想深入,但无奈在浩淼的网络里居然找不到太多实质的资料。随时自己对物联网的不断探索,越来越了解整个物联网的架构,对MQTT了解越来越深入。在这篇文章中将带大家先了解MQTT的协议,在后面的文章,再带大家怎么移植MQTT到STM32上,再到怎么搭建自己的MQTT服务器。& && &MQTT的基础知识这些大家通过百度知道都可以了解到,这里主要深入去剖析MQTT协议的整个通信流程。整个MQTT的知识大家可以去附件里的《MQTT OneNET实现.docx》,这个文档已经写的非常详细,但是如果只是看文字话,大家很难理解。因此我们借助Windows下的MQTT客户端MQTT.fx跟网络抓包工具Wireshark来一步步分析MQTT。名字值流向描述CONNECT<font color="#C-&S客户端请求与服务端建立连接CONNACK<font color="#S-&C服务端确认连接建立PUBLISH<font color="#CóS发布消息PUBACK<font color="#CóS收到发布消息确认PUBREC<font color="#CóS发布消息收到PUBREL<font color="#CóS发布消息释放PUBCOMP<font color="#CóS发布消息完成SUBSCRIBE<font color="#C-&S订阅请求SUBACK<font color="#S-&C订阅确认UNSUBSCRIBE<font color="#C-&S取消订阅UNSUBACK<font color="#S-&C取消订阅确认PING<font color="#C-&S客户端发送PING(连接保活)命令PINGRSP<font color="#S-&CPING命令回复DISCONNECT<font color="#C-&S断开连接& & 上面是MQTT的主要的通信协议,MQTT是基于TCP长连接,首先是先跟MQTT服务器建立TCP连接,然后发送登录请求,要保持长连接,还要定时发心跳包跟服务保持连接。我们先用MQTT.fx来登录开源的MQTT服务看看。& & 安装好MQTT.fx(注意MQTT.fx是java开发的,电脑要安装JDK才能安装打开),一打开里面就默认有一个开源的MQTT服务M2M Eclipse。点开旁边的齿轮(设置按钮)可以看服务器的域名m2m.eclipse.org,端口号1833(MQTT的默认端口号),下面还有个Keep Alive Interval就是心跳的时间。再打开Wireshark,选择要捕获的网络接口,然后再过滤器输入tcp.port==1883后回车,只捕获1883这个端口号的数据包。再点下MQTT.fx的Connect连接服务器,就可以看到Wireshark捕到的数据& & 可以看到MQTT协议中本地给服务器发送了一个Connect登录请求,然后,服务器回应一个ACK,表示登录成功。再双击Connect Command这条数据包,我们可以看到详细的数据包数据& & 上面的解析出来的MQTT协议包的内部,下面是对应的二进制数据,这里我们可以对照附件上资料去了解协议的内容。看这里,大家想是不是如果自己用TCP,再封装发送下面的二进制数据就可以完成MQTT的登录了呢?拿出网络调试助手来,ping下m2m.eclipse.org得到IP地址,用端口号1883连接,然后发送Wireshark捕到的MQTT登录协议的二进制数据,可以看到到服务器回应了 20 02 00 00 表示登录成功。& & 再往下Wireshark捕到的数据包,可以看到每隔一定的时间,本地向服务器发送Ping Request心跳包,相应的服务器也会回应Ping Response。& & 接下来看MQTT最核心的传输协议 Subcribe(定阅)和Publish(推送)。简单来说就是客户端口(比如物联网硬件)Subcribe一个topic(主题)后,其它的客户端(比如手机)向服务器往这个topic 推送 Payload(有效数据),服务器就会把Payload转发给定阅这个topic的客户端(硬件)。这样就实现了客户端(手机)通过服务器(MQTT)远程发送数据给客户端(物联网硬件)。一样用MQTT.fx来实验。先点Subscribe然后面下面输入led再点旁边的Subscribe按钮来定阅led这个topic。然后回到Publish,一样在输入框输入led这个topic,下面大框就是输入要推送的数据,输入on,再点Publish按钮,就把数据推送出去了。再回到Subcribe界面来可以看到右边已经收到有推送过来的数据。如果这是硬件收到这个指令,就可以去控制点亮LED,我们就实现远程控制LED灯。& &想深入了解MQTT这一个过程的话,我们再回到Wireshark,来看看捕获到的数据& & 具体的就不详细的分析了,大家看附件的文档来对照就可以很容易了解到。& & 最后来了解下QoS(定阅等级),分0、1、2三个等级,简单来说是等级越高越可靠。QoS0,就是推送之后就完事了,至于对方有没有收到,收到是什么,数据有没有丢失,都不管。QoS1的话就是你收到推送后,你还得返回一个puback给对方,告诉对方收到了,不然对方会以为你没收到,隔一段时间后重新给你推送,直到你给对方返回一个Puback为止。& & 好了,基本的就写到这,剩下的大家可以根据这个方法对照文档去消化MQTT。后面的文章再教大家移植MQTT到单片机上,大家就可以实现远程的控制了,期待吧。
(811.24 KB, 下载次数: 288)
08:42 上传
点击文件名下载附件
下载积分: ST金币 -1
ST金币 +17
            
      
在线时间135 小时
该用户从未签到主题帖子精华
金牌会员, 积分 1898, 距离下一级还需 3102 积分
帮顶,正在用MQTT,MCU上实现的还没有找到支持TLS加密传输,暂时明码使用。
在线时间2 小时
该用户从未签到主题帖子精华
新手上路, 积分 26, 距离下一级还需 24 积分
赞一个,楼主怎么没有更新呀
            
      
在线时间1 小时
该用户从未签到主题帖子精华
新手上路, 积分 20, 距离下一级还需 30 积分
在线时间6 小时
该用户从未签到主题帖子精华
初级会员, 积分 106, 距离下一级还需 94 积分
            
      
在线时间679 小时
ST金币2474
该用户从未签到主题帖子精华
在线时间293 小时
ST金币2446
该用户从未签到主题帖子精华
金牌会员, 积分 4597, 距离下一级还需 403 积分
顶一个,666
            
      
在线时间151 小时
该用户从未签到主题帖子精华
金牌会员, 积分 2283, 距离下一级还需 2717 积分
虽然没有接触物联网,但要给你赞一个
在线时间387 小时
ST金币1450
该用户从未签到主题帖子精华
金牌会员, 积分 4985, 距离下一级还需 15 积分
            
      
在线时间62 小时
该用户从未签到主题帖子精华
高级会员, 积分 960, 距离下一级还需 40 积分
STM32粉丝勋章Ⅳ
狂欢节专属(智多星)
STM32粉丝勋章Ⅲ
狂欢节专属(分享宝宝)
STM32粉丝勋章Ⅰ
狂欢节专属(微信上墙)
STM32粉丝勋章Ⅱ
狂欢节专属(研讨会问答)
站长推荐 /2
Tel: 3-8064
备案号: 苏ICP备号-2
|||意法半导体STM32/STM8技术社区
Powered by