基于MQTT的智能家庭网关研究与设计
四川师范大学
大学生创新创业训练计划项目
申 报 书
| 项目名称 | 基于MQTT的智能家庭网关研究与设计 |
|---|---|
| 项目负责人 | 余鑫 |
| 学号 | 2016110252 |
| 性别 | 男 |
| 班级 | 计算机科学学院2016级2班 |
| 903426943@qq.com | |
| 联系电话 | 15984823634 |
一、项目简介
当前物联网中数据的增长大大超过了网络带宽的增速, 这对物联网通信提出了巨大挑战,且家庭网关在家庭物联网的中枢承载着必不可少的作用;而通信协议又是通信中的关键问题。论述了物联网对通信协议的要求, 并认为MQTT协议符合了物联网通信的要求。在此基础上决定自主开发基于MQTT协议的一种智能家庭网关,并且能够实现异构的智能家居设备进行无缝集成。
二、申请理由
立项依据
随着科学技术的不断发展, 信息技术的不断提升, 互联网社会成为主流, 国家对物联网、互联网的大力支持, 使得物联网在不断地走进人们的生活, 成为我们生活中不可缺少的一部分。同时, 智能家居在此环境下得到了一定的发展, 以及广泛的使用, 随着人们的生活品质在不断的提升, 智能家居在一定程度上满足了人们对高水平生活的追求。所以, 物联网时代下的智能家居的发展成为了关键性问题, 现如今人们志在发展出安全性、艺术性的智能家居, 希望可以为社会的进步与发展做出更多的努力。
当前物联网风起云涌, 物联网连接的设备数量正在呈爆炸式速度递增, 确保从设备与云端之间可靠地进行双向的大规模数据传输以及确保数据传输的安全都是至关重要的。
在智能家居的网络信息传输中,是通过远程控制以及近程控制相互结合来完成最终的信息数据的传递与交流的。在信息传输系统的设计中,智能家居网关和外部服务器起着重要的作用,智能家居通过网关以及外部服务器的相互合作,共同来完成最终的信息的传递以及交流。在智能家居系统信息的传递中,网关对已经订阅的消息通过外部服务器的数据传输进行处理接收工作,同时,外部服务器通过自身的工作对网关发出的消息进行接收处理,达到数据的良好沟通。
自身及团队具备的知识
团队共5名成员,4人(余鑫、何润、袁政伟、仲治宇)来自计算机科学与技术(物联网方向)2016级2班成员,1人(贾苹)来自2018级计算机专业。
自身具备的知识
- 具备两年半的嵌入式开发经验
- 自主完成了多个嵌入式、物联网相关实例
- 能够熟练使用多种嵌入式设备进行开发(51单片机、STM32、树莓派、ARM9、CC2530等)
- 能够熟练使用Altium Designer软件进行PCB电路板绘制
- 熟悉Linux操作系统及相关命令
- 熟悉Qt开发
- 能够进行简单的Android程序开发
团队具备的知识
何润
- 熟悉嵌入式相关开发
- 熟悉网络安全相关算法
- 熟悉Qt、C#开发
袁政伟
- 具有Web服务器开发经验
- 熟悉服务器相关框架
- 熟悉Web、Android程序开发
仲治宇
- 能够熟练进行嵌入式相关开发
- 熟悉IOS、Android、Qt开发
- 熟悉Linux开发环境
贾苹
- 熟悉单片机开发
- 能够熟练编写传感器、家居控制等程序
前期准备
前期已经编写相应传感器程序及控制程序,且能够正确采集数据和控制,Zigbee模块组网正在测试中;能够对ARM9进行Linux移植,能够在ARM9部署简单的Qt应用程序;能够在云端部署Web服务器,并能完成简单的开发;能够在手机端连接本地服务器进行做简单的无线控制。
前期准备部分展示


附部分参考文献
[1] 郭荣佐,郭进,黎明.智能家居中异构设备无缝集成的多协议网关设计[J].小型微型计算机系统,2015,36(10):2395-2402.
[2] 满莎,杨恢先,彭友,王绪四.基于ARM9的嵌入式无线智能家居网关设计[J].计算机应用,2010,30(09):2541-2544.
[3] 卢于辉,秦会斌.基于MQTT的智能家居系统的设计与实现[J].智能物联技术,2019,51(02):41-47.
三、项目方案与进度安排
1、方案设计

图1 系统架构
MQTT
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的”轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。
MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。
图2 MQTT
硬件设计
硬件设计包括三星的ARM9芯片S5P6818(家庭网关)、CC2530模块(协调器)、传感器终端(CC2530+Sensor)、家居控制终端(CC2530+Things),如下图所示。S5P6818上部署MQTT服务器作为家庭网关,负责对整个智能家居设备的管理以及环境监控。由于智能家居中许多家电设备都通过Zigbee(CC2530)无线传输网络来工作,因此在S5P6818上添加CC2530模块对整个Zigbee无线传输网络的数据融合处理,协调器负责家庭内部的Zigbee网络的管理与控制。S5P6818中的WiFi模块可以通过无线访问节点(Access Point,AP)路由器与以太网进行连接,实现家庭内部网络与Internet之间的通信。

图3 硬件设计
软件设计
软件设计包括MQTT服务器、Qt编写的网关应用程序、OpenWrt、云端Web服务器、云端数据库、智能终端APP,如下图所示。S5P6818家庭网关采用开源Linux操作系统,部署本地MQTT服务器并使用Qt编写网关应用程序,可以在本地管理和监控家居环境,也可把数据传送至云端服务器和数据库;云端采用CentOS操作系统作为服务器环境,部署web服务器和MySql数据库境;编写Android APP,能够连接云端服务器实现远程管理和监控家居环境。

图4 软件设计
2、进度安排
第一阶段(5月)
完成项目的详细文档、任务分工;
第二阶段(6月-7月)
绘制并印刷Zigbee模块的PCB,完成CC2530组网,能够使用传感器数据采集和家居控制;
第三阶段(8月-9月)
进行网关开发,部署MQTT服务器,进行Qt应用程序开发,同步进行Web服务器和Android APP开发;
第四阶段(10月-11月)
完成网关与Zigbee模块的通信,能够在S5P6818网关上处理CC2530传感器节点采集到的数据,能够实现本地管理和监控家居环境,并根据进度对网关的算法调度等进行优化;
第五阶段(12月-1月)
完成S5P6818网关和云端服务器的相关任务,完成Android APP功能开发,能够实现远程管理和监控家居环境;
第六阶段(2月-4月)
完成项目所有测试,编写项目报告。
四、项目特色和创新
MQTT的设计思想是开源、可靠、轻巧、简单,符合家居环境的要求,且拥有QOS0、QOS1、QOS2三种不同的服务质量,可以保证消息传输的可靠性。并且MQTT协议无需订阅者与发布者进行直连,这在一定程度上降低了设备随时进行消息传输的功耗,增强了移动设备进行远程管理和监控的可行性。能够将异构的智能家居设备进行无缝集成。
五、预测成果
基本完成基于MQTT的智能家庭网关研究与设计,能够稳定的管理和监控家居环境。
六、项目经费支出预算
| 序号 | 支出类型 | 金额 | 测试依据 |
|---|---|---|---|
| 1 | 耗材 | 4000.00 | 电子元器件及相应测试模块 |
| 2 | 耗材 | 2000.00 | 印刷电路板(PCB) |
| 3 | 耗材 | 1000.00 | 电路测试工具及焊接工具 |
| 4 | 印刷 | 500.00 | 资料印刷 |
| 5 | 图书资料 | 500.00 | 无线传感器网络、操作系统、数据处理、电路分析等相关图书资料 |