- 1、本文档共53页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- “基于大数据的深度覆盖全生命周期管理平台”创新报告v11.docx
- 基于BIM的运维管理.docx
- 《基于HoloLens的BIM+MR施工验收软件》开发框架.doc
- 基于TI CC25XX的Zigbee&BLE通信实验.docx
- 基于PPP模式的西昌市智慧交通系统.doc
- 基于Cortex-M3内核STM32嵌入式系统及wifi控制实验.docx
- 基于LabVIEW的压壳Fitting装配与检测系统设计.doc
- 基于3D打印技术的建筑构件深化设计研究.doc
- 第9章 基于LabVIEW的数字信号处理实验.docx
- 基于案件研判的多警种合成作战平台手册.doc
- 2025届衡阳市第八中学高三一诊考试物理试卷含解析.doc
- 2025届湖南省娄底市双峰一中等五校重点中学高三第二次诊断性检测物理试卷含解析.doc
- 天水市第一中学2025届高三第二次联考物理试卷含解析.doc
- 2025届金华市重点中学高三考前热身物理试卷含解析.doc
- 2025届北京市石景山区第九中学高三第四次模拟考试物理试卷含解析.doc
- 江苏扬州市2025届高三第一次模拟考试物理试卷含解析.doc
- 2025届江苏省南通市高级中学高考物理五模试卷含解析.doc
- 广东省清远市华侨中学2025届高三第一次调研测试物理试卷含解析.doc
- 辽宁省凤城市2025届高三第五次模拟考试物理试卷含解析.doc
- 内蒙古巴彦淖尔市重点中学2025届高考仿真卷物理试卷含解析.doc
文档评论(0)