牛 斗,王国庆
(东北电力大学 信息工程学院,吉林 吉林132012)
在我国,随着人民生活水平的提高,燃气已普遍应用到城镇居民的家庭中,人们对其的依赖程度也越来越大,相伴而来的安全问题也成为重中之重。近年来,因燃气泄漏而引起的火灾、爆炸和中毒事故日渐趋多,严重地威胁着人们生命财产安全。现有的燃气报警系统只能在燃气泄漏时响起警铃报警,并没有从根本上排除危险的发生。本系统基于MTK平台的优势,设计了一种自动解决方案,能在检测到燃气泄漏后启动蜂鸣器并同时发送报警信息到用户手机上,通过MTK平台控制抽油烟机工作,防范灾难的发生,避免不必要的财产损失和人身伤害。由于手机已经成为人们生活中必不可少的工具,所以更能有效地发挥报警作用,使得用户及时解除报警。
MTK芯片是由联发科技股份有限公司设计制造的一款功能多样化的芯片,其采用Nucleus OS操作系统,开发语言为C语言,同时也提供了完整的Java开发环境。MTK手机系统是目前国内手机生产厂家应用最多的手机产品解决方案,其高性价比和二次开发的特性备受欢迎。本方案选择了MT6225为核心芯片,通过MT6225的GPIO口可进行外设扩展。
MTK采用Nucleus OS实时操作系统,整个软件系统包括Nucleus OS操作系统、平台设备驱动、协议栈、文件系统、WGUI、MMI、J2ME等。MTK手机平台上的程序基于J2ME软件平台开发,采用的是Java语言。
J2ME使用配置和简表定制Java运行时环境(JRE)。作为一个完整的JRE,J2ME由配置和简表组成,配置决定了使用的JVM,而简表通过添加特定于域的类来定义应用程序。
配置将基本运行时环境定义为一组核心类和一个运行在特定类型设备上的特定JVM。简表定义应用程序,它向J2ME配置添加特定于域的类,定义设备的某种作用[1]。
图1 J2ME架构的层次
J2ME架构由3个软件层组成,如图1所示。第一层包括在内的配置层直接与原生操作系统进行交互。配置层还有Profile和JVM之间的交互。第二层是Profile层,由小型计算设备的应用程序编程接口的最小集合组成。第三层是Mobile Information Device Profile(MIDP)层。MIDP层由用户网络连接,永久存储与用户界面的Java API组成,还能够访问CLDC库和MIDP库。
GPIO口即通用输入输出口。MT6225提供了53个通用输入输出口和4个通用输出口。GPIO口在系统上电时,有的是默认高电平,有的是默认低电平,这是MCU内部决定的,软件无法更改。MCU中有多个GPIO模式初始化寄存器,在系统开机过程中,通过这些寄存器对GPIO进行初始化。
MTK通过对IO口的复用来减少IO端口的个数,每个 GPIO口有4种工作模式,即模式 0~3,每个 GPIO口都可以通过软件配置为输出或输入或特定用途双向口,其被当作输入使用时,GPIO口可作为中断源[1]。本系统选择通用GPIO口GPIO30的模式0,即配置端口为输入输出模式。对GPIO初始化成功并对GPIO端口读写数据完成后,通过读取其端口状态来与写到GPIO口的数据相比较,若超过预警值则报警,否则接收下组数据。选择GPIO41的模式0,将蜂鸣器的负极接到这个端口,当GPIO30接收到的数据超过预警值,MTK平台便将其拉低,此时蜂鸣器工作。选择GPIO42的模式0,连接油烟机控制模块。
定时器事件是在指定的时间或时间间隔内反复触发指定的事件,这个指定的事件是通过一个注册的功能函数来实现的。在MTK平台中,操作定时器的具体流程如下:
(1)在定时器ID的头文件TimerEvents.h中定义一个自己的TimerID,实验中定义的ID为MY_TIMER_ID。当然,要在MAX_TIMERS之前定义。
(2)使用函数 StartTimer(U16TimerID,U16delay,funcPtr)启动一个定时器,其中TimerID为时钟ID,delay为时间间隔,funcPtr为该定时器事件的回调函数。StartTimer已经执行,当达到时间间隔delay时系统会通知执行funcPtr。如:StartTimer(MY_TIMER_ID,1 000,my_funcPtr),其中,1 000为间隔时间,在MT6225中1 000即意味着定时时间为1 s。函数my_funcPtr为定时器到时后所要做事情的函数。
(3)退出程序时,通过调用 StopTimer(U16TimerID)来停止TimerID所对应的定时器事件。实验中调用情况为StopTimer(MY_TIMER_ID)。
短信功能作为MTK平台的亮点之一,有着广泛的应用。本设计中在系统得到的数值超出预警值产生报警的同时通过短信通知主人,能够及时阻止不利情况的进一步发展。参考MTK本身具有短信通信功能模块,修改软件系统,通过设置固定的号码,发生异常情况时,MTK系统便会自动发送信息给该号码[2]。
本系统设计了遇到气体泄漏时的解决方案,系统自动打开油烟机排出泄漏气体,以免用户疏忽造成火灾甚至爆炸。选用固态继电器控制油烟机的开关,固态继电器由于没有机械触电以及其他机械部件,因此可靠性相当高,在通与断的瞬间不会产生电火花,很适合本系统使用。又因该种继电器的输入与输出间采用光耦合器,因此具有良好的抗干扰性。系统选用SSR-10DA型号的继电器。该继电器为双向可控硅输出,零电压开启,零电流关闭,输入输出回路之间采用光隔离。系统通过GPIO口外接一反相器控制固态继电器发光二极管的闭合,控制油烟机的启动与关闭。当GPIO口输出低电平时,固态继电器SSR-10DA内部的发光二极管通电变亮,触发导通右侧的光控晶闸管,形成电机启动的闭合回路,油烟机启动;当GPIO口输出为高电平时,发光二极管不发光,固态继电器SSR-10DA不能触发导通,无法形成电机启动的闭合回路,油烟机关闭[3]。电路如图2所示。
系统由传感器模块、MTK平台、蜂鸣器模块、抽油烟机控制模块等组成,如图3所示。传感器检测到室内燃气浓度的变化进而转变成电阻值的变化,通过传感器处理电路处理后,转变成系统可识别信号[4]。将传感器模块挂载在MTK系统的核心芯片MT6225的GPIO口上,通过定时查询GPIO口的状态检测传感器的输出信号,一旦MTK系统检测到传感器输出信号与预警值相同或者高于预警值,则MTK平台驱动蜂鸣器发出刺耳的声音提醒用户,并自动通过短信的方式发送报警信号给用户。系统会自动屏蔽掉相同内容的信息重复发送。与此同时,打开油烟机的开关,油烟机开始工作,排出泄漏气体[5]。当气体浓度降至预警值以下时,系统通过改变GPIO口的状态控制蜂鸣器和油烟机停止工作,再发出危险解除信息到系统的短信接收装置。
MH-440v/d传感器具有高灵敏度、兼备标准输出与数字输出、外型小巧、快速响应、恢复、温度补偿、优异的稳定性、使用寿命长、抗水汽干扰等特点。主要技术参数为: 工作电压:3.5 V~5.5 V; 工作电流:75 mA~85 mA;测量范围:0~5%vol;输出信号范围:0.4 V~2 V;分辨率:1%FSD;预热时间90 s;响应时间 T90<30 s;重复性零点<±100 ppm;SPAN<±500 ppm;长期漂移零点<±300 ppm/月;SPAN<±500 ppm/月;温度范围:-20 ℃~+50 ℃;湿度范围:0~95%RH。
继电器选用SSR-10DA,其特点有:双向可控硅输出、零电压开启、零电流关闭、输入回路与输出回路之间光隔离、输入端与输出端之间隔离耐压2 500 V。主要技术参数如下:控制方式为DC-AC(直流控制交流);负载电流为 10 A,负载电压:AC 24 V~380 V;控制电压:DC 3 V~32 V;控制电流:3 mA~25 mA;通态漏电流≤2 mA;通态降压AC≤1.5 V;断态时间≤10 ms;介质耐压AC 2 500 V;环境温度:-30℃~+75℃。
为了测试系统性能,模拟一个燃气泄漏的环境。模拟系统中使用华禹工控的产品旋风001,其核心模块是本系统使用的MT6225,且带有液晶屏,可以编写界面程序直观地读出浓度检测值。甲烷浓度的燃爆极限为5%~15%,为了避免危险发生,设定预警值为3%。燃气浓度变化如图4所示。当浓度超过预警值时,系统触发蜂鸣器发出声音,油烟机开始工作,且收到报警短信。在气体浓度降至预警值之下以后油烟机停止工作,蜂鸣器也停止发出声音,这时又收到解除警报的信息[6]。测试过程中没有发生异常,完全符合设计初衷。
本系统采用MT6225手机开发方案,其高集成度使开发过程更加容易,且开发周期短,成本比较低,可靠性高。系统经过测试,能够稳定地运行,且能很好地完成各项功能,又因为其具备了短信息报警功能,使得监测无死角,对人们的安全生活加强了保障。此解决方案对从事相关电子产品的研发具有一定的参考价值。
[1]赵志新,王绍伟,霍志强,等.MTK手机开发入门[M].北京:人民邮电出版社,2010.
[2]王蓓.手机软件平台中的短信息模块研究[D].西安:西安科技大学,2006.
[3]陆勤,奚传隽.中间继电器循环控制电路:中国,201788902U[P].2011-04-06.
[4]宋鹏,李奉泽,刘鉴,等.基于谐波检测的新型光纤甲烷传感系统[J].测控技术,2011,30(6):5-11.
[5]王光才,毛玉荣.基于MTK平台的智能家居控制网络系统[J].电子质量,2011(12):38-40.
[6]程志华,安琦,陶峰.基于嵌入式系统的乙炔气体监测系统设计[J].仪表技术与传感器,2009(8):46-49.