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