一种基于Android的智能家居控制系统和控制方法与流程

文档序号:19941943发布日期:2020-02-14 23:15阅读:216来源:国知局
一种基于Android的智能家居控制系统和控制方法与流程

本发明属于自动控制和计算机科学技术领域,具体涉及一种基于android的智能家居控制系统和控制方法。



背景技术:

现有智能家居的产品种类数量和普及度都很低,没有一个适合大多数家庭的完整便捷的智能家居系统。随着现代生活的快节奏发展,普通家居虽可以满足人们的日常需求,但过程繁琐且低效,人们更倾向于使用能够异地实时管理的家居设备。智能家居系统实现服务的主要步骤分别为:数据采集、信息分析、行为决策和执行服务,目前较为成熟的智能家居系统通过将家庭住宅作为一个平台,综合采用各方面的技术比如控制技术、网络通信技术、自动感应技术等。但在智能控制家电与数据采集展示方面还存在着操作复杂、控制不稳定、价格昂贵和普及率低等问题。



技术实现要素:

本发明要解决的技术问题是:提供一种基于android的智能家居控制系统和控制方法,用于检测家居环境数据、控制家居环境指标,为用户提供家居数据指标管理、显示和查询的功能。

本发明为解决上述技术问题所采取的技术方案为:一种基于android的智能家居控制系统,包括场景设备、移动终端和服务端,场景设备、移动终端和服务端通过互联网连接;场景设备包括传感器模块、控制模块、执行模块和网络模块;传感器模块的信号输出端与控制模块的信号输入端连接,传感器模块用于向控制模块发送采集到的环境数据;控制模块的信号输出端与执行模块的信号输入端连接,控制模块用于向执行模块发送命令;执行模块用于根据收到的命令干涉应用场景的环境;网络模块的信号收发端与控制模块的信号收发端连接,网络模块用于场景设备与服务端之间收发数据;移动终端包括通过android系统的active组件创建的注册模块、登录模块、查询模块和主模块,注册模块、登录模块和查询模块分别与主模块连接;注册模块包括输入控件和监听器,注册模块用于通过输入控件获取用户输入的账号和密码信息并发送给主模块,接收主模块反馈的信息以判断注册是否成功,监听器用于监控用户输入的访问信息并更新数据库;登录模块包括输入控件,登录模块用于通过输入控件获取用户输入的账号和密码信息并发送给主模块,接收主模块反馈的信息以判断登录是否成功;查询模块包括输入控件和图表控件,查询模块用于通过输入控件获取用户输入的信息并发送给主模块,接收主模块反馈的数据并通过图表控件显示数据;主模块包括网络工具集和数据集,网络工具集包括控制器、服务器访问接口和解析器,数据集包括标志位;控制器通过服务器访问接口与互联网连接,控制器用于根据收到的登录模块或查询模块发送的数据向服务端发送请求;服务器访问接口通过解析器与数据集连接,服务器访问接口用于将收到的服务端返回的数据解析后存入数据集中;标志位用于表示控制器发出的请求是否完成;服务端包括通过j2ee技术和ssm框架整合连接的表现层、控制层、业务逻辑层和持久层;表现层用于将收到的请求转发给控制层;控制层用于调用业务逻辑层和转发请求,并回应表现层;业务逻辑层用于调用持久层和转发请求,并向控制层返回处理逻辑;持久层用于访问数据库、接收数据库数据并向业务逻辑层返回实体化的数据。

按上述方案,传感器模块包括温度传感器、湿度传感器、光照传感器;所述的执行模块包括加热器、制冷器、加湿器、抽湿器、照度调节器、窗帘控制器。

按上述方案,场景设备还包括电源模块和调试模块;电源模块的电源输出端分别与传感器模块、控制模块、执行模块和网络模块的电源输入端连接,用于为传感器模块、控制模块、执行模块和网络模块提供电源;调试模块与控制模块连接,用于调试场景设备。

按上述方案,查询模块包括实时查询模块和历史查询模块;实时查询模块包括输入控件和图表控件,用于通过输入控件获取用户选择的场景设备信息并发送给主模块,接收主模块反馈的对应场景设备的实时数据,通过图表控件显示实时数据;历史查询模块包括输入控件和图表控件,用于通过输入控件获取用户输入的场景设备信息和日期信息并发送给主模块,接收主模块反馈的对应场景设备在对应日期的历史数据,通过图表控件显示历史数据。

按上述方案,移动终端还包括用户信息模块;用户信息模块包括输入控件和图表控件,用于通过输入控件获取用户输入的信息并发送给主模块,接收主模块反馈的数据并通过图表控件显示数据。

进一步的,数据集还包括年数据、月数据、日数据、常用账号和用户设备;年数据用于按年度存储服务器返回的场景设备的测试数据;月数据用于按月存储服务器返回的场景设备的测试数据;日数据用于按天存储服务器返回的场景设备的测试数据;常用账号用于存储最近登录的若干个账号信息;用户设备用于存储场景设备的识别信息。

一种基于android的智能家居控制方法,包括以下步骤:

s1:场景设备采集并定期向服务端发送家居环境数据;

s2:服务端接收并存储场景设备发送的数据;

s3:移动终端采集到用户操作数据并向服务端发送请求;

s4:服务端匹配收到的数据和数据库中的数据,并将匹配结果封装后发送给移动终端;

s5:移动终端解析、存储收到的数据;

s6:若移动终端的请求完成则置位标志位且向用户返回数据;若移动终端的请求未完成则不置位标志位且不向用户返回数据。

进一步的,若所述的步骤s3中移动终端通过注册模块的输入控件采集到用户的账号密码数据并向服务端发送注册请求,则步骤s4的具体步骤为:服务端对比收到的账号密码数据和数据库中已有用户的账号密码数据,若数据库中没有相同账号的用户时,则将收到的账号密码数据添加进数据库,并将注册成功的信息封装后发送给移动终端,若数据库中有相同账号的用户时,则将注册失败的信息封装后发送给移动终端;步骤s6的具体步骤为:若移动终端收到注册成功的信息,则主模块置位标志位并显示“注册成功”;若移动终端收到注册失败的信息,则主模块不置位标志位并显示“注册失败”。

进一步的,若所述的步骤s3中移动终端通过登录模块的输入控件采集到用户的账号密码数据并向服务端发送登录请求,则步骤s4的具体步骤为:服务端对比收到的账号密码数据和数据库中已有用户的账号密码数据,若数据库中有相同账号和密码的用户时,则将登录成功的信息封装后发送给移动终端,若数据库中没有相同账号的用户时,则将登录失败的信息封装后发送给移动终端;步骤s6的具体步骤为:若移动终端收到登录成功的信息,则主模块置位标志位、显示“登录成功”并将账号信息存入数据集的常用账号;若移动终端收到登录失败的信息,则主模块不置位标志位并显示“登录失败”。

进一步的,若所述的步骤s3中移动终端通过查询模块的输入控件采集到用户输入的包括场景设备信息和日期信息的查询请求并向服务端发送查询请求,则步骤s4的具体步骤为:服务端根据收到的查询请求在数据库中查找对应场景设备在对应日期的家居环境信息,若找到对应的家居环境信息则将该家居环境信息和获取成功的信息封装后发送给移动终端,若未找到则将获取失败的信息封装后发送给移动终端;步骤s6的具体步骤为:若移动终端收到家居环境信息和获取成功的信息,则置位标志位、显示“获取成功”并通过查询模块的图表控件显示家居环境信息;若移动终端收到获取失败的信息,则不置位标志位并显示“获取失败”。

本发明的有益效果为:

1.本发明的一种基于android的智能家居控制系统通过服务端定期存储场景设备采集发送的家居环境数据,移动终端请求事件触发的服务端调用数据库过程,实现了检测家居环境数据、控制家居环境指标,为用户提供家居数据指标管理、显示和查询的功能。

2.本发明将所有家居设备的管理集于移动终端一体,减少了用户对家居设备管理的复杂度。

3.本发明通过智能有效地管理家居设备,减少了因不当操作缩短家居设备寿命的几率,构建了一个舒适便捷、高效稳定、低功耗的智能家居环境。

附图说明

图1是本发明实施例的总体图。

图2是本发明实施例的场景设备的功能框图。

图3是本发明实施例的移动终端的功能框图。

图4是本发明实施例的服务端的功能框图。

图5是本发明实施例的移动终端的显示界面图。

图6是本发明实施例的流程图。

具体实施方式

下面结合附图和具体实施方式对本发明作进一步详细的说明。

参见图1,本发明的实施例包括场景设备、移动终端和服务端,场景设备、移动终端和服务端通过互联网连接。

参见图2,场景设备包括传感器模块、控制模块、执行模块、网络模块、电源模块和调试模块。传感器模块包括高精度、抗干扰、响应快的温湿度一体化数字传感器dht11和低成本高性能的数字光照强度传感器bh1750,传感器模块的信号输出端与控制模块的信号输入端连接,用于向控制模块发送采集到的环境数据。控制模块选用stc公司的单片机15f2k60s2,此单片机采用5v供电,具有内部时钟,外围电路简单;单片机使用p0端口进行传感器元件的i/o操作,使用p2端口与网络模块通信,将所有引脚通过排针引出以备调试用。控制模块的信号输出端与执行模块的信号输入端连接,用于向执行模块发送命令干涉应用场景。执行模块包括加热器、制冷器、加湿器、抽湿器、照度调节器、窗帘控制器和发光二极管,用于根据收到的命令干涉应用场景的环境和显示状态。网络模块采用嵌入式以太网控制器w5500,该模块包括二次电源芯片asm1117、25mhz晶振和带有网络变压器的rj-45接口,模块的供电电压范围为3.3v至5v,能内部提供稳定时钟信号和网络速率指示灯,方便用户查看;网络模块的信号收发端与控制模块的信号收发端连接,用于场景设备与服务端之间收发数据。电源模块采用220v交流输入、5v直流输出的电源适配器供电,通过电源模块的电源输出端分别与传感器模块、控制模块、执行模块和网络模块的电源输入端连接,用于为传感器模块、控制模块、执行模块和网络模块提供电源。调试模块与控制模块连接,用于调试场景设备。

参见图3,移动终端包括通过android系统的active组件创建的注册模块registeractivity、登录模块loginactivity、实时查询模块realtimeactivity、历史查询模块historyactivity、用户信息模块myinforactivity和主模块mainactivity,注册模块、登录模块、实时查询模块、历史查询模块和用户信息模块分别与主模块连接。一个activity的生存期涉及七个环节,启动一个活动时,首先调用oncreate()回调函数;执行oncreate()函数时,初始化本次活动所使用到的布局、事件、数据等;执行完oncreate()函数后,若当前活动处于用户可见的状态,则执行onstrat()回调函数完成由可见到不可见的转化过程的步骤;然后进入onresume()回调函数,该活动准备好和用户通信,当执行完onresume()函数后,该活动即处于运行状态。在用户操作的过程中,如果又开启一个新的活动,则原来的活动执行onpause()函数进入不可见状态;同时释放部分cpu资源并保留数据;onstop()回调函数的功能与onpause()函数相似;ondestroy()回调函数用于销毁活动,释放活动占用的资源。

注册模块包括输入控件和监听器,注册模块用于通过输入控件获取用户输入的账号和密码信息并发送给主模块,接收主模块反馈的信息以判断注册是否成功,监听器用于监控用户输入的访问信息并更新数据库;android系统在5.0版本之后加入了导航菜单用于为应用添加二级菜单,主模块在初始化时实例化一个抽屉mnavigationdrawerfragment;抽屉中的项目列表用于为用户提供可用的选项,抽屉的oncreateview函数中加载布局和项目列表listview;为了实现对用户点击事件的响应,将这些选项加入监听器,由selectitem(position)来决定当前用户意图对抽屉进行的操作。

登录模块包括输入控件,用于通过输入控件获取用户输入的账号和密码信息并发送给主模块,接收主模块反馈的信息以判断登录是否成功。

实时查询模块包括输入控件和图表控件,用于通过输入控件获取用户选择的场景设备信息并发送给主模块,接收主模块反馈的对应场景设备的实时数据,通过图表控件显示实时数据。

历史查询模块包括输入控件和图表控件,用于通过输入控件获取用户输入的场景设备信息和日期信息并发送给主模块,接收主模块反馈的对应场景设备在对应日期的历史数据,通过图表控件显示历史数据。

用户信息模块包括输入控件和图表控件,用于通过输入控件获取用户输入的信息并发送给主模块,接收主模块反馈的数据并通过图表控件显示数据。

为了在活动中同时显示多个界面,在主活动中加入碎片fragment以合理利用屏幕空间:在主模块中实例化一个继承于碎片的占位碎片placeholderfragment类型对象,包含简单视图,用于在用户选择不同的抽屉选项时将主模块的内容修改为对应布局;当用户选择抽屉按钮时调用占位碎片的newinstance方法,并在该方法中设置一些初始参数;随后根据之前设置的参数,在oncreateview回调函数中加载不同的碎片布局xml文件、设置监听器并返回加载好的view。本发明中使用switch语句选择加载不同布局,分别是“实时数据”布局、“历史数据”布局、和设备管理页面布局;其中“实时数据”布局和“历史数据”布局都包含设备列表,因此在加载的时候需要得到列表的数据源以确保数据的正确显示。为查看每个设备的“实施数据”和“历史数据”,提供设备列表。这些设备列表使用list类型以static方式存放在主模块中,使用适配器devicelistadapter将数据list和列表控件绑定,并设置列表布局;列表的每一项均显示“实时数据”和“历史数据”的设备名和设备mac地址。

主模块包括网络工具集netutils和数据集,网络工具集包括控制器、服务器访问接口和json解析器,数据集包括年数据yeardata、月数据mondata、日数据daydata、常用账号currentaccount、用户设备userdevices和标志位flags;控制器通过服务器访问接口与互联网连接,用于根据收到的登录模块或查询模块发送的数据向服务端发送请求;服务器访问接口通过json解析器与数据集连接,用于将收到的服务端返回的数据解析后存入数据集中;年数据用于按年度存储服务器返回的场景设备的测试数据;月数据用于按月存储服务器返回的场景设备的测试数据;日数据用于按天存储服务器返回的场景设备的测试数据;常用账号用于存储最近登录的若干个账号信息;用户设备用于存储场景设备的识别信息;标志位用于表示控制器发出的请求是否完成。

参见图4,服务端包括通过j2ee(java2platform,enterpriseedition,java2平台企业版)技术和ssm(spring+springmvc+mybatis)框架整合连接的表现层view、控制层controller、业务逻辑层service和持久层dao。表现层用于将收到的请求转发给控制层;控制层用于调用业务逻辑层和转发请求,并回应表现层;业务逻辑层用于调用持久层和转发请求,并向控制层返回处理逻辑;持久层用于访问数据库、接收数据库数据并向业务逻辑层返回实体化的数据。

在本系统中与spring的有关配置包括:

对web.xml的配置:依据控制反转即依赖注入的特性,配置一个前端控制器servlet,其中contextconfiglocation是配置springmvc加载的配置文件、处理映射器和适配器等。

对applicationcontext.xml的配置:包括spring与springmvc的整合。采用自动扫描的方式配置根视图,扫描controller包下面的所有控制器,使用注解来指定访问路径从而提高开发效率;若使用web开发则还需配置视图解析器,在controller中设置视图名时自动加上前缀和后缀。

对spring-datasource.xml的配置:首先读入配置文件用于配置sqlsessionfactory,整合spring和mybatis,加载mybatis的全局配置文件,令其name=configlocation,指定类文件classpath为mybatis-config.xml;然后是数据库连接池,mybatis的配置文件是mybatis-config.xml;最后是事务控制,对mybatis操作数据库、对spring使用jdbc控制类以配置数据源。

springmvc中控制器的编写是整个系统的服务端设计的核心。与客户端有关的核心功能在控制器编写设计,例如对于设备查询功能,客户端向服务端发送post请求,服务端获取客户端传送过来的账号account和密码password参数,前往数据库对比,若匹配成功后,则找到该用户名下的所有场景设备信息,将所有场景设备信息和其他的用户信息如:mobile、address等,再返回给客户端。

最后对mybatis的进行相关配置即mybatis-config.xml。mybatis-config.xml是mybatis的配置文件,数据库连接池已经在spring-datasource.xml中配置过;通过扫描的方式进行批量加载映射文件对mapper映射文件进行配置。

参见图6,一种基于android的智能家居控制方法,包括以下步骤:

s1:场景设备采集并定期向服务端发送家居环境数据;

s2:服务端接收并存储场景设备发送的数据;

s3:移动终端采集到用户操作数据并向服务端发送请求;

s4:服务端匹配收到的数据和数据库中的数据,并将匹配结果封装后发送给移动终端;

s5:移动终端解析、存储收到的数据;

s6:若移动终端收到的数据满足请求则置位标志位且向用户返回数据;若移动终端收到的数据不满足请求则不置位标志位且不向用户返回数据。

若用户点击移动终端的注册按钮并输入账号和密码,移动终端通过注册模块的输入控件采集到用户的账号密码数据,将注册信息放入监听器的参数params并传给控制器的函数execute,由函数execute访问服务端并向服务端发送注册请求,服务端对比收到的账号密码数据和数据库中已有用户的账号密码数据,若数据库中没有相同账号的用户时,则将收到的账号密码数据添加进数据库,并将注册成功的信息封装后发送给移动终端,若数据库中有相同账号的用户时,则将注册失败的信息封装后发送给移动终端;移动终端通过json解析器解析封装数据后存入数据集;若移动终端收到注册成功的信息,则主模块置位标志位flag的值为true并刷新移动终端界面显示“注册成功”;若移动终端收到注册失败的信息,则主模块不置位标志位并刷新移动终端界面显示“注册失败”。

若用户点击移动终端的登录按钮并输入账号和密码,移动终端通过登录模块的输入控件采集到用户的账号密码数据,将登录信息传给控制器的函数execute,由函数execute访问服务端并向服务端发送登录请求,服务端对比收到的账号密码数据和数据库中已有用户的账号密码数据,若数据库中有相同账号和密码的用户时,则将登录成功的信息封装后发送给移动终端,若数据库中没有相同账号的用户时,则将登录失败的信息封装后发送给移动终端;移动终端通过json解析器解析封装数据后存入数据集;若移动终端收到登录成功的信息,则主模块置位标志位flag的值为true、刷新移动终端界面显示“登录成功”并将账号信息存入数据集的常用账号;若移动终端收到登录失败的信息,则主模块不置位标志位并刷新移动终端界面显示“登录失败”。

若用户点击移动终端的实时查询按钮,移动终端通过实时查询模块的输入控件采集到用户输入的包括场景设备信息的实时查询请求,将查询请求传给控制器的函数execute,由函数execute访问服务端并向服务端发送实时查询请求,获取连接的域名是url_base+"androidsssjshow.do,服务端根据收到的实时查询请求的场景设备信息在数据库中查找对应场景设备的实时的家居环境信息,若找到对应的家居环境信息则将该家居环境信息和获取成功的信息封装后通过handler方法传递message发送给移动终端,若未找到则将获取失败的信息封装后发送给移动终端;移动终端通过json解析器解析封装数据后存入数据集;若移动终端收到家居环境信息和获取成功的信息,则主模块置位标志位flag的值为true、显示“获取成功”并通过实时查询模块的图表控件以柱状图的形式显示家居环境信息,参见图5的第一幅图;若移动终端收到获取失败的信息,则不置位标志位并显示“获取失败”。

若用户点击移动终端的历史查询按钮,进入查询界面,用户选择年或月或日,移动终端通过历史查询模块的输入控件采集到用户输入的包括场景设备信息和日期信息的历史查询请求,将查询请求传给控制器的函数execute,由函数execute访问服务端并向服务端分别发送年数据查询请求optiontype_gethtdatabyyear、月数据查询请求optiontype_gethtdatabymonth或日数据查询请求optiontype_gethtdatabyday,通过httpget请求方法请求指定的url页面的信息;服务端根据收到的历史查询请求的场景设备信息在数据库中查找对应场景设备的对应年、月或日的家居环境信息,若找到对应的家居环境信息则将该家居环境信息和获取成功的信息封装后发送给移动终端,若未找到则将获取失败的信息封装后发送给移动终端;移动终端通过json解析器解析封装数据后存入数据集;若移动终端收到家居环境信息和获取成功的信息,则主模块置位标志位flag的值为true、显示“获取成功”并通过历史查询模块的图表控件以折线图的形式显示家居环境信息,参见图5的第2、3、4幅图;若移动终端收到获取失败的信息,则不置位标志位并显示“获取失败”。

若用户点击移动终端的用户信息按钮,移动终端通过用户信息模块的输入控件采集到用户信息查询请求,将包含当前用户的账号信息的查询请求传给控制器的函数execute,由函数execute访问服务端并向服务端发送用户信息查询请求,服务端对比收到的账号密码数据和数据库中已有用户的账号密码数据,若数据库中有相同账号和密码的用户时,则将账号信息、账号对应的场景设备的信息和获取成功的信息封装后发送给移动终端,若数据库中没有相同账号的用户时,则将获取失败的信息封装后发送给移动终端;移动终端通过json解析器解析封装数据后存入数据集;若移动终端收到获取成功的信息,则主模块置位标志位flag的值为true、刷新移动终端界面显示“获取成功”、账号信息和场景设备信息,并将账号信息存入数据集的常用账号,将场景设备信息存入数据集的用户设备;若移动终端收到获取失败的信息,则主模块不置位标志位并刷新移动终端界面显示“获取失败”。

以上实施例仅用于说明本发明的设计思想和特点,其目的在于使本领域内的技术人员能够了解本发明的内容并据以实施,本发明的保护范围不限于上述实施例。所以,凡依据本发明所揭示的原理、设计思路所作的等同变化或修饰,均在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1