基于短消息的远程家电红外遥控系统

通过远程广域网控制家电设备是信息家电的主要发展方向之一。由于价格低廉、覆盖面广、使用方便等原因,短消息平台已经成为远程家电控制的重要方法。 本文研究和开发了一种基于短消息的远程红外遥控系统。该系统以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卡中删除,然后重复上述过程。





基于短消息的远程家电红外遥控系统

时间: 2024-11-07 12:49:42

基于短消息的远程家电红外遥控系统的相关文章

基于STC12系列单片机的通用红外遥控信号分析程序(一)

前言 最近学51单片机学习到红外遥控解码与发送部分,开发板的相关教程只有NEC协议的解码,基本的解码套路是1838接收头输出管脚接单片机外部中断0,当接收到红外信号时产生下降沿触发中断,在中断函数中先延时9ms判断电平再延时4.5ms判断电平,从而跳过引导码:再分别延时560us.1690us左右不等的时间判断电平来解码“0”或“1”,直到结束:红外发送思路就是根据NEC协议及红外码值的二进制码分别控制高低电平,并延时相应的时间.但存在这么几个问题: 1. 解码逻辑写死在中断处理函数中,不方便扩

[每日电路图] 2、红外遥控电路原理设计与解析【转+解读】

          楼主说:本文主要讲一个红外遥控电路的原理及设计,第四部分是重点,用电路图说明具体过程——接收,计数,满足条件触发控制电路! from elecfans:http://www.elecfans.com/article/88/131/198/2015/20151215394306.html 一.概述: 红外遥控的发射电路是采用红外发光二极管来发出经过调制的红外光波:红外接收电路由红外接收二极管.三极管或硅光电池组成,它们将红外发射器发射的红外光转换为相应的电信号,再送后置放大器.

[原创]基于51单片机的红外遥控课程设计

[注]: 一眨眼,大学接近尾声,具有找工作需要,所以把大学做的电子设计“劣作”放上来.希望考研失意,还能赶上“好工作”的春招班车.如果大伙有什么工作推荐也可以联系我哦,因为一年考研少接触了这方面,所以难免有些生疏.但请相信我!给我机会我会很认真学的! 邮箱:[email protected] 转载请注明出处呀! 基于51单片机的红外遥控课程设计 目录 第一章 设计简介... 3 第二章 系统方案... 3 一.设计方案对比... 3 二.方案设计... 4 第三章 硬件设计... 5 一.红外遥

基于Arduino的红外遥控

1.红外接收头介绍  一.什么是红外接收头?  红外遥控器发出的信号是一连串的二进制脉冲码.为了使其在无线传输过程中免受其他红外信号的干扰,通常都是先将其调制在特定的载波频率上,然后再经红外发射二极管发射出去,而红外线接收装置则要滤除其他杂波,叧接收该特定频率的信号并将其还原成二进制脉冲码,也就是解调. 二.工作原理  内置接收管将红外发射管发射出来癿光信号转换为微弱的电信号,此信号经由IC内部放大器进行放大,然后通过自动增益控制.带通滤波.解调变.波形整形后还原为遥控器发射出的原始编码,经由接

基于STC89C52的oled红外遥控闹钟

这个红外遥控主要是程序通过对按下的键的键码进行解析,并运行相应的功能代码 一次按键动作的遥控编码信息为 32 位串行二进制码.对于二进制信号“0”,一个脉冲占 1.2ms:对于二进制信号“1”,一个脉冲占 2.4ms,而每一脉冲内低电平均为 0.6ms.从起始标志到 32 位编码脉冲发完大约需80ms,此后遥控信号维持高电平.若按键未释放,则从起始标志起每隔 108ms 发出 3 个脉冲的重复标志.在 32 位的编码脉冲中,前 16 位码不随按键的不同而变化,我们称之为用户码.它是为了表示特定用

IOS 基于APNS消息推送原理与实现(JAVA后台)--转

Push的原理: Push 的工作机制可以简单的概括为下图 图中,Provider是指某个iPhone软件的Push服务器,这篇文章我将使用.net作为Provider. APNS 是Apple Push Notification Service(Apple Push服务器)的缩写,是苹果的服务器. 上图可以分为三个阶段. 第一阶段:Push服务器应用程序把要发送的消息.目的iPhone的标识打包,发给APNS. 第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的

cortex_m3_stm32嵌入式学习笔记(二十三):红外遥控实验(输入捕捉+解码)

红外遥控是一种无线.非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低,成本低,易实现等显著优点,被诸多电子设备特别是家用电器广泛采用,并越来越多的应用到计算机系统中. 红外遥控的编码方式目前广泛使用的是: PWM(脉冲宽度调制)的 NEC 协议和 PhilipsPPM(脉冲位置调制) 的 RC-5 协议的.ALIENTEK MiniSTM32 开发板配套的遥控器使用的是NEC 协议,其特征如下: 1. 8 位地址和 8 位指令长度: 2.地址和命令 2 次传输(确保可靠性) 3. PWM

微信推送短消息

推送短消息:按照级别由低到高>> 公众号---->已认证公众号----->服务号----->已认证服务号------>企业号 前提:基于微信认证服务号 主动推送微信消息 1,关注服务号 2.在沙箱环境小操作 实现步骤: 1.注册账号 appID appsecret a.在网页授权获取用户基本信息, IP或者域名,正式环境必须是域名 b.关注公众号(已认证的服务号) c.生成二维码,用户扫描    此时,将用户信息发送给微信,微信再将数据发送给设置redirect_url

如何基于Vert.x实现远程调用?

Vert.x的微服务 最近关于微服务的概念到处都在宣传,而Vert.x的verticle本身就是很好的一种服务定义,你可以把verticle看成一个service,也可以把verticle看成一个actor.这样你的视角会切到Actor模型里.本文我们将讨论如何基于Vert.x实现远程调用. 传统Java开发人员受EJB以及Spring的影响比较深,所以对面向接口编程了解的比较多.哪怕跨JVM也可以通过接口来调用对方提供的方法.这是非常友好方便的开发方式,因为框架层面做了服务发现以及服务生命周期