基于Qt的智能家居管理软件设计

2023-06-22 10:46:34王二飞
无线互联科技 2023年4期
关键词:管理软件智能家居设计

王二飞

摘要:随着国家经济发展水平的不断进步,我国社会基本矛盾已发生变化,人民群众对生活质量提出了更高要求。“家”是人们生活的港湾,在信息技术急速发展的今天,智能家居已经成为大部分家庭的家居选择。目前,市面上比较先进的智能家居软件以Qt为技术基础,软件技术架构为C/S模式,通过Linux平台,实现了编程、通信、服务器建设及数据库构建等一系列目标,满足了人们对于智能家居管理的控制及人机互动等需求。文章围绕“基于Qt的智能家居管理软件设计”这一话题进行了研究和探讨.

关键词:Qt;智能家居:管理软件:设计

中图分类号:TP39

文献标志码:A

0 引言

智能家居是近年来家居行业发展的主要趋势,这一现象出现的原因一方面是信息技术当前已经渗透到社会发展的各个行业之中,成为各个行业发展的“指向标”:另一方面是人们已经感受到了信息技术在生活中的便捷性,生活质量越来越高,简单的智能家居已经难以满足人们对于家居的需求。进行家居管理软件设计是未来行业谋求发展,满足消费者需求,拓宽市场的主要方式,Qt是实现这一目标的技术基础。

1 Qt简介

Qt指的是一个跨平台的C++图形用户界面应用程序开发框架,其中有不少白定义的C++类库,使用者使用带UI界面的QWidget能够在短时间内编写可视化图形界面用户端,使用QTcpSocket类能够进行网络通信[1]。Linux系统是网络得以运行的关键,线程池thread-pool模式是服务器正常运行的基础,之所以这样说,是因为上述系统和模式能够避免网络进行新请求接收的时候服务器出现持续线程构建、进程销毁的问题,使得CPU的使用效率不断提高。现下发展势头比较猛的无线通信技术是ZigBee技术,作为一种短距离无线通信技术,其耗能低的同时还能够在工控场合被应用,技术波段为2.4 GHz,应用了跳频及扩频技术[2]。

2 系统设计需求及整体构建

2.1 系统设计需求

智能家居系统作为一个整体系统,首先要对空气中的温湿度、光照强度、气体浓度等重要环境因素进行准确感知,感知工具为传感器,之后系统需要依据传感器提供的环境因素对家中的家居设备如电灯、空调、冰箱等进行控制,这是系统自身运行的需求[3]。对于使用者而言,其需求为对系统进行良好控制,需要通过一个专门的控制App客户端解决,App客户端的功能设计不用过于复杂,用户登录之后用摄像头远程监控并实现对家居设计的控制[4]。

2.2基于Ot的智能家居管理软件系统整体构建

2.2.1 整体设计

智能家居系统结构包含远程控制、网络通信、家庭网关及网络4部分组成。系统核心以家庭网关为中心,横跨ZigBee、GPRS/GSM及WiFi网络,组成一个在PC、智能手机及电脑等智能设备上皆可以实现远程控制的智能家居网络系统[5]。智能家居系统的功能主要包括远程控制和家庭电器信息采集两方面,实现这两项功能都需要用到智能家居管理App客户端,用户需要先在App客户端完成注册,登录之后进入家居设备操作界面,界面中的信息为电器丁作情况(主要依靠家庭网关)。用户能够在界面中看到家中电器设备具体情况、摄像头监控画面等,还能够看到当地天气情况。App客户端会向家庭网关发送JSON格式的白定义通信协议,家庭网关服务器在接收到信息之后会向App客户端进行反馈[6]。

2.2.2 设计重点

(1)家庭网关。

家庭网关在智能家居系统设计中占据着十分关键的地位,是系统的整体控制核心,是家庭网络连接外部网络重要程序,家庭网关软件需要应用分层结构,结构由底层驱动、Embedded系统、库和应用程序4部分组成,库及应用程序的移植是设计重点[7]。服务器应用Qt开发,同时在Linux平台上运行。系统不仅要运行,还要读取和存储数据,因此还需要数据库进行支撑,系统中的数据库为SQlice,这是一种专用于Linux平台的轻型数据库[8]。

solite是一种专用于Linux平台的小型数据库,其与一般数据库最大的区别在于这种数据库的尺寸更小,操作起来也更为简便,但是其他方面与一般数据库并没有太大区别,系统需要获取采集的数据以及家中电器的运行情况[9]。Qt中的QSql模块能够对数据库进行支持,技术人员要发挥QSql模块中类的作用,需要在pro文件中插入“Qt+= sql”代码[10]。

Qt对QSqlQuery类进行应用需要对soL语句或是SQL模型类QSqITableModel執行完成增删改查数据库这个过程。技术人员在最开始的时候需要应用SQLite database hrowser工具对数据库(smarthome.db)进行构建,在smarlhome.db构建完成之后建立用户信息、传感器以及传感器情况实时获知程序[11]。

家庭网关软件设计主要包含以下5点:

①SQlice数据库移植,确保Linux平台为数据库提供支持。

②Qt/Embedded软件支持库移植,确保Linux平台为Qt运行提供支持。

③SYSZUXpinyin移植.SYSZUXpinyin是一类输入法。

④Hostapd( Host Ac.cess Point)移植,为无线路由器进行网卡配置。

⑤服务器软件设计,这是本文工作的重点。

由于智能家居管理App客户端与服务器控制界面差别不大,这里主要对服务器软件设计进行介绍。软件功能主要对App客户端请求进行响应、对数据进行收集、存储及反馈,命令操作能够完成各类复杂功能。App客户端运行完成之后会转到用户登录界面,用户登录完成之后,可以在主界面看到“设备情况”“设备控制”“监控查询”等功能[12]。

(2)基于Qt的智能家居管理软件架构。

智能家居管理软件设计的结构为C/S结构,这一结构是目前最先进也是软件设计企业最常用的一种结构。这种结构的优势在于能够使App客户端和服务器一同进行计算机任务,这样不仅能够确保对资源进行最大程度利用,还能够最大幅度提高系统运行速度。系统程序包含App客户端及服务器,服务器对家庭网关进行连接,App客户端在帮助系统对服务器进行访问同时读取家庭网络数据并对服务器进行反馈,完成控制。服务器在接到命令之后会将数据存储同时转发App客户端命令。

服务器和App客户端的技术依据为TCP( Transmission Control Prolocol)中的socket通信,这种通信方式传播速度快,可靠性高,无需获取复杂信息,只需获取固定的IP地址和端口号,即可使用C/S模式构建TCP协议,实现不同通信进程间之间的连接。Transmlssion Control Protocol本质是一种传输协议,这种传输协議的作用是进行数据连接。Qt用于连接TCP客户端及服务器的程序为QTcpSocket类及QTcpServer类。QTcpSocket类的作用是为TCP协议提供通用接口,用以完成其他标准协议。

(3)槽编程。

Qt信号——槽机制的作用是实现不同对象通信,槽机制的作用在Qt编程全程中都可以看到。对象情况转变之后会发出信号,槽一般情况下属于类中函数,作用是对信号进行接收,各个程序之间依靠connect函数进行连接,在接收到相关信号之时启动对应的槽函数。系统软件设计中包含非常多的信号槽编程。

3基于Qt的智能家居管理软件运行流程

3.1 登录

客户端App会应用到Windows系统中的Qt4.6软件。Qt程序中,软件应用最开始需要用到mam.cpp,在其中创设QWidget对象,普通窗口用QWidget类表示,其中还包含QObect及QPaintDevice类,其余窗口继承于QWidget类,Login.UI文件能够实现对智能家居管理软件的可视化编辑,具体表现为智能家居管理软件登录界面(见图1)。之后UI界面按钮会跳转至槽,同时在系统中加上QAbstractButton类对象中的clicked()事件,Qt软件此时会白动将槽函数声明和相应的信号函数生成并在之后的运行过程中展示出来。若系统需要UI界面进行跳转,需要提前在主界面的相关文件中增加子界面运行要求,之后在主界面的cpp文件中构建子界面类对象,同时对子对象进行调用,此外还需要将主界面UI关闭。

3.2 注册

新用户将软件打开之后需要进行注册,用户在进入到注册界面之后先需要输入账号、手机号进行注册(注册需要手机接收验证码并设置密码)。客户完成这一系列操作之后,客户端App将新用户的信息依靠socket请求传输给服务器,用户若注册成功,服务器同样会依靠socket返回注册成功标识信息给客户端App。如果客户在再次登录的时候忘记密码,只需要进入到找回密码界面即可(见图2).在“找回密码”这一界面,用户只要正确填写注册时的账号及手机号就能够成功修改密码。用户在这个过程中可以接着使用原用户名,应用新密码。在用户正确输入自己要用的账号密码之后,就可以进入智能家居管理系统的主界面。

3.3 控制

智能家居管理软件控制主要分为手动控制和自动控制两种,具体控制方式如下所示。

3.3.1 手动控制

用户在智能家居管理软件主界面能够对家庭LED、风扇、空调及冰箱等家居设备进行手动控制,系统会对温湿度传感器提取到的温湿度数据进行实时显示。用户只要连接网络并打开定位,便能够从App中获知所在城市的天气状况。智能家居管理软件查询天气依靠的是浏览器中的开发者工具,在获知当地天气预报中的天气情况的同时还需要读取Body、Header信息,应用在线HTTP接口测试T具测试可以得到JSON格式天气数据,利用weacher.cpp解析JSON数据之后依靠QWidget类对象在UI界面中显示相关数据。

3.3.2 自动控制

智能家居管理软件处在自动控制模式状态下,系统能够依据当下环境对家中电气设备进行智能化控制。若温湿度传感器感知到的室内温度在30℃时,控制系统会自动将空调打开。若温湿度传感器感知到的室内温度比26℃低时,控制系统会自动将空调关闭。同理,传感器在测试到室内一氧化碳浓度过高的时候,系统会立即向用户进行反馈。

4 结语

总而言之,在当下我国已经实现全面小康,向社会主义现代化迈进的背景下,群众生活水平出现了大幅度提升,对于生活质量提出了自动化及智能化要求,这一点在家居行业中体现得尤为明显。家居行业要满足消费者需求,必须提高对智能家居管理软件设计工作的重视,以Qt为技术框架,通过Linux平台,为消费者提供一个良好的智能家居控制管理体验。

参考文献

[1]张纯杨,张昊德,笪庆,等.一种基于Qt界面的多图像拼接软件的实现方法及其系统:202010480639.[P].2020-05 -30.

[2]潘志安,高知林,秦华旺,等.基于Qt的地铁站智能照明系统软件设计与实现[J].工业控制计算机,2020( 10):113 -115.

[3]何勇,王晓丽,肖海飞,等.基于物联网的非侵入式用电器在线监测系统设计与实现[J].智能计算机与应用,2021(12):158-170.

[4]侯健明,静国刚,吴松洋,等.基于QT的网络设备拓扑管理平台设计与实现[J].工业控制计算机,2022(1):87-88.

[5]邵春雨,李春辉.基于PLC的智能家居控制系统设计与实现[J].沈阳工程学院学报(自然科学版),2022(2):86-89.

[6]渠吉庆,陈禹,刘玉琪,等.基于语音识别智能家居系统的设计与实现[J].计算机技术与发展,2020( 12):148-152.

[7]王超.基于s3c2410和Qt/Embedded嵌入式实验演示系统的设计与实现[J].文山学院学报,2022(2):65-67.

[8]李继红,安迎建.基于51单片机的智能家居火灾报警的设计与实现[J].电子技术与软件工程,2021(12):60-61.

[9]杨蝶,王银玲,张伊洛.基于SVM-Qt的废旧织物颜色识别系统的设计与实现[J].信息与电脑,2020(14):122-125.

[10]王斌,宋树祥,王宜瑜,等.基于Qt与ArmNN的嵌入式喷码检测系统设计与实现[J].计算技术与自动化,2020(1):54-60。

[11]高昕悦,赵宇鸿,李达,等.基于ANSYS的亥姆霍兹线圈磁场分布研究实验[J].实验技术与管理,2021(5):175-179,186.

[12]路云静,唐海萍.生态系统文化服务研究进展——基于CiteSpace的可视化分析[J].北京师范大学学报(自然科学版),2021( 4):524-532.

(编辑李春燕)

猜你喜欢
管理软件智能家居设计
仓储管理软件在物流自动化解决方案中的应用与发展
项目法在工程造价管理软件中的应用
瞒天过海——仿生设计萌到家
艺术启蒙(2018年7期)2018-08-23 09:14:18
基于Zigbee的无线通信技术在智能家居中的应用
电子制作(2018年1期)2018-04-04 01:48:28
设计秀
海峡姐妹(2017年7期)2017-07-31 19:08:17
有种设计叫而专
Coco薇(2017年5期)2017-06-05 08:53:16
共享电单车的管理软件
关于智能家居真正需求的探讨
工业设计(2016年10期)2016-04-16 02:44:05
智能家居更贴心
科学生活(2015年3期)2015-01-03 09:41:18
基于LD3320的智能家居控制
河南科技(2014年7期)2014-02-27 14:11:13