通过远程广域网控制家电设备是信息家电的主要发展方向之一。由于价格低廉、覆盖面广、使用方便等原因,短消息平台已经成为远程家电控制的重要方法。 本文研究和开发了一种基于短消息的远程红外遥控系统。该系统以Java语言应用程序作为客户控制终端,以短消息作为控制信号的传输平台,以家电常用的红外遥控器作为控制设备,形成了比较完备的远程家电控制系统原型。 本文首先分析了广域网传输技术、家电控制设备、客户控制终端等三个关键技术的选型问题,并据此提出了系统设计的总体结构。 随后,本文介绍了系统的硬件设计,着重讨论了MCU模块、短消息模块、红外遥控电路、串行通信电路等主要模块的详细设计。
本文在后续章节中首先介绍了短消息平台的基本工作原理、常见的AT指令及其使用方法等,然后介绍了接收端和发送端的软件总体结构,特别详细地分析了短消息接收和解码、红外信号的调制和产生等关键模块。最后介绍了基于Java语言编写的用户控制端软件结构,主要包括界面设计、串行端口访问等关键模块。 本文最后讨论了系统的硬件测试、软件测试和集成测试,最后实现了使用短消息远程遥控空调和某型DVD机,验证了整个系统设计的有效性。 本文介绍的基于短消息的远程家电红外遥控系统,具有可扩展性好、使用方便、价格低廉、覆盖面广等优点,具有一定推广价值,其关键技术也可延伸到工业控制等领域。本系统通过控制空调,可以在下班的路上通过电脑或者手机对家里空调打开,回家就可以享受。
控制器与家电的接口选择
因为红外遥控接口作为家用电视机、VCD、空调器,DVD数字投影机等主要控制接口,本文试图从家电的遥控着手,在家电不做任何改动的前提下,利用单片机附加电路驱动红外发光管产生遥控信号,来控制各种具备遥控功能的家电。
系统的控制器与家电的红外接口是由单片机机软件及相应附加电路去完成信息家电控制信息的传送,并实现各种遥控型家电的统一控制。用户只需关心被控制家电的类型和需要实施哪些有效的操作,例如对电视机有选频道、调音量而不会有快放、暂停等操作,不要对目前的电器做任何改动就可以实现远程控制。
目前绝大多数智能手机都装有Java虚拟机,支持Java程序,所以采用Java语言编写上位机的好处是方便以后移植到手机上。
系统框图
在本设计中,受控端由单片机、GSM模块、检测部分、控制部分组成。其中PC用于控制,主控程序通过串行口R232传给GSM模块TC35iT以短信息的形式发送给短信息服务中心(SMSC),再由短信息服务中心发送给受控端的GSM模块。受控端的GSM模块TC35i接收短信息后,通过串行口R232传给单片机,单片机根据接收到的短信息进行处理,从中提取控制命令,本系统是将命令码进行红外发射编码,通过MCU的IO口驱动三极管和红外发射管,发出相对应功能的红外信号,再对被控设备进行相应的操作控制。[14][15]
硬件结构框图
本系统的硬件设计主要包含发送端硬件设计和接收端硬件设计。图3-1为系统硬件结构框图。发送端硬件由RS232电平转换模块MAX232,GSM模块TC35i,电源模块等组成。接收端硬件由GSM模块TC35i,MCU模块W78LE516,红外发射驱动三极管,红外发射管,电源模块等组成。
短消息模块
目前市面主要有wavecom, siment这两家GSM模块,根据网上的资料可知wavecom的市场占有率低,SIMENT的模块功能强大应用的够多,包括企业的短信平台,特别是无线固话基本上都是使用siment的TC35或TC35i,TC35i是TC35的改进产品,稳定性更好,所以选TC35i作为本系统的GSM模块。
西门子TC35i模块介绍
随着通信技术的发展,基于移动通信网络服务功能,正向工业控制和遥控领域有不断扩大的趋势,为适应这种需要,西门子公司推出了新一代无线通信GSM模块——TC35i,基于该模块的短消息功能,可以快速安全可靠地实现用户信息处理等功能,特别适用于控制中心与终端设备距离很远,或不便采用有线通信介质等场合。
目前,国内已经开始使用的GSM模块有很多,而且这些模块的功能、用法差别不大。本设计采用的是西门子TC35系列的TC35i。这种无线模块功能上与TC35兼容,设计紧凑,大大缩小了用户产品的体积。TC35i与GSM2/2兼容、双频GSM900/GSM1800)、RS232数据接口,该模块及射频电路和基带与一体,向用户提供标准的AT命令接口,为数据、语音、短消息和传真提供快速、可靠、安全的传输,方便用户的应用开发及设计。
客户终端系统软件设计
应用层面的软件采用JAVA语言编写,JAVA的开发和运行环境需要JDK,所以开发和运行的PC要装JDK,
Java的优点是跨平台、一次编写到处运行、简单易用等。从语言本身来讲,它是抛弃了C/C++ 的诸多缺点,综合很多语言的优点后的产物。从应用上来讲,J2EE是目前企业级应用的最出色平台和最成功的解决方案,J2ME已经独霸移动及嵌入式产品开发的大半壁江山,手机Java应用程序、Java游戏层出不穷,展现它勃勃生机;J2SE也不甘落后,相当多的Java桌面应用软件也在不断涌现出来。[20]
主程序模块框图
图为主程序模块框图,主程序主要由遥控器按键码数据库,窗口框架模块,串口通信包,串口参数设置模块,串口通信模块,短消息PDU打包模块,遥控器图形界面模块组成。
接收端整体结构
接收端的单片机软件结构是由CPU初始化模块、GSM控制模块、红外遥控发射模块、定时器中断模块、GSM短信的发送模块、GSM短信的接收模块组成。当系统上电后,首先是复位电路对MCU复位,然后从00地址开始执行程序,CPU初始化模块对IO口进行初始化,中断初始化,定时器初始化(包括对3个定时器的初始化,定时器0用于产生红外遥控发射38kHZ载波用,定时器1用于串口的波特率产生,定时器2用于25MS的系统时钟),串口初始化、GSM模块复位脉冲产生和初始化,进入主循环。主循环主要是查询GSM模块的状态,读短信报告,读出当前的新短信的索引号,然后发AT指令从SIM卡读出新短信再进行短信报文分析并做出相应的响应。如果有新短信来就对将短信内容拷贝到缓冲器并对它进行解析取出控制命令码,并将控制命令码交给红外遥控发射模块产生红外遥控脉冲。处理完毕后用AT+CMGD=INDEX<CR>指令将其从SIM卡中删除,然后重复上述过程。
基于短消息的远程家电红外遥控系统