滕玮 郭帅民 黄秋斌 潘饶
【摘 要】随着物联网技术的迅速发展,各类智能化设备层出不穷,在智能家居中扮演了十分重要的作用。本文将传统的镜子作为研究对象,运用M2M技术对其进行智能化改造,设计了一个家庭智能镜系统,具有一定的市场应用前景与价值。
【关键词】智能家居;智能镜;M2M;树莓派
中图分类号: TN929.5;TP391.44;TP277 文献标识码: A 文章编号: 2095-2457(2019)07-0017-002
DOI:10.19694/j.cnki.issn2095-2457.2019.07.006
【Abstract】With the rapid development of the Internet of Things technology, various types of intelligent devices emerged which play a very important role in smart homes. In this paper, the traditional mirror is taken as the research object. A home intelligent mirror system is designed based on M2M technology, which has certain market application prospects and value.
【Key words】Smart home; Smart mirror; M2M; Raspberry Pi
0 引言
2014年被譽为是智能家居的元年,几乎所有家电巨头都进军智能家电领域,无数大企业和小公司积极推出相关产品。目前,全球智能家居市场容量排名前五的国家分别是:美国、日本、德国、中国、英国[1]。我国智能家居行业还处在技术推广阶段,关注产品的易用性和实用性是行业得到快速的发展关键,设计价格低廉、使用方便、扩展性好的智能家居系统已成为当前关注的热点[2]。本文运用M2M技术,基于树莓派(Raspberry Pi)平台,将常用的镜子改造为一个智能镜系统,实现对室内环境的监控、新闻浏览、事务提醒、课程表等功能,方便实用,是智能家居的重要组成部分。
1 系统设计
本系统基于M2M应用框架设计[3],主要包括智能镜终端、系统服务器、Web应用端和移动应用APP端,如图1所示。
1.1 M2M终端-智能镜模块
智能镜,顾名思义,就是将普通镜子智能化。本系统使用单面透视镜,将树莓派嵌在镜子的反面。当屏幕熄灭时用户看到的是一面普通的镜子,当屏幕亮起时,用户透过单面镜就能看到屏幕上所显示的内容,主要包括时间、室内温湿度信息和烟雾状况,并将这些室内环境数据上传至服务器,方便实现数据管理和移动终端访问;还可以通过网络远程访问服务器,获取当日天气、备忘录、课程表、新闻等信息。
1.2 M2M应用—web端应用和移动端APP
系统的应用客户端包括web端应用和移动端APP两个用户终端。其中,web端应用运行于PC端,通过与服务器的交互,实现对采集的家居环境数据(温湿度、烟雾情况)、备忘录、课表等的查询、更新和删除等操作。移动端APP亦可通过与服务器的交互,获取并管理各类数据,方便用户及时了解家居环境及其变化情况,实现对系统的远程控制。
1.3 M2M平台-系统后台服务器
系统的后台服务器是核心模块,部署在阿里云上。由于整个系统的业务不多,逻辑也并不复杂,所以将文件、应用程序、数据库都部署在一个服务器上。一方面,服务器和智能镜终端交互。通过有线网络或无线网络,服务器接收智能镜上传的室内温湿度、烟雾数据等室内环境数据,并对其进行存储、管理与维护;同时,访问开放的天气信息源和新闻信息源(新浪新闻网的世界新闻),并将天气和新闻推送到智能镜端显示。一方面,接收M2M应用(web端应用和移动端APP)对室内温湿度、烟雾数据、新闻、天气等数据的访问请求,实现对备忘录、课表的管理和维护。
2 系统实现
根据系统总体设计,对各模块进行设计与实现。
2.1 智能镜采集端设计
智能镜采集端基于树莓派开发,主界面采用的PyQt设计。PyQt是一个创建GUI应用的工具包,是Python与QT库的成功融合[5]。主界面如图2所示。
(1)温湿度传感器及烟雾传感器数据的采集
将DHT11温湿度传感器和MQ-2烟雾传感器直接连接在树莓派的GPIO引脚上。其中, DHT11的引脚接线方式是VCC端接5v电压,即树莓派(BOARD)的4号引脚,接地端接6号引脚,DATA接11号引脚。MQ-2烟雾传感器拥有四个管脚,即VCC、GND、DOUT和AOUT。VCC和GND接线方式同前,没有使用AOUT端。因为是用DOUT端去判断烟雾浓度是否超过阈值,超出则报警,所以只需要将DOUT端端与树莓派的7引脚相连接即可。通过运行采集数据程序,将数据显示在智能镜上(图2);再使用MQTT协议,智能镜端作为推送方(publisher)将采集到的室内环境数据推送至服务器,服务器再将之上传到数据库。
(2)天气、新闻信息的获取与显示
利用HTTP协议通信,访问的天气信息源(url=http://wthrcdn.etouch.cn)和新浪新闻信息源(url=http://news.sina.com.cm/worl)并获取天气和新闻信息,将获取的信息处理为json格式,最后返回至智能镜终端显示(图2)。
(3)备忘录、课表信息的获取与显示
备忘录信息和课表信息存放在系统后台服务器,智能镜终端同样利用HTTP协议向服务器发送请求,从服务器端得到备忘录信息并在智能镜终端上显示(图2)。
2.2 web端应用和移动端APP
系统web端运用HTML5技术进行web前端设计,使用php语言实现与服务器端的交互。web端应用包括管理员和普通用户两种身份。当普通用户登录系统后,就可以向服务器发送查询室内环境数据、备忘录和课表等的请求。室内环境数据(温湿度、烟雾情况)用折线图的形式显示,如图3所示。用户可以进行备忘录的設置与更新、删除等操作。当管理员登录系统后,可以对所有数据库中信息进行管理,亦可以对于普通用户进行禁止登录或者恢复登录的操作,如图4所示。
系统移动端基于Android开发平台,通过与云服务器及系统服务器的交互,实现对室内环境数据的查询与显示、备忘录的设置、课表的导入与显示等功能(图4-5),方便用户随时随地的了解家居环境及其变化情况,实现对系统的远程控制。
2.3 系统后台服务器设计
系统的后台服务器部分基于WAMP框架开发,部署在阿里云上,开源跨平台,安全可靠。服务器在与web应用端和移动端交互是常规的B/S和C/S模式,实现功能在3.2中已经阐述。服务器在与智能镜进行交互时,智能镜对天气、新闻、备忘录等信息的请求,也是C/S模式。
但是对采集的室内环境数据的获取是采用基于MQTT协议的Publisher/Subscriber模式。MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)协议是一种即时通讯协议,是现代的物联网应用中的重要组成部分[6]。它基于主题发布,订阅的体系结构,一般会在中间层设置代理,Publisher(即本系统的智能镜采集模块)发布主题到代理,Subscriber(即本系统的后台服务器)通过订阅代理来获取信息,但相比于HTTP协议MQTT有较低的协议开销,可以进行一对多,多对多的通信[6]。
3 总结
本文基于M2M技术,选用树莓派3代作为智能镜系统的开发版,运用web开发和移动终端开发技术,设计了一个智能镜系统,具有价格低、操作方便、可维护和可扩展性好的特点。同时,将服务器部署在阿里云上,缩短了开发周期,降低了开发成本。经测试,可以实现对室内境数据的采集与显示,实现对日常信息的显示,且界面设计良好,操作简单。进一步的工作是实现对室内的远程监控功能,实现对图像的抓拍、视频的传输等功能,使本系统进一步完善,以满足人们对智能家居的需要。
【参考文献】
[1]2018-2024年中国智能家居行业分析与投资决策咨询报告[R],智研咨询集团,2018年1月.
[2]乐军.智能家居市场将迎来爆发式增长[N]. 中国消费报,2017-03-30(003).
[3]冯英伟,范晶晶,王庆福.基于M2M的智能家居关键问题研究[J].河北建筑工程学院学报,2015,33(02):52-54.
[4]冷静. 基于M2M的物联网网关平台设计及实现[D].西安电子科技大学,2014.
[5]肖文鹏.用PyQt进行Python下的GUI开发[J].中文信息,2002(07):73-75.
[6]马跃,孙翱,贾军营,孙建伟,于碧辉,杨雪华.MQTT协议在移动互联网即时通信中的应用[J].计算机系统应用,2016,25(03):170-176.