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

下载本文档

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

文档简介

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

(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路由器、交换机、各种探测器、各种传感器、各种执行机构、打印机等组成。·系统功能:实现家庭通信、家庭设备自动控制、家庭安全防X。·适用X围:该系统特别适用于新建、扩建的智能化住宅(小区)工程。

(5)采用KS485的智能家庭控制系统采用KS485的智能家庭控制系统图参见国家建筑标准设计<智能家居控制系统设计施工图集>03X602第18、19、20页。·根本特点:KS485串行接口总线为主从式网络,它的通信为半双工、采用双向单信道连接方式。RS485串行接口总线的传输介质采用双绞线,它可以高速地进展远距离传输,传输速度与传输距离的技术指标如下:传输速率为10Mbit/s时,最大传输距离是12m;传输速率为1Mbit/s时,最大传输距离是120m;传输速率为100kbit/s时,最大传输距离是1200m。·系统组成:由系统服务器、家庭控制器、路由器、通讯器、控制器、各种探测器、各种传感器、各种执行机构、打印机等组成。·系统功能:实现家庭通信、家庭设备自动控制、家庭安全防X。·适用X围:该系统特别适用于新建、扩建的智能化住宅(小区)工程。

(6)采用无线网的智能家庭控制系统采用无线网的智能家庭控制系统图参见国家建筑标准设计<智能家居控制系统设计施工图集>03X602第24、25页。·根本特点:利用无线作为信息传输网,该系统不仅在功能上能完全满足要求,而且从系统服务器至家庭控制器、家庭控制器至各种现场末端装置均采用无线传输方式,小区、楼内、户内无需布线,施工简单,可以节省施工的投资。无线网的工作频率符合IEEE802.11b标准要求。·系统组成:由系统服务器、家庭控制器、无线收发器、各种探测器、各种传感器、各种执行机构、打印机等组成。·系统功能:实现家庭通信、家庭设备自动控制、家庭安全防X。·适用X围:该系统适用于新建、扩建的智能化住宅(小区)工程,且特别适用于改造的智能化住宅(小区)工程,不用敷设线路就可实现数据信号的传输。5.系统设计与产品选用要点5.1智能家庭控制系统类型的选用新建、扩建的智能化住宅(小区)工程,宜采用LonWorks的智能家庭控制系统、以太网的智能家庭控制系统或采用RS485的智能家庭控制系统。改造的智能化住宅(小区)工程,宜采用HYPERLINK公共网的智能家庭控制系统、HFC的智能家庭控制系统或无线网的智能家庭控制系统。5.2家庭控制器的选用家庭控制器的选用主要包括功能、总线技术与模块化设计、扩展功能、可按用户的根本要求进展配置等方面的选用要求。

(1)家庭控制器功能的选用家庭控制器通常具有以下功能:·家庭防盗报警;·家庭火灾报警;·家庭燃气泄露报警;·家庭紧急求助;·远程设防与撤防;·远程报警;·访客对讲;·家用电器监控;·家用表具数据采集与处理;·空调机监控;·接入网接口;·小区HYPERLINK电子公告;·信息查询;·家用设备报修等。

(2)家庭控制器功能的选择在工程设计中,家庭控制器功能的选择可参见下表所示。5.3总线技术与模块化设计

·家庭控制器要求采用总线技术,如LonWorks、R5485、BAet、C^NBlls、CEBus、X一10;·家庭控制器要求采用模块化设计,以便用户可以根据需求选择不同的模块完成不同的功能。5.4扩展功能家庭控制器要有一定的扩展功能,考虑能适应今后开展的需要。可按用户的根本要求进展配置应能根据用户提出有哪些被控设备与监视控制要求(功能要求)等因素,来对家庭控制器组成进展配置,包含模块种类的选择和各种模块数量的选择。6.设备的安装6.1交换机、路由器、控制器、放大箱、分配箱、分线箱康居住宅家庭控制器功能设置表级嗣消防安防访客对讲家电监控表具数据远传根本级(1A)1.在住户内安装紧急按钮开关。2.在住户内安装入侵报警探测器。具有语音对讲与控制开启楼道人口处防盗门功能。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红外遥控器安装在被控电器设备正面附近的墙上,距离不能超过红外线工作X围,且与电器设备之间没有遮挡。7.工程设计实例以二室户型为例介绍户内的智能家庭控制系统设计,设计标准采用康居住宅先进级(3A)。采用以太网的家居控制系统,家庭控制器与户内各模块之间采用R.$485总线,家庭控制器可通过线或HYPERLINK计算机网络接收控制指令、发出信息,所选用的家庭控制器具有可视访客对讲功能。家居控制系统图参见国家HYPERLINK建筑标准设计<智能家居控制系统设计施工图集>03X602第17页,二室户型家居控制平面图参见图1、2所示,家庭控制器与室内设备的连接参见图3所示。在起居厅、卧室设置了感烟探测器,厨房设置了感温探测器、可燃气体探测器,各房间的窗户、阳台推拉门上与附近设置了门(窗)磁开关和玻璃破碎探测器,起居厅设置了被动红外侵入探测器,起居厅、卧室、卫生间设置了紧急按钮开关。对电、水、燃气进展计量;可对餐厅、起居厅、卧室的灯进展控制;当可燃气体探测器探测到有燃气泄漏后,联动控制关闭燃气管道上电磁阀、开启排烟风机;当有各种探测器报警后,联动警报发声器发出报警声音。家庭控制器共提供13路输入:电度表(电度表安装在照明配电箱内)、燃气表、热能表、可燃气体探测器、感温探测器、感烟探测器、紧急按钮开关、被动红外侵入探测器、玻璃破碎探测器各1路,水表、门(窗)磁开关各2路。家庭控制器共提供7路输出:警报发声器控制1路、燃气管道上电磁阀控制1路、排烟风机控制1路、照明控制4路。三室户型、复式结构、别墅的智能家庭控制平面图与家庭控制器与室内设备的连接参见国家建筑标准设计《智能家居控制系统设计施工图集》03X602。8.设计中应注意的事项当防火规X规定必须设置火灾报警系统时,感烟探测器、感温探测器与可燃气体探测器的设置与系统的构成须遵循《火灾自动报警系统设计规X》GB50116-98的规定。9.附录9.1自动控制packaimporta/***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,"监测到警报"); sendmond("{OD1=8,D1=?}",mMacsAlarm[0]);//打开排风扇 //Stringtitle="监测警报"; Stringmsg="检测到可燃气体!"; if(mNumber!=null&&mNumber.length()>0){ Sms.sendShortMessage(mNumber,msg);//发送短信 } }else{ sendmond("{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,"监测到人体"); sendmond("{Action=TakenPicture}",mMacsMonitor[0]); sendmond("{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,"监测到人体"); sendmond("{Action=TakenPicture}",mMacsMonitor[0]); sendmond("{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,"开灯"); sendmond("{OD1=1,D1=?}",mMacsLight[0]);//打开灯光 sendmond("{OD1=2,D1=?}",mMacsLight[1]); }elseif(a0>300.0&&flag1){//光很亮,需要关闭灯光 flag=true; flag1=false; Log.i(TAG,"关灯"); sendmond("{CD1=1,D1=?}",mMacsLight[0]);//关闭灯光 sendmond("{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();// }// }// }// }// } /** *发送命令传感器 * *parammond *命令 *parammMacs *mac地址 */ publicvoidsendmond(finalStringmond,finalStringmMacs){ Threadt=newThread(){ publicvoidrun(){ wRTConnect.sendMessage(mMacs,mond.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电子门禁模块paci/***AccessActivity是电子门禁模块Activity,继承SensorActivity传感器基类。实现长按门禁图标绑定mac地址或重新输入,以与对门禁的打开、关闭操作。**authorAdministrator**/publicclassAccessActivityextendsSensorActivity{ /**门禁图标按钮*/ privateImageButtonaccessImage=null; privateImageViewaccessStatus; /**开门按钮*/ privateButtonopenButton=null; /**关门按钮*/ privateButtoncloseButton=null; /**命令字符串*/ privateStringmond; /**电子门禁模块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){ mond="{OD1=4,D1=?}"; wRTConnect.sendMessage(mMacs[0],mond.getBytes()); } /** *点击关门按钮执行关门操作 * *paramv *视图 */ publicvoidcloseDoor(Viewv){ mond="{CD1=4,D1=?}"; wRTConnect.sendMessage(mMacs[0],mond.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排风扇控制模块pacimport.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[]{"",""}; /**命令字符串*/ privateStringmond; /**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){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } } }; st.setDaemon(true); st.start(); } booleanexit=false; Override publicvoidonDestroy(){ exit=true; mApplication.setCurrentActivity(null); super.onDestroy(); } /** *长按排风扇控制模块图标按钮绑定mac地址或重新输入 * *authorAdministrator * */ classOnLongClickimplementsOnLongClickListener{ Override publicbooleanonLongClick(Viewv){ //TODOAuto-generatedmethodstub //弹出对话框,提示重新输入mac地址 finalintidx; if(v==fannerImage){ idx=0; }elseif(v==alarmImage){ idx=1; }else{ returnfalse; } finalEditTexteditText=newEditText(AlarmActivity.this); editText.setText(mMacs[idx]); .setPositiveButton("确定",newDialogInterface.OnClickListener(){ Override publicvoidonClick(DialogInterfacearg0,intarg1){ //TODOAuto-generatedmethodstub mMacs[idx]=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_Alarm,x); wRTConnect.sendMessage(mMacs[idx],"{D1=?}".getBytes()); } }).setNegativeButton("取消",null).show(); returntrue; } } /** *点击打开按钮执行打开排风扇操作 * *paramv *视图 */ publicvoidopenFanner(Viewv){ mond="{OD1=8,D1=?}"; wRTConnect.sendMessage(mMacs[0],mond.getBytes()); } /** *点击关闭按钮执行关闭排风扇操作 * *paramv *视图 */ publicvoidcloseFanner(Viewv){ mond="{CD1=8,D1=?}"; wRTConnect.sendMessage(mMacs[0],mond.getBytes()); } publicvoidopenAlarm(Viewv){ mond="{OD1=2,D1=?}"; wRTConnect.sendMessage(mMacs[1],mond.getBytes()); } /** *点击关闭按钮执行关闭排风扇操作 * *paramv *视图 */

温馨提示

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

最新文档

评论

0/150

提交评论