智能家居控制系统设计_第1页
智能家居控制系统设计_第2页
智能家居控制系统设计_第3页
智能家居控制系统设计_第4页
智能家居控制系统设计_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

姓名二级学院专业班级智能家居控制系统设计摘要:本文简朴介绍了智能家庭控制系统的构成、旅行、功效、系统设计以及产品选择的要点,工程设计事例等。Summary:Thisarticlesimplyintroducesthecompositionoftheintelligenthomecontrolsystem,travel,function,systemdesignandproductselection,themainpointsoftheengineeringdesignexamples,etc核心词:家庭控制器,自动监控,安全防备。Antistop:HomeController,automaticmonitoring,safetyprotection目录前言----------------------------------------------------------3智能家居控制系统概述------------------------------------------4智能家居控制系统功效------------------------------------------43.1家庭通信----------------------------------------------------43.2家庭设备自动监控--------------------------------------------43.3家庭安全防备------------------------------------------------4智能家居控制系统类型------------------------------------------54.1系统类型----------------------------------------------------54.2基本特点、功效、合用范畴------------------------------------55.系统设计及产品选用要点----------------------------------------75.1智能家庭控制系统类型的选用---------------------------------75.2家庭控制器的选用-------------------------------------------75.3总线技术及模块化设计------------------------------------------75.4扩展功效----------------------------------------------------76.设备的安装----------------------------------------------------86.1交换机、路由器、控制器、放大箱、分派箱、电话分线箱---------------86.2家庭控制器-------------------------------------------------86.3可燃气体探测器----------------------------------------------96.4感温探测器设立-----------------------------------------------96.5紧急按钮开关------------------------------------------------96.6门(窗)磁开关------------------------------------------------96.7玻璃破碎探测器----------------------------------------------96.8被动红外侵入探测器和被动红外/微波双技术探测器------------------96.9红外遥控器-------------------------------------------------97.工程设计实例---------------------------------------------------108.设计中应注意的事项----------------------------------------------119.附录---------------------------------------------------------11前言随着国民经济和科学技术水平的提高,特别是计算机技术、通信技术、网络技术、控制技术的迅猛发展与提高,促使了家庭实现了生活当代化,居住环境舒适化、安全化。这些高科技已经影响到人们生活的方方面面,变化了人们生活习惯,提高了人们生活质量,家居智能化也正是在这种形势下应运而生的。2.智能家居控制系统概述智能家庭控制系统是以HFC、以太网、现场总线、公共电话网、无线网的传输网络为物理平台,计算机网络技术为技术平台,现场总线为应用操作平台,构成一种完整的集家庭通信、家庭设备自动控制、家庭安全防备等功效的控制系统。智能家居控制系统的总体目的是通过采用计算机技术、网络技术、控制技术和集成技术建立一种由家庭到社区乃至整个都市的综合信息服务和管理系统,以此来提高住宅高新技术的含量和居民居住环境水平。系统一般由系统服务器、家庭控制器(多种模块)、多种路由器、电缆调制解调器头端设备CMTS、交换机、通讯器、控制器、无线收发器、多种探测器、多种传感器、多种执行机构、打印机等重要部分构成。可视门禁控制可视门禁控制窗帘控制灯光控制娱乐系统控制防盗警报控制远程医疗控制燃煤气报警控制智能家居控制系统电话、手机、电脑社区其它应用系统社区防盗警报系统智能三表查抄系统Internert网路由、防火墙家庭网关社区控制中心PDA\手提\PC服务器3.智能家居控制系统功效智能家庭控制系统的重要功效涉及家庭通信、家庭设备自动控制、家庭安全防备三个方面。3.1家庭通信家庭通信可采用电话线路、计算机互联网、CATV线路、无线局域网等方式。(1)电话线路通过电话线路实现双向传输语音信号和数据信号。(2)计算机互联网通过互联网实现信息交互、综合信息查询、网上教育、医疗保健、电子邮件、电子购物等。(3)CATV线路通过CATV线路实现VOD点播和多媒体通信。(4)无线局域网通过无线收发器、天线、多种无线终端,实现双向传输数据信号。3.2家庭设备自动监控家庭设备自动监控涉及电器设备的集中、遥控、远距离异地(通过电话或Internet)的监视、控制及数据采集。(1)家用电器的监视和控制按照预先所设定程序的规定对热水器、微波炉、视像音响等家用电器进行监视和控制。(2)热能表、燃气表、水表、电度表的数据采集、计量和传送根据社区物业管理的规定所设立数据采集程序,通过传感器对热能表、燃气表、水表、电度表的用量进行自动数据采集、计量,并将采集成果远程传送给社区物业管理系统。(3)空调机的监视、调节和控制按照预先所设定的程序,根据时间、温度、湿度等参数对空调机进行监视、调节和控制。(4)照明设备的监视、调节和控制按照预先设定的时间程序,分别对各个房间照明设备的开、关进行控制,并可自动调节各个房间的照度。(5)窗帘的控制按照预先设定的时间程序,对窗帘的启动/关闭进行控制。3.3家庭安全防备家庭安全防备重要涉及多火灾报警、可燃气体泄漏报警、防盗报警、紧急求救、多防区的设立、访客对讲等。家庭控制器内按等级预先设立若干个报警电话号码(如家人单位电话号码、手机电话号码、寻呼机电话号码和社区物业管理安全保卫部门电话号码等),在有报警发生时,按等级的次序依次不停地拨通上述电话进行报警(可报出家中是哪个系统报警了)。同时,多种报警信号通过控制网络传送至社区物业管理中心,并可与其它功效模块实现可编程的联动(如可燃气体泄漏报警后,联动关闭燃气管道上的电磁阀)。(1)防火灾发生通过设立在厨房的感温探测器和设立在客厅、卧室等的感烟探测器,监视各个房间内有无火灾的发生。如有火灾发生家庭控制器发出声光报警信号,告知家人及社区物业管理部门。家庭控制器还能够根据有人在家或无人在家的状况,自动调节感温探测器和感烟探测器的敏捷度。(2)防可燃气体泄漏通过设立在厨房的可燃气体探测器,监视燃气管道、灶含有无燃气泄漏。如有燃气泄漏家庭控制器发出声光报警信号,并联动关闭燃气管道上的电磁阀,同时告知家人及社区物业管理部门。(3)防盗报警防盗报警的防护区域分成两部分,即住宅周界防护和住宅内区域防护。住宅周界防护是指在住宅的门、窗上安装门磁开关,在对外的玻璃窗、门附近安装玻璃破碎探测器;住宅内区域防护是指在重要通道、重要的房间内安装被动红外探测器或被动红外/微波双技术探测器。当家中有人时,住宅周界防护的防盗报警设备(门磁开关、玻璃破碎探测器)设防,住宅内区域防护的防盗报警设备(红外探测器或被动红外/微波双技术探测器)撤防。当家人出门后,住宅周界防护的防盗报警设备(门磁开关、玻璃破碎探测器)和住宅内区域防护的防盗报警设备(被动红外探测器或被动红外/微波双技术探测器)均设防。当有非法侵入时,家庭控制器发出声光报警信号,并告知家人及社区物业管理部门。另外,通过程序可设定报警装置的等级和报警器的敏捷度。(4)访客对讲住宅的主人通过访客对讲设备与来访者进行双向通话或可视通话,确认与否允许来访者进人。住宅的主人运用访客对讲设备,能够对大楼入口门或单元门的门锁进行启动和关闭控制。(5)紧急求救当碰到意外状况(如疾病或有人非法侵入)发生时,按动报警按钮向社区物业管理部门进行紧急求救报警。紧急求救信号在网络传输中含有最高的优先级别,由于是人在紧急状况下的求救信号,其误报的可能性很小。4.智能家居控制系统类型4.1系统类型智能家庭控制系统可分成采用公共电话网的智能家庭控制系统、HFC的智能家庭控制系统、以太网的智能家庭控制系统、LonWorks的智能家庭控制系统、KS485的智能家庭控制系统、无线网的智能家庭控制系统等类型。4.2基本特点、功效、合用范畴(1)采用公共电话网的智能家庭控制系统采用公共电话网的智能家庭控制系统图参见国家建筑原则设计<智能家居控制系统设计施工图集》03X602第14页。·基本特点:家庭智能控制器内配备了与电话线连接的收发器,运用电话网络作为信息传输网。该系统不仅在功效上能完全满足规定,并且大大地简化了布线,能够节省布线的投资。·系统构成:系统由系统服务器、家庭控制器(内置了与电话线连接的收发器)、路由器、收发器、多种探测器、多种传感器、多种执行机构、打印机等构成。·系统功效:实现家庭通信、家庭设备自动控制、家庭安全防备。·合用范畴:该系统合用于新建、扩建的智能化住宅(社区)工程,且特别合用于改造的智能化住宅(社区)工程,运用原有的电话线就可实现数据信号的共网传输。(2)采用HFC的智能家庭控制系统采用HFC的智能家庭控制系统图参见国家建筑原则设计<智能家居控制系统设计施工图集》03X602第15页。·基本特点:家庭智能控制器内配备了CableModem,运用有线电视的HFC网络作为信息传输网。该系统不仅在功效上能完全满足规定,并且大大地简化了布线,能够节省布线的投资。HFC网络采用共享方式,其共享带宽为36Mbps。当上网人数较多时,上网的速度会变慢。由于CableModem设备费用较高,顾客网络的开通费用高。·系统构成:系统由系统服务器、家庭控制器(内置了CableModem)、路由器、电缆调制解调器头端设备CMTS、有线电视传输网络、多种探测器、多种传感器、多种执行机构、打印机等构成o·系统功效:实现家庭通信、家庭设备自动控制、家庭安全防备。·合用范畴:该系统合用于新建、扩建的智能化住宅(社区)工程,且特别合用于改造的智能化住宅(社区)工程,仅将原有的有线电视HFC网络进行双向改造,就可实现数据和图像信号的共网传输。(3)采用以太网的智能家庭控制系统采用以太网的智能家庭控制系统图参见国家HYPERLINK建筑原则设计<智能家居控制系统设计施工图集》03X602第16、17页。

·基本特点:家庭智能控制器内配备了以太网网卡,运用以太网作为信息传输网。以太网同时支持住户HYPERLINK计算机和智能家庭控制系统。该系统不仅在功效上能完全满足规定,并且大大地简化了布线,能够节省布线的HYPERLINK投资。

以太网传输速率较高,传输速率有10Mbps、100Mbps等。根据传输距离的规定,由社区物业HYPERLINK管理中心至各楼交换机采用5类以上4对对绞线、多模光缆或单模光缆,由交换机至家庭控制器采用超5类4对对绞电缆。

·系统构成:系统由系统服务器、家庭控制器、路由器、交换机、多种探测器、多种传感器、多种执行机构、打印机等构成。

·系统功效:实现家庭HYPERLINK通信、家庭设备自动控制、家庭安全防备。

·合用范畴:该系统合用于新建、扩建和改造的智能化住宅(社区)工程,用以太网实现数据和图像信号的双向传输。

(4)采用LonWorks的智能家庭控制系统采用LonWorks的智能家庭控制系统图参见国家建筑原则设计《智能家居控制系统设计施工图集如3X602第21、22、23页。

·基本特点:采用一种覆盖全部ISO/OSI原则七层通信合同、开放性的LonWork总线技术,一台系统服务器最多可连接127台LONWorks路由器,一台LonWorks路由器最多可连接63台家庭控制器。每台家庭控制器为LonWork一种通道上的网络节点,每个网络节点涉及有神经元(NEURON)芯片、振荡器、电源、一种通过媒介通信的收发器和与监控设备接口的I/O设备(电路)、存储器等。

LonWorks直接通信距离可达2700m(双绞线、78Kbps),其通信传输速度最大可达1.25Mbps(此时有效传输距离为130m)。LonWorks路由器至社区物业管理中心线路长度超出2700m时,需在总线上加装中继器。传输线一般采用双绞线,根据需要也可采用同轴电缆或HYPERLINK电力线。

·系统构成:由系统服务器、家庭控制器、路由器、LonWorks路由器、交换机、多种探测器、多种传感器、多种执行机构、打印机等构成。

·系统功效:实现家庭通信、家庭设备自动控制、家庭安全防备。

·合用范畴:该系统特别合用于新建、扩建的智能化住宅(社区)工程。

(5)采用KS485的智能家庭控制系统

采用KS485的智能家庭控制系统图参见国家建筑原则设计<智能家居控制系统设计施工图集>03X602第18、19、20页。

·基本特点:KS485串行接口总线为主从式网络,它的通信为半双工、采用双向单信道连接方式。RS485串行接口总线的传输介质采用双绞线,它能够高速地进行远距离传输,传输速度与传输距离的技术指标以下:传输速率为10Mbit/s时,最大传输距离是12m;传输速率为1Mbit/s时,最大传输距离是120m;传输速率为100kbit/s时,最大传输距离是1200m。

·系统构成:由系统服务器、家庭控制器、路由器、通讯器、控制器、多种探测器、多种传感器、多种执行机构、打印机等构成。

·系统功效:实现家庭通信、家庭设备自动控制、家庭安全防备。

·合用范畴:该系统特别合用于新建、扩建的智能化住宅(社区)工程。

(6)采用无线网的智能家庭控制系统

采用无线网的智能家庭控制系统图参见国家建筑原则设计<智能家居控制系统设计施工图集>03X602第24、25页。

·基本特点:运用无线作为信息传输网,该系统不仅在功效上能完全满足规定,并且从系统服务器至家庭控制器、家庭控制器至多种现场末端装置均采用无线传输方式,社区、楼内、户内无需布线,施工简朴,能够节省施工的投资。

无线网的工作频率符合IEEE802.11b原则规定。

·系统构成:由系统服务器、家庭控制器、无线收发器、多种探测器、多种传感器、多种执行机构、打印机等构成。

·系统功效:实现家庭通信、家庭设备自动控制、家庭安全防备。

·合用范畴:该系统合用于新建、扩建的智能化住宅(社区)工程,且特别合用于改造的智能化住宅(社区)工程,不用敷设线路就可实现数据信号的传输。5.系统设计及产品选用要点

5.1智能家庭控制系统类型的选用

新建、扩建的智能化住宅(社区)工程,宜采用LonWorks的智能家庭控制系统、以太网的智能家庭控制系统或采用RS485的智能家庭控制系统。改造的智能化住宅(社区)工程,宜采用HYPERLINK公共电话网的智能家庭控制系统、HFC的智能家庭控制系统或无线网的智能家庭控制系统。

5.2家庭控制器的选用

家庭控制器的选用重要涉及功效、总线技术及模块化设计、扩展功效、可按顾客的基本规定进行配备等方面的选用规定。

(1)家庭控制器功效的选用

家庭控制器一般含有下列功效:

·家庭防盗报警;

·家庭火灾报警;

·家庭燃气泄露报警;

·家庭紧急求助;

·远程设防与撤防;

·远程报警;

·访客对讲;

·家用电器监控;

·家用表具数据采集及解决;

·空调机监控;

·接入网接口;

·社区HYPERLINK电子公示;

·信息查询;

·家用设备报修等。

(2)家庭控制器功效的选择

在工程设计中,家庭控制器功效的选择可参见下表所示。

5.3总线技术及模块化设计

·家庭控制器规定采用总线技术,如LonWorks、R5485、BACnet、C^NBlls、CEBus、X一10;

·家庭控制器规定采用模块化设计,方便顾客能够根据需求选择不同的模块完毕不同的功效。

5.4扩展功效

家庭控制器要有一定的扩展功效,考虑能适应此后发展的需要。可按顾客的基本规定进行配备应能根据顾客提出有哪些被控设备及监视控制规定(功效规定)等因素,来对家庭控制器构成进行配备,包含模块种类的选择和多种模块数量的选择。6.设备的安装6.1交换机、路由器、控制器、放大箱、分派箱、电话分线箱康居住宅家庭控制器功效设立表级嗣消防安防访客对讲家电监控表具数据远传基本级(1A)1.在住户内安装紧急按钮开关。2.在住户内安装入侵报警探测器。含有语音对讲及控制启动楼道HYPERLINK人口处防盗门功效。1~2点热能表、燃气表、水表、电度表的自动抄收及远传、超限判断、自动检查、分时计费、实时计量、管理功效。提高级(2A)在室内安装可燃气体泄漏自动报警装置。且能就地发出声光报警信号。1.在住户内两处安装紧急按钮开关。2.在住户内安装入侵报警探测器,在户门、及用台、外窗安装人侵报警装置。含有语音对讲及控镧启动楼道人口处防盗门功效。可实现住户与安防监控中心的直接联系。2点以上热能表、燃气表、水表、电度表的自动抄收及远传、超限爿断、自动检查、分时计费、实时计量、管理功效。先进级(3A)1.在室内安装可燃气体泄漏自动报警装置,当燃气体泄漏报警后能自动切断气源、打开捧气装置,且能就地发出声光报警信号。2.在住户内设立火灾自动报警装置。1.在住户内不少于两处安装紧急按钮开关。2.在住户内安装入侵报警探测器,在户门及阳台门、外窗安装入侵报警装置。含有语音、可视对讲及控翻启动楼道入口处防盗门功效,可实现住户与安防监控中心的直接联系。2点以上热能表、燃气表、水表、电度表的自动抄收及远传、超限判断、自动检查、分时计费、实时计量、管理功效。这些设备均应安装在电气竖井内或公共走道的墙上(内)。6.2家庭控制器暗装(或明装)在墙内(上),其底边距地面1.4m左右。家庭控制器应设立在住户大门附近(宜距户门0.5m以内),且容易操作(涉及设防与撤防)的地方。6.3可燃气体探测器安装在厨房内的燃气管道、灶具附近,当住户使用的是天然气,燃气探测器吸顶棚安装在距顶棚300ram以内的地方;当住户使用的是液化石油气,燃气探测器安装在距地面300mm以内地方。6.4感温探测器设立在厨房内,它吸顶棚安装。在起居室、卧室等房间内,它吸顶棚安装。6.5紧急按钮开关设立在起居室沙发和主卧室床头附近的墙上,及卫生间的墙上。紧急按钮开关暗装在墙内,其底边距地面0.5m~1.2m。6.6门(窗)磁开关安装在门扇和门框内或窗扇和窗框内。6.7玻璃破碎探测器安装在窗户和玻璃门(阳台)附近的墙上或吸顶棚安装。6.8被动红外侵入探测器和被动红外/微波双技术探测器安装在住户的重要通道、重要的房间内,它吸顶棚安装或安装在顶棚的墙角处。6.9红外遥控器安装在被控电器设备正面附近的墙上,距离不能超出红外线工作范畴,且与电器设备之间没有遮挡。7.工程设计实例以二室户型为例介绍户内的智能家庭控制系统设计,设计原则采用康居住宅先进级(3A)。采用以太网的家居控制系统,家庭控制器与户内各模块之间采用R.$485总线,家庭控制器可通过电话线或HYPERLINK计算机网络接受控制指令、发出信息,所选用的家庭控制器含有可视访客对讲功效。家居控制系统图参见国家HYPERLINK建筑原则设计<智能家居控制系统设计施工图集>03X602第17页,二室户型家居控制平面图参见图1、2所示,家庭控制器与室内设备的连接参见图3所示。在起居厅、卧室设立了感烟探测器,厨房设立了感温探测器、可燃气体探测器,各房间的窗户、阳台推拉门上及附近设立了门(窗)磁开关和玻璃破碎探测器,起居厅设立了被动红外侵入探测器,起居厅、卧室、卫生间设立了紧急按钮开关。对电、水、燃气进行计量;可对餐厅、起居厅、卧室的灯进行控制;当可燃气体探测器探测到有燃气泄漏后,联动控制关闭燃气管道上电磁阀、启动排烟风机;当有多种探测器报警后,联动警报发声器发出报警声音。家庭控制器共提供13路输入:电度表(电度表安装在照明配电箱内)、燃气表、热能表、可燃气体探测器、感温探测器、感烟探测器、紧急按钮开关、被动红外侵入探测器、玻璃破碎探测器各1路,水表、门(窗)磁开关各2路。家庭控制器共提供7路输出:警报发声器控制1路、燃气管道上电磁阀控制1路、排烟风机控制1路、照明控制4路。三室户型、复式构造、别墅的智能家庭控制平面图及家庭控制器与室内设备的连接参见国家建筑原则设计《智能家居控制系统设计施工图集》03X602。8.设计中应注意的事项当防火规范规定必须设立火灾报警系统时,感烟探测器、感温探测器及可燃气体探测器的设立及系统的构成须遵照《火灾自动报警系统设计规范》GB50116-98的规定。9.附录9.1自动控制packaimportaimportcom.zsmarthome.R;/***AutoControl是自动控制实现类,实现了报警装置模块、安防设备模块、视频监控模块的自动控制。该类实现了IOnSensorDataListener接口,即要实现onSensorData(Stringmac,byte[]bdata)办法,通过该办法来实现对底层传感器的控制。**@authorAdministrator**/publicclassAutoControlimplementsIOnSensorDataListener{ /**AutoControl的TAG日志标签*/ privatestaticfinalStringTAG="AutoControl"; /**SmartHomeApplication实例*/ privateSmartHomeApplicationmApplication; /**顾客数据解决工具类*/ privateUserConfigmUserConfig; privateProfilesConfigprofilesConfig; privateWSNRTConnectwRTConnect; /**顾客电话号码*/ privateStringmNumber; /**报警装置模块Mac地址数组*/ privateString[]mMacsAlarm=newString[]{"",""}; /**安防设备模块Mac地址数组*/ privateString[]mMacsSecu=newString[]{"","",""}; /**光敏反控灯光模块Mac地址数组*/ privateString[]mMacsInfomation=newString[]{"","",""}; /**灯光控制模块Mac地址数组*/ privateString[]mMacsLight=newString[]{"",""}; /**视频监控模块Mac地址数组*/ privateString[]mMacsMonitor=newString[]{""}; privateString[]mMacsRfid=newString[]{""}; privateString[]mMacsAccess=newString[]{""}; /**安防自动控制与否启动标记*/ publicstaticbooleansecurityflag=false;//默认是没有启动的 /**光敏反控与否启动标记*/ publicstaticbooleanlightflag=false;//默认是没有启动的 privateString[]items=newString[]{"security","light"}; privatebooleanflag=true; privatebooleanflag1=true; privateDatabaseHelperdatabaseHelper; /** *AutoControl构造办法 * *@paramapp *SmartHomeApplication实例 */ publicAutoControl(SmartHomeApplicationapp){ mApplication=app; } /** *启动自动控制,即开始建立传感器数据监听 */ publicvoidstart(){ mUserConfig=mApplication.getUserConfig(); profilesConfig=mApplication.getProfilesConfig(); mApplication.registerOnSensorDataListener(this); databaseHelper=mApplication.getDatabaseHelper(); wRTConnect=mApplication.getIntance(); } voidprocCardId(Stringid){ Stringusername=databaseHelper.find(id); Stringmsg; if(username.length()==0){ msg="未注册,非法顾客"; }else{ msg=username+",欢迎您进入中智讯武汉科技有限公司"; wRTConnect.sendMessage(mMacsAccess[0],"{OD1=4}".getBytes());//开锁 Timertimer=newTimer(); TimerTasktask=newLockTimerTask(mMacsAccess[0]);//隔5s后执行关闭锁的操作 timer.schedule(task,5000); } Toast.makeText(mApplication,msg,Toast.LENGTH_SHORT).show(); } classLockTimerTaskextendsTimerTask{ Stringmmac; LockTimerTask(Stringmac){ mmac=mac; } publicvoidrun(){ wRTConnect.sendMessage(mmac,"{CD1=4}".getBytes()); } } @Override publicvoidonSensorData(Stringmac,byte[]bdata){ StringmacsInfomation=mUserConfig.getString(SmartHomeApplication.KEY_Information); macAnalysis(macsInfomation,mMacsInfomation); StringmacsLight=mUserConfig.getString(SmartHomeApplication.KEY_Light); macAnalysis(macsLight,mMacsLight); StringmacsAlarm=mUserConfig.getString(SmartHomeApplication.KEY_Alarm); macAnalysis(macsAlarm,mMacsAlarm); StringmacsSecu=mUserConfig.getString(SmartHomeApplication.KEY_Security); macAnalysis(macsSecu,mMacsSecu); StringmacsMonitor=mUserConfig.getString(SmartHomeApplication.KEY_Monitor); macAnalysis(macsMonitor,mMacsMonitor);//解析mac地址 StringmacsRfid=mUserConfig.getString(SmartHomeApplication.KEY_Rfid); macAnalysis(macsRfid,mMacsRfid); StringmacsAccess=mUserConfig.getString(SmartHomeApplication.KEY_Access); macAnalysis(macsAccess,mMacsAccess); securityflag=profilesConfig.getBoolean(items[0]); lightflag=profilesConfig.getBoolean(items[1]); Stringdatasss=newString(bdata); Log.i(TAG,"securityflag"+securityflag+"data:"+mac+""+datasss);// if(!mac.contains("Camera")){ if(mac.equalsIgnoreCase(mMacsRfid[0])){//RFID地址 Stringdata=newString(bdata); if(data.charAt(0)!='{') return; if(data.charAt(data.length()-1)!='}') return; data=data.substring(1,data.length()-1); String[]tags=data.split(","); for(Stringtag:tags){ String[]cv=tag.split("="); if(cv.length<2) continue; if(cv[0].equals("A0")){ StringcardNumber=cv[1]; procCardId(cardNumber); } } } if(securityflag&&mac.equalsIgnoreCase(mMacsSecu[0])){//可燃气体监测 Stringdata=newString(bdata); if(data.charAt(0)!='{') return; if(data.charAt(data.length()-1)!='}') return; data=data.substring(1,data.length()-1); String[]tags=data.split(","); for(Stringtag:tags){ String[]cv=tag.split("="); if(cv.length<2) continue; if(cv[0].equals("A0")){ intv=Integer.parseInt(cv[1]); Log.i(TAG,"A0="+v); if(v==1){ Log.i(TAG,"监测到警报"); sendCommond("{OD1=8,D1=}",mMacsAlarm[0]);//打开排电扇 //Stringtitle="监测警报"; Stringmsg="检测到可燃气体!"; if(mNumber!=null&&mNumber.length()>0){ Sms.sendShortMessage(mNumber,msg);//发送短信 } }else{ sendCommond("{CD1=8,D1=}",mMacsAlarm[0]);//关闭排电扇 } } } } if(securityflag&&mac.equalsIgnoreCase(mMacsSecu[1])){//人体监测 Stringdata=newString(bdata); if(data.charAt(0)!='{') return; if(data.charAt(data.length()-1)!='}') return; data=data.substring(1,data.length()-1); String[]tags=data.split(","); for(Stringtag:tags){ String[]cv=tag.split("="); if(cv.length<2) continue; if(cv[0].equals("A1")){ intv=Integer.parseInt(cv[1]); Log.i(TAG,"A1="+v); if(v==1){ Log.i(TAG,"监测到人体"); sendCommond("{Action=TakenPicture}",mMacsMonitor[0]); sendCommond("{OD1=2,D1=}",mMacsAlarm[1]); //Stringtitle="监测警报"; Stringmsg="人体感应检测到人体!"; if(mNumber!=null&&mNumber.length()>0){ Sms.sendShortMessage(mNumber,msg);//发送短信 } }else{ //donothing } } } } if(securityflag&&mac.equalsIgnoreCase(mMacsSecu[2])){//红外对射监测 Stringdata=newString(bdata); if(data.charAt(0)!='{') return; if(data.charAt(data.length()-1)!='}') return; data=data.substring(1,data.length()-1); String[]tags=data.split(","); for(Stringtag:tags){ String[]cv=tag.split("="); if(cv.length<2) continue; if(cv[0].equals("A2")){ intv=Integer.parseInt(cv[1]); Log.i(TAG,"A2="+v); if(v==1){ Log.i(TAG,"监测到人体"); sendCommond("{Action=TakenPicture}",mMacsMonitor[0]); sendCommond("{OD1=2,D1=}",mMacsAlarm[1]); //Stringtitle="监测警报"; Stringmsg="红外对射检测到人体!"; if(mNumber!=null&&mNumber.length()>0){ Sms.sendShortMessage(mNumber,msg);//发送短信 } }else{ //donothing } } } } if(lightflag&&mac.equalsIgnoreCase(mMacsInfomation[2])){//光敏反控灯光:mMacs[1]=00:12:4b:00:02:63:3a:ff //mac:00:12:4B:00:02:63:3A:FF,data:{A0=388}{OD=1,D0=} Stringdata=newString(bdata); if(data.charAt(0)!='{') return; if(data.charAt(data.length()-1)!='}') return; data=data.substring(1,data.length()-1); String[]tags=data.split(","); for(Stringtag:tags){ String[]cv=tag.split("="); if(cv.length<2) continue; Log.i(TAG,"cv[0]:"+cv[0]+",cv[1]:"+cv[1]); if(cv[0].equals("A0")){ floata0=Float.parseFloat(cv[1]); Log.i(TAG,"flag:"+flag+",flag1:"+flag1); if(a0<50&&flag){//光很暗,需要打开 flag=false; flag1=true; Log.i(TAG,"开灯"); sendCommond("{OD1=1,D1=}",mMacsLight[0]);//打开灯光 sendCommond("{OD1=2,D1=}",mMacsLight[1]); }elseif(a0>300.0&&flag1){//光很亮,需要关闭灯光 flag=true; flag1=false; Log.i(TAG,"关灯"); sendCommond("{CD1=1,D1=}",mMacsLight[0]);//关闭灯光 sendCommond("{CD1=2,D1=}",mMacsLight[1]); }else{ flag=true; flag1=true; } } } } }// else{// if(bdata[0]=='{'&&bdata[bdata.length-1]=='}'){// Stringtag=newString(bdata,1,9);// Log.d(TAG,"tag:"+tag);// if(tag.equals("JpegImage")){// byte[]img=newbyte[bdata.length-12];// System.arraycopy(bdata,11,img,0,img.length);// try{// MonitorActivity.saveToSDCard(// MonitorActivity.getfileName(),img);// }catch(Exceptione){// e.printStackTrace();// }// }// }// }// } /** *发送命令传感器 * *@paramcommond *命令 *@parammMacs *mac地址 */ publicvoidsendCommond(finalStringcommond,finalStringmMacs){ Threadt=newThread(){ publicvoidrun(){ wRTConnect.sendMessage(mMacs,commond.getBytes()); } }; t.start(); } /** *解析Mac地址 * *@parammacs *@parammMacs *@returnmac地址数组 */ publicstaticString[]macAnalysis(Stringmacs,String[]mMacs){ if(macs.length()>0){//解析mac地址,分开保存 String[]a=macs.split(";");//0=00:12:4b:00:02:37:7e:7a;1=00:12:4b:00:02:63:3a:ff for(Stringit:a){//0=00:12:4b:00:02:37:7e:7a String[]b=it.split("="); intidx=Integer.parseInt(b[0]); if(idx>=mMacs.length||idx<0){ continue; } if(b.length==2){ mMacs[idx]=b[1];//mMacs[0]=00:12:4b:00:02:37:7e:7a;mMacs[1]=00:12:4b:00:02:63:3a:ff }else{ mMacs[idx]=""; } } } returnmMacs; } /** *停止自动控制,即注销传感器数据监听 */ publicvoidstop(){ mApplication.unregisterOnSensorDataListener(this); } interfaceCallNotify{ voidexcute(); }}9.2电子门禁模块pacimportcom.zsmarthome.R;i/***AccessActivity是电子门禁模块Activity,继承SensorActivity传感器基类。实现长按门禁图标绑定mac地址或重新输入,以及对门禁的打开、关闭操作。**@authorAdministrator**/publicclassAccessActivityextendsSensorActivity{ /**门禁图标按钮*/ privateImageButtonaccessImage=null; privateImageViewaccessStatus; /**开门按钮*/ privateButtonopenButton=null; /**关门按钮*/ privateButtoncloseButton=null; /**命令字符串*/ privateStringcommond; /**电子门禁模块Mac地址数组*/ privateString[]mMacs=newString[]{""}; /**SmartHomeApplication实例*/ privateSmartHomeApplicationmApplication; /**UserConfig实例:顾客数据解决工具类实例*/ privateUserConfigmUserConfig; privateWSNRTConnectwRTConnect; privateHandlermHandler; HashMap<String,Long>AccessLastTime=newHashMap<String,Long>(); @SuppressLint("HandlerLeak") @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); mApplication=(SmartHomeApplication)getApplication(); mUserConfig=mApplication.getUserConfig(); wRTConnect=mApplication.getIntance(); //设立全屏并隐藏Title requestWindowFeature(Window.FEATURE_NO_TITLE); //状态监测 OnLongClickonLongClick=newOnLongClick(); accessImage.setOnLongClickListener(onLongClick); mApplication.setCurrentActivity(this); Stringmacs=mUserConfig.getString(SmartHomeApplication.KEY_Access); parseMac(macs,mMacs); if(mMacs[0].length()>0){ //获取目前节点状态 wRTConnect.sendMessage(mMacs[0],"{D1=}".getBytes()); AccessLastTime.put("ACCESS_LT",System.currentTimeMillis()/1000); } mHandler=newHandler(){ @Override publicvoidhandleMessage(Messagemsg){ //TODOAuto-generatedmethodstub if(msg.what==0){ }elseif(msg.what==1){ } super.handleMessage(msg); } }; Threadst=newThread(){ @Override publicvoidrun(){ //TODOAuto-generatedmethodstub while(!exit){ if(AccessLastTime.containsKey("ACCESS_LT")){ longtm=AccessLastTime.get("ACCESS_LT"); longcm=System.currentTimeMillis()/1000; if(tm!=0&&cm-tm>160){ //断线 AccessLastTime.put("ACCESS_LT",(long)0); mHandler.obtainMessage(0).sendToTarget(); } } try{ Thread.sleep(100); }catch(InterruptedExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } }; st.setDaemon(true); st.start(); } booleanexit=false; @Override publicvoidonDestroy(){ exit=true; mApplication.setCurrentActivity(null); super.onDestroy(); } /** *实现长按门禁图标绑定mac地址或重新输入 * *@authorAdministrator * */ publicclassOnLongClickimplementsOnLongClickListener{ @Override publicbooleanonLongClick(Viewv){ //TODOAuto-generatedmethodstub //弹出对话框,提示重新输入mac地址 finalEditTexteditText=newEditText(AccessActivity.this); editText.setText(mMacs[0]); .setPositiveButton("拟定",newDialogInterface.OnClickListener(){ @Override publicvoidonClick(DialogInterfacearg0,intarg1){ //TODOAuto-generatedmethodstub mMacs[0]=editText.getText().toString(); Stringx=""; for(inti=0;i<mMacs.length;i++){ if(mMacs[i].length()!=0){ if(x.length()>0) x+=";"; x+=""+i+"="+mMacs[i]; } } mUserConfig.putString(SmartHomeApplication.KEY_Access,x); wRTConnect.sendMessage(mMacs[0],"{D1=}".getBytes()); } }).setNegativeButton("取消",null).show(); returntrue; } } /** *点击开门按钮执行开门操作 * *@paramv *视图 */ publicvoidopenDoor(Viewv){ commond="{OD1=4,D1=}"; wRTConnect.sendMessage(mMacs[0],commond.getBytes()); } /** *点击关门按钮执行关门操作 * *@paramv *视图 */ publicvoidcloseDoor(Viewv){ commond="{CD1=4,D1=}"; wRTConnect.sendMessage(mMacs[0],commond.getBytes()); } @Override voidprocessSensorData(byte[]bdat){ //TODOAuto-generatedmethodstub //TODOAuto-generatedmethodstub Stringdat=newString(bdat); intidx=dat.indexOf("="); Stringmac=dat.substring(0,idx); dat=dat.substring(idx+1); Stringx=mMacs[0]; if(x.equalsIgnoreCase(mac)){ if(dat.charAt(0)!='{') return; if(dat.charAt(dat.length()-1)!='}') return; dat=dat.substring(1,dat.length()-1); String[]tags=dat.split(","); for(Stringtag:tags){ String[]cv=tag.split("="); if(cv.length<2) continue; if(cv[0].equals("D1")){ intv=Integer.parseInt(cv[1]); if((v&0x04)==0x04){ openButton.setClickable(false); closeButton.setClickable(true); }else{ openButton.setClickable(true); closeButton.setClickable(false); } mHandler.obtainMessage(1).sendToTarget(); AccessLastTime.put("ACCESS_LT",System.currentTimeMillis()/1000); } } } } @Override publicString[]getMacAddress(){ //TODOAuto-generatedmethodstub returnmMacs; }}9.3排电扇控制模块pacimportcom.zsmarthome.R;importcom.zone/***AlarmActivity是排电扇控制模块Activity,继承SensorActivity传感器基类。实现了长按排电扇控制模块图标按钮绑定mac地址或重新输入,以及对排电扇的打开、关闭操作。**@authorAdministrator**/publicclassAlarmActivityextendsSensorActivity{ /**AlarmActivity的TAG日志标签*/ //privatestaticfinalStringTAG="AlarmActivity"; /**声光报警图标*/ privateImageButtonalarmImage; privateImageViewimgAlarmStatus01; privateImageViewimgAlarmStatus02; /**排电扇图标*/ privateImageButtonfannerImage; /**打开排电扇按钮*/ privateButtonopenButton1=null; /**关闭排电扇按钮*/ privateButtoncloseButton1=null; /**打开声光报警按钮*/ privateButtonopenButton2=null; /**关闭声光报警按钮*/ privateButtoncloseButton2=null; /**排电扇控制模块Mac地址数组*/ privateString[]mMacs=newString[]{"",""}; /**命令字符串*/ privateStringcommond; /**SmartHomeApplication实例*/ privateSmartHomeApplicationmApplication; /**UserConfig实例:顾客数据解决工具类实例*/ privateUserConfigmUserConfig; privateWSNRTConnectwRTConnect; privateHandlermHandler; privateHashMap<String,Long>AlarmLastTime=newHashMap<String,Long>(); @SuppressLint("HandlerLeak") @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); mApplication=(SmartHomeApplication)getApplication(); mUserConfig=mApplication.getUserConfig(); wRTConnect=mApplication.getIntance(); //设立全屏并隐藏Title requestWindowFeature(Window.FEATURE_NO_TITLE); //报警装置在线状态检测 //默认设立为不在线 OnLongClickonLongClick=newOnLongClick(); fannerImage.setOnLongClickListener(onLongClick); alarmImage.setOnLongClickListener(onLongClick); mApplication.setCurrentActivity(this); //macs中寄存的多个地址格式为:0=11:22:33:44:55:66:77:88;1=11:22:33:44:55:66:77:88... Stringmacs=mUserConfig.getString(SmartHomeApplication.KEY_Alarm); parseMac(macs,mMacs); if(mMacs[0].length()>0){ AlarmLastTime.put("ALARM01_LT",System.currentTimeMillis()/1000); } if(mMacs[1].length()>0){ AlarmLastTime.put("ALARM02_LT",System.currentTimeMillis()/1000); } //获取目前节点状态 for(inti=0;i<2;i++){ wRTConnect.sendMessage(mMacs[i],"{D1=}".getBytes()); } //状态检测消息解决 mHandler=newHandler(){ @Override publicvoidhandleMessage(Messagemsg){ //TODOAuto-generatedmethodstub if(msg.what==0){ }elseif(msg.what==1){ }elseif(msg.what==2){ }elseif(msg.what==3){ } super.handleMessage(msg); } }; //轮询检测状态 Threadst=newThread(){ @Override publicvoidrun(){ while(!exit){ //报警装置1状态检测 if(AlarmLastTime.containsKey("ALARM01_LT")){ longtm=AlarmLastTime.get("ALARM01_LT"); longcm=System.currentTimeMillis()/1000; if(tm!=0&&cm-tm>160){ //断线 AlarmLastTime.put("ALARM01_LT",(long)0); mHandler.obtainMessage(0).sendToTarget(); } } //报警装置2状态检测 if(AlarmLastTime.containsKey("ALARM02_LT")){ longtm1=AlarmLastTime.get("ALARM02_LT"); longcm1=System.currentTimeMillis()/1000; if(tm1!=0&&cm1-tm1>160){ //断线 AlarmLastTime.put("ALARM02_LT",(long)0); mHandler.obtainMessage(2).sendToTarget(); } } try{ Thread.sleep(100); }catch(InterruptedExceptione){ //TODOA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论