技术文章

基于GSM的家用电器及家居环境监控系统的设计

来源:仪表网

2012/4/9 16:56:24 1465
  引言
  
  目前的家用电器远程控制系统一般是通过互联网或公共交换网来实现远程控制的。然而,随着手机日益普及,使得利用GSM短信息实现家居环境和家电的远程监控成为可能。它相对于远程控制方式而言,摆脱了线对设备的束缚;相对于电脑远程控制而言,降低了设备和使用成本。
  
  利用GSM网络来实现家居安防、温室、路灯、自动售货机等监控的研究已很多,这些研究大都是通过使用GSM网络远程控制继电器而实现的。而本文设计的基于GSM的家用电器及家居环境监控系统主要是针对目前许多带有红外遥控器的家用电器(如热水器、空调、电视、机顶盒等),通过GSM网络和对家用电器遥控器的复制来实现家用电器的控制。
  
  1、系统工作原理
  
  基于GSM的家用电器及家居环境监控系统,由作为上位机的能收发短信的GSM短信模块、智能控制器(单片机)、温度传感器和作为下位机的具有红外遥控器的家用电器(如热水器、空调、电视、机顶盒等)组成。
  
  首先系统进行初始化,单片机从键盘读入用户所设定的温度上限值和发送报警短信的目标号码,并通过LCD显示器显示出来。当单片机检测到用户按下红外学习键,则进入红外线学习中断服务程序,读取外部家电遥控器发射的红外信号,并将该红外信号解码,重定义码长,分组,保存,从而学习该遥控器初始化工作完成后,单片机循环读取温度传感器DS1820数值,并将用户事先设定的温度上限值与之比较,一旦发现当前温度超过温度上限,则控制GSM模块TC35i通过GSM网络向用户手机发送报警短信。
  
  同时,单片机循环查询串口是否收到信息,如果收到就将信息读入单片机,解析出短信中的内容是要求单片机向家用电器发送何种指令,并将代表该指令的红外信号通过红外发射管发射出去,从而控制家用电器。该系统框图见图1。
  
  图1系统方框图
  
  2、系统硬件设计
  
  基于GSM的家用电器及家居环境监控系统主要以AT89S52单片机为智能控制中心,4@4键盘和1602LCD显示器作为人机交互设备,GSM通信模块选用TC35i,DS1820温度传感器用于温度采集;通过HS0038B红外接收头接收红外信号,完成红外信号的解调与放大;同时,利用AT89S52单片机P1.0口的方波发生器功能构成了红外信号的调制装置,并使用红外LED作为红外发射装置。
  
  2.1GSM模块与单片机的连接
  
  GSM模块TC35i是3.3VCMOS元器件,要求对电源的启动电流超过2A,启动电压达到4.2V.因此,采用zui大能提供3A电流的电源芯片LM2596.TC35i的1~5脚接LM2596的电源输出管脚,6~10脚接地,25~27脚与SIM卡相连接。为了能显示TC35i的工作状态,在32脚接一个LED指示灯到地。
  
  TC35i启动之后就可以通过单片机由串口发送数据和命令到TC35i,TC35i的波特率是自适应的,这里采用9600的波特率,只要将TC35i的RXD和TXD分别和单片机的TXD和RXD相连接就可以了。电路图见图2.
  
  图2TC35i与单片机的连接
  
  2.2红外接收头与单片机的连接
  
  红外接收头HS0038B是一个集成解调、滤波、放大等功能的红外接收芯片,它将调制在38kHz方波上的红外信号解调出来,并通过OUT管脚将方波输出。HS0038B平时输出高电平,当有遥控信号输入时,其输出为高低电平脉冲,故接收时一个码由一个低电平后跟一个高电平构成。利用不同长短高低电平的组合,可构成不同的码。在本系统中将使用中断的方式读取红外信号,因此将HS0038B的OUT管脚与单片机的外中断0相连接。HS0038B与单片机的连接见图3。
  
  图3红外接收头HS0038B与单片机的连接
  
  3、系统软件设计
  
  TC35i可以发送中文短信或英文短信,本系统使用中文短信格式即PDU格式。先将短信的相关信息做到一个PDU数据包里,该包的开头是短信中心号码。其后的是目标,该号码是将实际相邻的奇数位与偶数位对调zui后加F得到。如原为12345678901,按上述方法得到2143658709F1。
  
  然后是该号码的长度0D,中国国家接入码91,译码方式00,编码方式08,再往后是短信在信息中心保留时间,一般选择保存10天,即A0.zui后分别是短信内容长度和短信内容。如要发送/火警0,则短信长度为4个16进制为04,/火警0经过unicode码转换程序转换得到16进制数据为706B8B66.
  
  这样整个PDU数据包的内容就是:0011000D91682143658709F130008A004706B8B66.
  
  单片机对TC35i所有的控制都是通过串口发送AT指令进行的,TC35i的每一个动作都对应了一个AT指令,而且每一个指令之后都要有一个回车符以告诉TC35i该条命令已经发完。一些常用的AT指令如表1。
  
  表1常用AT指令表
  
  当UDP数据包打好后,要对TC35i进行联机并通过TC35i发送短信。首先通过串口发送代表联机的指令AT,然后设定TC35i发送UDP格式的短信,其次将该PDU数据包的长度发给TC35i,接着将做好的PDU发送给TC35i,zui后在后面加上ctrl+z的ASC码0x1A和回车的ASC码0x0D.这样一条中文短信就发送出去了,发送短信程序流程见图4。
  
  图4发送短信流程图
  
  红外线遥控器所发射的红外信号的信息是以不同时长的高低电平来表示的。以NEC编码为例,从9ms高电平开始,以4.5ms低电平结束的是前导码;从0.56ms高电平开始,以0.56ms低电平结束的是0码;从0.56ms高电平开始,以1.69ms低电平结束的是1码。而由于HS0038红外接收头接收红外信号之后将把红外信号取反,因此高低电平延迟时间正好相反。所以一旦红外接收头的输出信号引发外中断,延时9ms之后如果单片机从输入脚读到低电平则说明这是引导码,系统需要启动红外码采集程序:先延时4.5ms放掉引导码的低电平,再延时0.56ms,放掉*个码的低电平部分,zui后延时0.8ms,读输入管脚的电压,如果为低,则说明该信号为0码,将其保存,并使累加器加一,如果为高,则说明该信号为1码,将其保存,并把累加器加一。依次类推循环32次后就是整个红外信号的编码。
  
  根据上述思路,开启1中断,并设置其为下降沿触发,同时开启T0定时计数器,并设置其为16位重装计时器。一旦红外接收头收到红外信号就会引起单片机的1号中断,随即进入中断服务子程序,在中断服务子程序中关闭计数器并将计数器中的数值记录下来;然后,判断该数值是否在0码、1码或前导码的时间范围内,如果是,则将该数值记入存储区。以此类推,当记录完32个码后,所有红外信息已经记录完毕。程序流程图见图5。
  
  图5红外解码流程图
  
  红外遥控信号的发射需要将代表红外信号的高低电平调制在一个38kHz的方波上通过红外LED发射出去,因此一方面通过编程单片机T2定时器的T2MOD和T2CON两个寄存器,使T2工作在可编程方波发生器模式下,在P1.0口输出38kHz的方波,另一方面依据NEC编码的格式通过延时程序在P1.4口产生代表红外信号的不同时长的高低电平。两个IO口输出的信号在与门上相与就将红外遥控信号调制在了38kHz的方波上。
  
  4、结语
  
  GSM作为公用陆地移动通信网,具有其他通信方式所不可比拟的*性,它通信范围广、传输数据可靠性高、短消息业务经济实惠,是远程无线数据传输系统比较好的一种数据传输方式。基于GSM的家用电器及家居环境监控系统,充分利用了现有的GSM网和相关的成熟技术,由单片机、GSM模块TC35i、红外接收装置和温度传感器等构成的移动终端,可以很好地完成短信息的收发,适合远程控制带有红外遥控器的家用电器,并可及时报告家中的火警信息。实验证明,本系统可以成功地对华为C3100机顶盒、科龙KFR226GW/ND1空调、及长虹CHD29300电视机进行远程控制。随着手机的普及,本系统具有较好的推广前景和实用价值。

猜你喜欢

您的留言已提交成功~

采购或询价产品,请直接拨打电话联系

联系人:

联系方式:
当前客户在线交流已关闭
请电话联系他 :