《DIY智慧小屋—带你玩转物联网》——简述MQTT的工作原理及与智慧小屋的交互

一、MQTT概述:
MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。

二、MQTT协议特点和工作原理:
MQTT协议运行在TCP/IP或其他网络协议,提供有序、无损、双向连接。其特点包括:

  1. 使用的发布/订阅消息模式,它提供了一对多消息分发,以实现与应用程序的解耦。
  2. 对负载内容屏蔽的消息传输机制。
  3. 对传输消息有三种服务质量(QoS):
    a. 最多一次,这一级别会发生消息丢失或重复,消息发布依赖于底层TCP/IP网络。即:<=1
    b. 至多一次,这一级别会确保消息到达,但消息可能会重复。即:>=1
    c. 只有一次,确保消息只有一次到达。即:=1。在一些要求比较严格的计费系统中,可以使用此级别
  4. 数据传输和协议交换的最小化(协议头部只有2字节),以减少网络流量
  5. 通知机制,异常中断时通知传输双方
  6. 使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制;

三、系统组成:
实现MQTT协议需要:客户端和服务器端
MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。
MQTT传输的消息分为:主题(Topic)和负载(payload)两部分
四、智慧小屋与MQTT
阿里云平台提供数据解析功能,根据提交的脚本,将设备原始数据在云端转换成结构化的JSON格式,方便云上业务系统存储和展示。
小屋通过自定义Topic发布数据,且Topic携带解析标记时,阿里云平台接收数据后,先调用在控制台提交的业务数据解析脚本,将设备上报的原始数据解析为JSON结构体,再进行数据流转处理。
对于小屋:
设备Topic标记需要脚本解析
调用脚本将原始报文解析为JSON格式
输出处理后的Topc和Payload
规则引擎处理后数据
------->智慧小屋

以上信息均来自网络。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随着家电设备的智能化,家电设备能够通过传感器感知周边环境,能够提供更加优良的用户体验。与此同时,随着互联网的浪潮以及智能手机性能以及体验的不断发展,智能手机已成成为人们连接网络的主流终端。而物联网的不断发展,家电设备可以接入到网络中,这样智能手机可以随时通过网络查看设备状态、发送控制命令。目前市场上的手机控软件都是和智能设备一对一绑定,若有多个设备就需要多个手机应用软件进行管理。若能设计一种能够整合不同设备信息,并由一款应用软件进行统一管理的系统,将极大提高用户的使用体验,使得智能家居越来越普遍。 在这种需求的驱动下,本文设计并实现了一套基于 MQTT 推送协议的通用智能家居管理系统,解决硬件设备和信息上的异构性,提供一款可以显示并控制多种设备的手机应用软件。该系统包括基于树莓派系统的网关、基于 Openwrt 系统的系统服务端和iOS 智能手机作为控制端,整合多种家电设备的控制于一体,提供通用化的管理系统平台。 本系统通过在系统服务端与家电设备之间添加网关设备以连接不同通信方式的家电设备,将设备信息规格化通过 Wifi 通信上传到系统服务端,以此解决硬件上的异构性。在信息整合上采用元编程的方式解决信息上的异构性,对设备和设备属性进行分类抽象,极大提高了系统整合不同设备以及设备属性上的扩展性。同时抽象化的设备和设备属性显为手机端界面示的统一化提供了数据基础,能够将数据直接映射iOS系统 UIKit 的显示控件上,让手机端在界面设计时,可以通过预先设定映射匹配方式,快速添加新设备新属性,无需再通过代码添加。通过这种在硬件以及信息管理上的通用方案,本系统能够建立起一个可以适用于大部分家电管理的平台。在信息共享以及传输上,本系统采用 MQTT 推送协议作为通信方式,由于本系统中多数设备都属于嵌入式设备,设备的计算资源十分有限,而 MQTT 推送协议对系统 CPU 以及内存资源的低占用率正适用于本系统。 最后本文对系统的各个模块特别是手机端模块进行了黑盒测试,验证系统的可行性以及可靠性。同时,也对采用 MQTT 推送协议的通信方案和采用 HTTP 长连接方案进行性能上的测试和对比,包括内存占用、CPU 占用率和能耗等三个方面。结果显示MQTT 推送协议方案在三个方面都占有优势,达到了设计要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值