基于MQTT的智能家居方案.docx

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于MQTT的智能家居方案 关键字:MQTT、ESP8266、Arduino、OpenWrt 物联网智能家居(Home automation)是当前很热门的话题,本文介绍“基于MQTT的智能家居方案”,本方案具有易于实现、且价格低廉之优点。尤其对ESP8266玩家来说,是一个不错的选择。 一、MQTT简介 MQTT是IBM开发的一个轻量级的即时通讯协议,如今已经成为OASIS规范。MQTT是面向物联网和M2M(Machine to Machine)的连接协议,采用发布/订阅消息传输机制。 Subscriber Subscriber Subscriber Subscriber Publisher 发布者 MQTT代理 订阅者 订阅者 MQTT 通讯由MQTT服务器和MQTT客户端两部分组成。图中MQTT代理就是一台放在互联网上的MQTT服务器,在本方案中MQTT服务器安装在你家中的无线路由器上。ESP8266模块或手机作为MQTT的客户端,它们即可以是发布者,也可以是订阅者,或者二者兼之。 1.1 发布/订阅(Publish/Subscribe)模式 常用的请求/应答(Request/Response)同步模式需要将客户端与服务器直接连接起来。而MQTT则不同,它采用的是发布/订阅(Publish/Subscribe)模式——发布消息的客户(发布者Publish)与订阅消息的客户(订阅者Subscribe)之间无须耦合在一起,这意味着发布者和订阅者之间并不需要直接建立联系。 一个典型的同步请求/回答的场景是——你打电话给朋友,一直要等到朋友接了电话才能够开始交流。而一个典型的异步发布/订阅的场景是——给一个好友发电子邮件就不一样了,你发送电子邮件后该干嘛干嘛,好友们在有空时去查看邮件就是了。 发布/订阅模式带来的好处是: ? 发布者与订阅者不必彼此了解,只要认识同一个消息代理即可。 ? 发布者和订阅者不需要交互,发布者无需等待订阅者确认而导致锁定。 ? 发布者和订阅者不需要同时在线,可以自由选择时间来消费消息。 1.2 主题(Topic) MQTT是通过“主题”对消息进行分类的,本质上就是一个UTF-8的字符串。主题并不需要创建,直接使用即可。客户端可以发布或订阅特定的主题(Topic),MQTT服务器扮演发布者与订阅者之间的broker(经纪人),负责接收和推送消息。 消息的主题可以通过“分隔符”进行分层,还可通过“通配符”进行过滤: 层级分隔符 / 主题可以通过反斜杠 / 来表示多个层级关系,例如: building-b/floor-5 代表B楼5层的设备。 ● 多层通配符 # 主题可以通过通配符 # 进行多层过滤,例如: building-b/# 代表B楼所有的设备。 如果你订阅了finance/stock/ibm/#,你就可以接收到以下这些主题的消息: finance/stock/ibm finance/stock/ibm finance/stock/ibm/closingprice finance/stock/ibm/currentprice 1 2 3 ● 单层通配符 + 主题可以通过通配符 + 进行单层过滤,例如: +/floor-5 代表任何一个楼的5层的设备。 注意:主题aaa/+ 可以匹配 aaa/bbb,aaa/ccc,但是不能匹配aaa/bbb/ccc。 二、搭建自己的MQTT服务器 互联网上有许多MQTT服务器(例如:亚马逊、百度、腾讯、机智云等),如果你不想搭建自己的MQTT服务器,也可以直接上网注册使用。但免费使用会受到一些限制,且长期使用还需要一些费用。 目前,使用最广泛的一款MQTT服务器软件是mosquitto,它是一款轻量级软件,可以安装在Windows、MAC、Linux系统的计算机上,但这样做需要另外的硬件开销。 无线路由器是家庭上网的必备设备,将mosquitto服务器(broker)安装在无线路由器上是一个非常不错的选择——不仅省去了服务器硬件,还可节省服务器的用电花费。 我看了一下网上的教程,均是教你如何编译带mosquitto程序的OpenWrt固件。这样做不仅费时费力,且非一般人的能力可为。其实,OpenWrt的14.07、15.05版本的软件源中都提供有mosquitto程序,只要简单安装一下即可。我这里以OpenWrt 15.05版本固件为例,说明如下: 2.1 OpenWrt固件的下载与刷写 这里我建议你不妨先到淘宝上购买一台二手硬改路由器(如:TL-WR2041N、FAST FWR200),价格只有30元左右。 我这里使用的是“明月永在”最新金鸡版固件。其下载地址为: HYPERLINK / / 。所需下载的固件名称如下: TL-WR2041N

文档评论(0)

小蜗牛 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档