智能家居智能灯光控制系统工程软件工程课程设计.docx
《智能家居智能灯光控制系统工程软件工程课程设计.docx》由会员分享,可在线阅读,更多相关《智能家居智能灯光控制系统工程软件工程课程设计.docx(37页珍藏版)》请在冰豆网上搜索。
智能家居智能灯光控制系统工程软件工程课程设计
软件工程课程设计
智能家居.智能灯光控制系统
1、引言
1.1、项目背景
随着都市生活的节奏加快,人们将越来越多的精力放在工作、养家上,而对于生活中的细节则越来越无暇顾及,因此,生活用品(如家电)的智能化、“去人工化”就显得尤为重要。
而随着物联网技术的兴起,家居智能化控制的呼声也越来越高。
智能化管理,不只是便捷,更重要的一点在于通过对家电耗电量的合理管理,降低家庭家电系统的耗电量。
结合传感器技术与智能化算法,通过对物理信息的感应做出正确的选择,就是本项目这对目前的社会现状和技术背景所定下的功能设计方向。
1.2、项目可行性
本系统功能实现,以物联网传感技术及智能化算法为基础。
根据目前本领域技术的发展,本项目实现可能性较大。
目前市场智能化控制设备良莠不齐,本项目推广渠道较广。
综合上所述,本项目可行性较高。
1.3、项目目的及意义
本项目针对家电系统的智能化控制而设计功能。
本项目旨在通过对家居的智能化控制,方便人们的生活,让人们可以不用为了家居控制等细节烦心,在工作一天、身心疲惫后,在家中可以享受优质的服务,而不是还要为了所谓的自理能力再浪费已经被工作消耗殆尽的精力。
同时,对家电的智能化管理,将有助于延长家电的寿命,降低家电的耗电量。
综上所述,本项目具有的意义包括:
1、方便居民生活;
2、缓解都市人生活压力,提高都市生活质量;
3、助力低碳生活的推广。
目前,本项目先实现较为被重视的家居灯光照明系统的智能化。
未来,本项目会推出系列产品,如家居控温设备智能化控制系统等。
2、任务概述
2.1、系统定义
本系统是通过智能化控制,方便用户控制家庭电器的,应做到以下几点:
2.1.1、自动感知
即通过传感器感知室内环境,包括光照强度、人员数量。
2.1.2、智能分析
根据传感器采集到的信息,计算得出室内光照情况及人员所处环境。
2.1.3、智能决策
根据室内情况,选择照明设备应有的亮度和光照模式。
2.1.4、远程控制
可以通过手机端、PC端对指定的照明设备进行控制。
2.1.5、电源控制
在用户不进行干预的情况下,只有在用户在家时,本系统中大部分设备才开始工作。
用户不在家中时,系统中只有负责检测家主是否在家中的传感器工作。
用户可以通过密码设定等方式,控制家电系统整体断电。
2.2、术语定义:
2.2.1、照明设备单元
室内,在家居的电气系统中,一处光照来源(位置相近)作为一处照明设备单元,不包括家电系统之外的照明设备。
例如,手电筒、应急灯等自身带电源的、可以自身作为一个电气系统的电气设备不再考虑范围内。
如下图:
室内照明设备分布图
例如,位置相邻的光源作为一处照明设备单元的话,多灯灯柱上的多盏灯可视为是一处照明设备单元,位置较远的壁灯,各自划分为一处照明设备单元,位置相近的壁灯可以几盏划分为一单元。
单元的划分可视室内照明设备实际位置进行划分,在为用户设计照明设备安放位置时就需划分好照明设备单元。
2.2.2、光源单元
一盏灯就是一个光源单元。
是系统对照明设备控制的最基本单位。
照明模式的实现是通过对光源单元工作方式的指令组合作出的。
2.2.3、照明模式
分为两种情况:
1、照明设备单元只有一个光源单元时,光照模式只有工作和不工作;对于工作中的光源单元,通过对电气设备两端电压大小进行控制达到强弱光模式。
2、照明设备单元由若干个光源单元组成时,光照模式根据光源单元工作数目以及各光源单元的组合进行划分。
例如:
1至5盏灯亮,有5种基本模式(暨亮灯数目为1~5)。
另外,根据灯光颜色,可以更进一步根据组合后的效果细分出不同模式;根据光源单元是否具有闪烁功能,可以更进一步设计照明模式模式。
系统选择照明模式(或人工选择照明模式,由系统执行)的实现是通过系统发出对若干光源单元工作方式的指令的组合实现的。
2.3、数据描述:
2.3.1、物理信号
不同的传感器采集到的相关的室内物理信息,例如光敏传感器采集到的的光照强度、远红外传感器采集到的是否有人、人数、活跃度等信息。
2.3.2、数字信号
根据物理信号的强弱、大小等信息,通过系统的映射算法得出对应的反映物理信息的数字信号。
2.3.3、指令
根据数字信号反映的关照强度、人数、人的活跃度等信号,根据对应的映射机制(if-then机制),系统将做出决策,决策通过指令得以实现。
指令表现为控制对应的照明设备单元中,各个光源单元的工作与否、工作时功率大小。
2.3.4、数据处理过程
综上可得以下数据处理思路:
(数据流图)
3、需求分析
3.1、功能需求
3.1.1、业务需求
实现对家中的所有接入家庭电路中的照明设备(不包括手电筒等自身提供电力的照明设备)的智能控制。
包括电气系统的自身智能化和用户控制的方便化两方面。
3.1.2、用户需求
3.1.2.1、智能管理
在用户不干预的情况下,系统能控制灯光的照明模式,达到计算之内的最佳照明效果。
3.1.2.2、远程控制
用户能通过PC、手机控制家中任意一个光源单元的工作模式,包括是否工作、工作功率等情况。
3.1.3、系统需求
3.1.3.1、智能控制
3.1.3.1.1、实时感知
在家中布设传感器,采集光照强度、人员数量、人员活动情况等物理信息。
3.1.3.1.2、物理信息数字化
物理信息能转化为数字信息。
暨特定的数字表示特定的物理状态。
例如,一串数字信号中,某一部分数字序列表示室内的某个区域、另一部分的数字序列表示室内该区域的光照强度,等。
3.1.3.1.3、基础模式设定
照明模式:
对选定范围所有照明设备发出指令序列,序列包括所有光源单元是否工作及工作功率大小的指令。
各个单元之间工作与否互不影响;对各个单元发出的指令互不影响。
指令序列的内容、数据量大小视选定范围内的光源单元数量、光源单元工作功率大小范围及光源单元工作方式数目而定。
例如下图:
模式设定是智能化决策的基础,智能化决策就是根据实际情况对系统中已有模式的选择。
3.1.3.1.4、智能化决策
例如,当某一区域内,光照强度低于适当水准时,系统向该区域的照明设备输出增加工作功率的指令。
当某一区域内有人,且该人员的活跃程度较低时,判断该人员“在休息”,降低光照强度至“睡眠模式”。
3.1.3.2、远程控制
3.1.3.2.1、模式选择
预先设定好几种照明模式,如一个区域的照明设备单元中,只有弱光部分的光源单元工作,其余的都不工作,为“睡眠模式”;天花板下照灯的彩色闪灯工作,其余的光源单元均不工作,为“聚会模式”,等等。
然后,用户可以通过手机或PC进行模式选择。
选择后系统将根据选择对各个光源单元发出“工作”或“不工作”等指令。
3.1.3.2.2、自定义模式
用户可设定室内各个光源单元的工作与否(闪光灯可有“闪烁”选择),自定义个性化的照明模式,为聚会、晚餐等特殊情况和个人喜好设定专属的灯光效应。
自定义模式,其实就是定义好一个指令组合,组合中的指令单元对应选定的区域内的光源单元。
定义指令组合不是直接定义由0、1组成的指令序列,而是选择各个光源单元的强中弱光、灭等组合简介定义指令序列。
定义方式可在界面上选择。
此种系统控制模式未来可在剧院、片场等地推广。
3.1.3.2.1、个别调控
用户可在上述两种模式的基础上,根据时间、地点、气候等实际情况,对个别光源单元的工作与否及功率大小进行调控。
3.1.4、用例图及说明
系统用例图
用例说明:
用例编号
1
用例名称
对个别光源单元的工作模式进行调控
用例概述
用户通过界面选择个别光源单元的工作模式
参与者
用户
次参与者
无
前置条件
用户选择“远程控制模式”;用例4未进行。
后置条件
无
事件流
1、用户选择系统“远程控制模式”。
2、用户选择“个别调控”功能。
3、用户选择“区域——光源单元”,通过在界面上点击光源单元,获得几种工作模式的选项,并进行选择。
备注
注1:
大部分光源单元只存在“强光”、“中光”、“弱光”、“灭灯”始终工作模式。
带有闪烁功能的光源单元有“闪烁”工作模式
注2:
通过对光源单元两端的电压大小进行调节,达到控制单独一光源单元功率大小的调节。
用例编号
2
用例名称
区域照明模式选择
用例概述
用户通过界面选择“远程控制模式”中的“模式选择——区域照明模式”模块,再进行照明模式选择。
参与者
用户
次参与者
无
前置条件
用户选择“远程控制模式”;用例4未进行。
后置条件
无
事件流
1、用户选择系统“远程控制模式”。
2、用户选择“模式选择——区域照明模式”功能,并选择区域。
3、用户通过在界面上点击照明模式的选项进行选择。
备注
注1:
室内各个区域,在为家庭布设本系统时已作好缺省划分。
通过将若干照明设备单元划分为一个区域实现;后期,用户可根据自己的需要将若干照明设备单元归为“一区域”。
注2:
选择照明模式是对选定范围内的所有光源单元是否工作发出单独的指令。
各个单元之间工作与否互不影响;对各个单元发出的指令互不影响。
用例编号
3
用例名称
系统照明模式选择
用例概述
用户通过界面选择“远程控制模式”中的“模式选择——系统照明模式”模块,再进行照明模式选择。
参与者
用户
次参与者
无
前置条件
用户选择“远程控制模式”;用例4未进行。
后置条件
无
事件流
1、用户选择系统“远程控制模式”。
2、用户选择“模式选择——系统照明模式”功能。
3、用户通过在界面上点击照明模式的选项进行选择。
用例编号
4
用例名称
切断系统电源
用例概述
用户通过界面点击“退出”
参与者
用户
次参与者
无
前置条件
无
后置条件
无
事件流
用户在主界面点击“退出”。
备注
此用例优先级别最高。
用例编号
5
用例名称
智能控制
用例概述
用户通过界面选择“智能控制”。
参与者
用户
次参与者
系统
前置条件
用例4未进行
后置条件
无
事件流
系统通过传感器采集到的数据和系统映射算法,进行智能化决策。
备注
智能控制过程中,用户可进行远程控制,执行用例1~4.
3.2、性能需求
3.2.1、速度
要求系统反应的速度和平时用户启动家电系统的速度一样。
对硬件要求较高,本文档不做详述。
3.2.2、鲁棒性
可承受同时多组指令的发送。
要求对室内做多个分区后,假使每个分区都同时出现人员的活动有较大变化,系统可同时对每个分区发出变化照明模式的指令。
3.2.3、容错性
发生错误和故障时,系统不会出现崩溃现象。
1、在智能控制功能上,当系统中出现某一个或若干个光源单元发生故障时,系统能继续对其他光源单元发出指令进行控制。
2、在用户远程控制上,当用户发出错误的指令时,系统发出错误警告,而不是执行该指令。
3.2.4、界面
将功能点进行组织分类,而不是全部罗列在界面上。
界面有多层,但界面层数不能太多,以2~3层为佳。
类似以下几幅图:
主界面样例
远程控制模式主界面
“卧室”选项界面样例
3.3、约束
3.3.1、运行环境
3.3.1.1、程序运行要求
本系统软件部分通过Web程序,以B/S架构实现,要求程序能通过能在Windows、安卓、i-OS等主流操作系统上使用的浏览器运行。
浏览器包括市面上主流浏览器,也包括本项目中专门开发的浏览器,界面要求见“3.2.4、界面”。
3.3.1.2、网络要求
1、能通过家庭局域网进行控制;
2、能通过登陆互联网进行控制。
3.3.2、硬件要求
硬件具体设计在此文档不做详述,此处只根据软件运行及家居设计,对硬件功能、性能作出要求。
3.3.2.1、传感器
感知如下物理信息:
需要探测物理信息
适用传感器
是否有人、人员数量
红外传感器
人员活跃度
人体移动传感器
光照强度
环境光传感器
3.3.2.1.1、红外传感器
利用红外辐射的热效应,探测器的敏感元件吸收辐射能后引起温度升高,进而使某些有关物理参数发生变化,通过测量物理参数的变化来确定探测器所吸收的红外辐射,进一步确定室内人员数量。
3.3.2.1.2、人体移动传感器
常用在走廊、过道等有人体活动的地方,与其它设备连接后,有人走动时自动控制电源接通。
3.3.2.1.3、环境光传感器
感知周围光照强度情况,并告知系统将照明设备光照强度调节至合适程度。
3.3.2.2、布线
要求
1、通过埋线进行布线
2、负载功率能承受全屋家用电器同时最大功率工作
3、超负荷时能自动切断全屋电源
4、局域网的网速能保证浏览、选择过程顺畅
3.3.2.4、功率控制
家电设备接入家庭电路中时,能通过变压器控制接入电器的电压大小。
3.3.2.3、硬件接口需求
能通过编码器、译码器实现以下数据转变:
1、将软件部分输入的数据编码成能控制硬件工作方式的机器语言;
2、将传感器采集到的物理信息译码成高级语言程序中的数据。
4、概要设计
4.1、系统架构设计
此处不详细设计硬件架构。
4.1.1、总体架构
由感知层生成物理信息、或由应用层输入人工选择,经过传输层传至智能处理层,系统根据流入数据生成指令序列,传输到相应的照明设备的功率控制处,对该设备的功率大小进行调节。
本文档只设计软件部分,对硬件设计不做详述,只提运行系统的硬件要求。
4.1.2、智能控制
4.1.3、远程控制:
基于B/S结构
4.2、系统需求设计
4.2.1、智能控制设计
4.2.1.1、实时感知
将室内划分为若干个区域,如下图:
将家中的照明设备按区域进行分区,例如客厅的区域为第一区,进一步将客厅的若干照明设备单元进行编号,编为1.1~1.n。
照明设备及传感器分布平面图
每一个照明设备单元旁,都安装有光传感器、人体移动传感器和红外传感器(详见3.3.2.1、传感器),通过传感器感知室内相应区域的光强、人员数量、人员活动情况等物理信息。
此部分由硬件实现,不作更进一步设计。
4.2.1.2、物理信息数字化
设定映射函数,规定与物理信息对应的数字信息。
例如:
以特定的数字序列表明物理信息:
有人与否+人员活动活跃度+光照强度。
如下图:
4.2.1.3、基础模式设定
设置各个光源单元的工作情况,并将该设置保存为基础模式。
以下图为例:
例:
设置除了客厅之外,其余区域的照明设备均不工作。
假设沙发在照明设备单元1.5旁,除了照明设备单元1.5(或旁边的1.3、1.4)为弱光外,其余照明设备单元均不工作。
将上述设置定为“暂时小憩模式”。
以应对当用户回家后因劳累而暂时在沙发上休息的情况。
4.2.1.4、智能化决策
假设,用户只出现在自己的客厅(假设是第1区域),且用户出现位置是沙发的位置(假设是1.5区域)、并长时间不作大范围移动,则系统将选择“暂时小憩模式”。
4.2.2、远程控制设计
4.2.2.1、模式选择
用户能通过界面对预先设定好的几种模式进行选择。
4.2.2.2、自定义模式
进入系统的模式设置业务后,用户能通过界面设置各个光源单元的工作情况,之后点击保存为自定义模式模式,并为该模式命名。
4.2.2.3、个别调控
用户能通过界面对任意一光源单元工作情况进行选择,如下图:
4.2、系统业务流程图
4.2.1、系统总体业务
4.2.2、远程控制业务
4.3、功能点概述及需求实现设计
4.3.1、程序界面样例
4.3.1.1、互联网登陆界面
4.3.1.2、程序主界面
4.3.1.3、远程控制模式主界面
4.3.1.4、模式定义界面
4.3.1.5、模式选择界面
4.3.1.6、个别调控界面
4.3.2、账号、密码管理
用于记录用户账号及密码,用户可登陆本公司服务器。
用户可以在局域网范围外,在通过互联网登录本公司服务器之后,可通过互联网向家庭局域网发送指令进行远程控制。
4.3.3、网络连接、传输
信号(包括物理信号、数字信号及指令等数据)能通过家庭局域网、互联网进行传输。
4.3.4、指令序列生成及管理
设计特定的数据结构存储指令序列;并能保存在内存中。
4.3.5、系统算法
1、“物理信号-数字信号”映射算法:
根据物理信号输出数字信号。
设计特定的数据结构,用以存储表示物理信息的数字信号。
2、根据输入的数字信号,输出指令。
设定基本模式所对应的物理环境模式,然后通过if-then机制进行“决策”。
即:
if(基础模式1对应的事件)
执行基础模式1
例:
If(用户在客厅沙发上&&活动幅度低、频率低)
执行“暂时小憩模式”
注:
具体例子见“4.2.1.3、基础模式设定”及“4.2.1.4、智能化决策”。
4.3.6、功能点及需求对应表
物理信息数字化
基础模式设定
智能化决策
进入人工控制
模式选择
自定义模式
个别调控
程序界面操作
√
√
√
√
账号、密码管理
√
网络连接、传输
√
√
√
√
√
指令生成及管理
√
√
系统映射算法
√
√
4.3.7、功能模块图及系统结构图
功能模块图
系统结构图
4.4、开发环境、使用技术、开发模式
开发环境:
Eclipse;
使用技术:
Web程序后台:
Java;
Web前端:
HTML、CSS、JavaScript;
使用数据库:
MySQL;
开发模式:
喷泉模型;
5、详细设计
5.1、功能点实现设计
5.1.1、账号、密码管理
1、建立密码资料数据表
2、根据密码,利用表单向导生成密码表单,只有系统管理员具有访问该表单的所有权力。
区分系统管理员和用户可在主程序中加一条判断语句来实现。
3、编写密码验证程序。
利用表单向导创建密码验证表单。
伪代码如下 :
账号oword
密码dbf
Inputoword
Inputdbf
IFfound()
oword=c->密码
ELSE
messagebox("无此用户!
",48,"提示窗口")
5.1.2、网络连接
系统网络架构如下:
通过局域网,可发送指令到设备上。
硬件要求:
照明设备能将指令转换为对变压器的控制。
数据发送,由Web程序实现。
出于对速度的考虑,基于UDP协议实现。
核心代码如下:
#include
#include
#include
#include"my_inet.h"
#include
#include
#include
#include
intmain()
{
inti;
structsockaddr_indest;
dest.sin_family=MY_PF_INET;
dest.sin_port=htons(16000);
dest.sin_addr.s_addr=0x013010AC;
//目的地址是172.16.48.1(网络字节序)
//创建UDP数据报服务的socket。
intfd=socket(MY_PF_INET,SOCK_DGRAM,MY_IPPROTO_UDP);
if(fd<0)
{
perror("socket:
");
return-1;
}
intbwrite=sendto(fd,"abcdefg",7,0,(structsockaddr*)&dest,sizeof(dest));
if(bwrite==-1)
{
perror("send:
");
close(fd);
return-1;
}
printf("sendto:
%d\n",bwrite);
close(fd);
return0;
}
5.1.3、指令序列生成及管理
1、设计特定的数据结构,详见“5.2.2、指令序列数据结构”;
2、系统预设基础模式时,定义数据结构中各变量值;该值对应光源单元工作模式;
3、用户在界面点击界面进行照明模式自定义时,既是定义该数据结构的变量,选择相应的工作模式既是对数据结构中相应变量进行数值定义。
核心代码见“5.2.2、指令序列数据结构”。
5.1.4、系统算法
5.1.4.1、“物理信号-数字信号”映射
使用模数转换器(A/D转换器)可以实现该映射,模数转化器内置程序具备此映射算法。
核心代码如下:
voidwritetoreg(byteword)
unsignedcharbyteword;
{
unsignedchartemp;
inti;
CS=0;
temp=0x80;
for(i=0;i<8;i++)
{
if((temp&byteword)==0)
DIN=0;
else
DIN=1;
SCLOCK=0;
SCLOCK=1;
temp=temp>>1;
}
}
voidreadfromreg(bytenumber)
intbytenumber;
{
intj;
unsignedchartemp1;
CS=0;
temp1=0x00;
for(j=0;j{
SCLOCK=0;
SCLOCK=1;
if(DOUT==0)
temp1=temp1<<1;
else
{
temp1=temp1<<1;
temp1=temp1+0x01;
}
if(j==7||j==15||j==23)
{
printf("%02BX",temp1);
temp1=0x00;
}
}
CS=1;
}
voidread()
{
unsignedchartemp1;
inti,j;
CS=0;
temp1=0x00;
for(i=0;i<200;i++)
{
writetoreg(0x43);
for(j=0;j<16;j++)
{
SCLOCK=0;
SCLOCK=1;
if(DOUT==0)
temp1=temp1<<1;
else
{
temp1=temp1<<1;
temp1=temp1+0x01;
}
if(j==7||j==15)
{
printf("%02BX",temp1);
temp1=0x00;
}
}
printf("");
while(DRDY);
}
printf("\n\n\n");
CS=1;
}
5.1.4.2、智能化选择
使用模数转换器获得的数字信号表明物理信息。
在设计系统基础模式时,为每个模式设计触发条件。
条件即为当数字信号的值在一定范围内时。
核心代码见“5.2.2、指令序列数据结构”。
5.2、数据结构设计
5.