基于MQTT的智能家居系统设计

2020-07-13 13:39
运城学院学报 2020年3期
关键词:智能家居阿里服务器

蔡 自 伟

(运城学院 数学与信息技术学院,山西 运城 044000)

引言

随着技术的发展和社会的进步,人们对居住环境的要求也越来越高,智能家居的概念逐渐被人们所接受[1]。智能家居行业经历了十来年的发展,有很多企业在这个领域进行了深度布局,不同的厂家从不同的角度用智能化的手段对家居行业进行了改造。小米基于生态对智能家居进行了赋能;华为基于网络连接对智能家居进行了赋能;阿里巴巴和中国移动通过搭建物联网云平台来降低智能家居的开发门槛。尽管这个行业的涉入者众多,技术成熟度很高,但是这个领域缺乏统一标准,整体发展受到了很大的限制[2]。当前,微信作为一个应用最为广泛的社交工具,把微信小程序作为智能家居的入口,将很大程度上提升用户的便捷性,从而提高用户对智能家居的亲和度和粘度[3]。通过微信小程序接入服务器的方式有两种,一种是私有服务器,另外一种是云服务器。云服务器无论是在性能还是成本上都具有很大的优势。

本文设计并完成了基于MQTT的智能家居系统。该系统除了实现了智能光线调节和智能温湿度调节等常规功能外,还实现了对烟雾的监控、对火焰的监控以及防盗提醒等安全功能。系统安全功能的增强具有较强的实用性。传输使用MQTT协议,使系统具有低时延高可靠的特点。同时,系统的客户端采用了微信小程序的形式,使用起来更加方便灵活。

1. 系统框架设计

1.1 系统框图

通过需求分析,遵循物联网系统的三层设计模式[4],系统层次图如图1所示。

图1 系统层次图

系统分成三层。其中,感知层用来获取数据,网络层负责传输数据,应用层负责监控和数据呈现。

感知层通过主控板控制传感器采集数据,可以分成常规数据采集和安全数据采集两部分。常规部分主要包含温湿度和光照强度数据。光强传感器采集光照强度用来分析室内的亮度。温度传感器采集室内温度数据,湿度传感器采集室内的湿度数据。安全部分主要包含烟雾、火焰和红外数据。烟雾数据通过烟雾传感器采集,火焰识别主要通过火焰识别模块完成。红外数据用于判断是否室内有人,摄像头主要用于视频监控。

网络层一方面接收来自感知层的数据,负责把数据传递给应用层,另外一方面负责把应用层的控制数据传递给感知层的主控板,由主控板完成对应模块的调整。

应用层的数据存放在云服务器中的,通过小程序完成界面的显示。小程序实现的控制面板,可以实现对各个感知层模块的控制。

1.2 系统数据流分析

本系统基于MQTT协议完成数据的上传下达,智能家居系统框图如图2所示。

图2 智能家居系统框图

MQTT协议用来完成数据传输,需要配合服务器才能工作[5]。现在大型的物联网平台都提供对应的协议栈。本系统采用了阿里云物联网平台并结合MEQX,MEQX作为一款企业级的MQTT消息服务器平台,其主要特点是实时性高、存储效率高、并发性好、使用简单。MEQX只要进行简单的配置就能运行MQTT协议栈[6]。从兼容性考虑,本系统的云服务器也选择使用了阿里的云服务器。主控板使用了ESP-12F WiFi模组,该模组包含主控芯片和WiFi芯片ESP8266,通过ESP-12F模组可以完成本地网络的搭建[7]。通过光强传感器采集光照强度信息,上传到小程序。小程序结合天气预报信息,综合后完成对灯光和窗帘的控制[8]。温湿度传感器采集数据上传到小程序,小程序通过分析完成对应家居模块的控制。

智能家居系统涉及的器件众多,安全是最重要的模块之一[9]。本系统加强了室内安全功能。烟雾传感器用来采集室内的可燃气体数据。火焰传感器可以采集周围环境是否有火焰存在。红外传感器采集红外线数据用于感知活动物体的存在。这三个传感器采集的数据传递给小程序,小程序通过分析会产生对应的方式进行处理。用户在需要的时候可以调用摄像头,查看室内的实时状况,最终确认是否反生火险或者外人闯入。

2. 硬件实现

2.1 云管端通信流程

智能家居的通信建立在MQTT协议之上,硬件上依赖ESP-12F模组,软件上依赖阿里物联网平台,系统通信流程图如图3所示。

图3 智能家居系统通信流程图

其中,WiFi网络的连接依赖室内3G/4G网络的正常工作。

2.2 基础模块传感器

基础模块传感器主要负责采集室内的基本参数,包含光线、温度和湿度等。

光照强度传感器选择的是BH1750。该传感器能探测较大范围的光线强度,使用方便灵活。

温湿度传感器选择的是DHT11。该传感器是一款数字信号传感器,可靠性和稳定性都比较好的。

2.3 安全模块传感器

烟雾传感器选择的是MQ-9[10],它能够检测一氧化碳等燃烧过程中产生的气体,作为有火情的一个参数。

火焰识别传感器可以检测火焰,探测角度60度左右,该系统需要布设多个火焰传感器。该传感器的灵敏度可调节,使用方便。

人体红外传感器采用HC-SR501,通过识别人体红外线的特定波长来分析室内出现的人员。通过采集红外数据,作为室内安全的数据分析因素。

上述三个数据能提示险情发生的可能性,最终确认需要查看摄像头采集的实时视频数据。摄像头采用的ESP32-cam摄像头开发板,内部包含一颗32位的CPU,实时视频数据通过WiFi上传服务器。但是这样做只能保证在局域网内获取视频,如果需要在公网上传输数据,需要使用到内网穿透技术。

3. 软件实现

针对本系统开发了一款微信小程序作为客户端,智能家居的数据呈现和控制由它完成。服务器采用了阿里云物联网平台进行接入。小程序可以对服务器发起请求,调取传感器采集的数据,或者对控制的家居模块发起控制操作。阿里云物联网平台提供了丰富的协议和接口来实现对传感器的操作。

3.1 阿里云物联网平台接入流程

本文总结了阿里云物联网平台接入流程,现描述如图4所示。

图4 阿里云物联网平台接入流程

阿里云物联网平台创建物联网应用非常简单,云端只需要简单配置即可。主控板需要做对应的配置,云端和主控板通过ESP8266相连就完成了网络的搭建。

3.2 微信小程序开发

本系统客户端为微信小程序,小程序与阿里云之间通过MQTT服务器进行连接,MQTT协议栈和数据库都存放在阿里云服务器上。在阿里云上部署了物联网设备的管理系统,用于管理设备和主题。其工作流程如图5所示。

4. 系统测试

本系统的登录界面如图6所示,用户只需要输入用户名和密码就可以登录,然后就能使用该智能家居系统了。

图5 小程序工作流程图

图6 小程序登录界面

登录成功后,进入智能家居系统的控制界面,通过点击各个界面上各个选项就可以完成对室内家居模块的智能访问和控制,控制界面如图7所示。

图7 设备控制界面

本系统的特点在于强化了智能家居系统的安全功能,现对其进行测试。现模拟室内着火场景,当用打火机打火出现在设备附近的时候,小程序就提示家里着火了。此时,家里面不一定真的着火了,用户可以调用摄像头查看家里面的实际情况,确定是否真的着火。如果着火了,就可以拨打火警电话。意外火情识别功能测试效果如图8所示。

图8 安全防控界面

5. 结论

本文设计的智能家居系统主要利用了阿里云物联网平台,通过MQTT传输协议和微信小程序完成了对家居环境的智能化管理。本系统实现了对光强数据和温湿度数据的采集,通过对数据的综合分析进而智能化的控制室内的光照强度和温湿度。本系统的特点在于加强了对室内的安全监控,通过烟雾传感器、火焰识别、红外传感器和摄像头完成了对室内着火现象和人为入侵事件的监控。本系统仍有许多不足之处,安全问题识别在准确度仍有很大优化空间。下一步,需要分析摄像头采集的视频数据并结合计算机视觉技术使家居安全功能更加智能。

猜你喜欢
智能家居阿里服务器
云上阿里
基于PLC的智能家居控制系统研究
辰辰带你游阿里
通信控制服务器(CCS)维护终端的设计与实现
PowerTCP Server Tool
基于Zigbee的无线通信技术在智能家居中的应用
智能家居发展或将实现弯道超车
得形忘意的服务器标准
计算机网络安全服务器入侵与防御
阿里战略