首页 > 范文大全 > 正文

基于android平台的智能家居遥控系统

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于android平台的智能家居遥控系统范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

【摘要】现有家电通常采用红外遥控器实现远程控制。随着家电种类的增多,遥控器的泛滥使得用户体验下降,而且由于各个厂商控制标准的不同,家电一体化难以实现。为了解决这个问题,本文提出了一种基于stm32单片机和android平台的家用电器遥控系统。本系统将android平台和stm32单片机完美结合,使用户可以在屋中各个位置轻而易举的控制家中各类家电,并且操作简单,使用方便。更进一步的实现了家电一体化。

【关键词】stm32;蓝牙通信;红外遥控

1.前言

在电器设备高速发展的今天,每家都有多台可控设备,而每台设备一般都会配有一个遥控器,由此导致的“一机一遥控器”现象,严重的影响了家电的一体化。为了解决这个问题,“万能遥控器”应运而生,但“万能遥控器”并不是万能的,它仅是将部分家电的控制信号集成到一个芯片上,这样的做法有一定的局限性。当下智能手机的飞速的发展,使得其越来越普及,并且在人们的生活中起到越来越重要的作用。所以通过手机来控制家电已经成为家电发展的一种趋势。如今三星、小米的手机均已支持遥控功能,可是它不能确保控制家中所有电器,也有一定的局限性。而且这种做法和普通红外遥控器一样也存在一些弊端。例如,红外线不能穿过或绕过人和物体。在进行信息传输时不能阻挡红外线的光路,在实际使用中还是会造成一些麻烦。

本文在这样的背景下,设计了一种结合蓝牙和stm32单片机的遥控系统。本系统保留了普通红外遥控器传输信抗干扰能力强、信息传输可靠、功耗低、成本低等优点。在此基础上,利用蓝牙在短距离无线传输时只有距离的限制,而不受外界物体干扰的的特点,解决了普通遥控器在传输信息时,要对准方向并且中间不能有障碍物的要求。使用户可以通过手机在屋中不同房间控制家中的电器。并且本遥控器系统不像传统的遥控器那样,只能发送预先固定在遥控器内的遥控指令信息。而是在单片机快速的处理能力和运算能力的基础上,将用户家中多种遥控器的按键信息学习下来并加以保存,把多个遥控器合成一个,即“学习遥控器”的功能。然后在利用单片机将信号进行发送。极大的方便了用户使用家用电器。

2.总体设计

系统采用STM32单片机作为主控芯片,结合智能手机,使手机成为家用电器的控制端。用户可以通过手机简单快捷的控制家中的各类电器。为了实现具体的功能,整个系统分为两个部分。android平台控制部分和遥控器部分。android平台主要为用户提供操作界面,发送用户指令。遥控器部分主要功能为接受用户指令并根据接收到的指令控制家中家电。总体设计图如图1所示。

图1 系统总体设计框图

3.系统实现

本节主要描述了遥控器部分的实现细节,分为硬件和固件两个方面。

3.1 硬件设计

硬件原理图如图2所示,主要由复位电路、时钟电路、电源电路、红外发送电路、红外接收电路、JTAG电路以及蓝牙模块电路组成。下面将分述几个主要模块电路的具体功能及原理。

图2 硬件原理图

1)单片机模块

本系统选用的控制芯片是stm32f103单片机。stm32f103属于中低端的32位ARM微控制器,该系列芯片是意法半导体(ST)公司出品,其内核是Cortex-M3,内含128kb闪存,指令执行速度快,运算处理能力强。并且其内部具有明确的中断优先级分组方式和快速度中断响应能力,能对突况快速做出反应。

遥控器部分的设计是以stm32f103单片机为中心,其主要电路由复位电路、时钟电路和JTAG电路组成,时钟电路用到了一个8Mhz晶振和一个32.768Khz晶振。8Mhz的晶振经过单片机内部的锁相环电路和软件设置后被提高到72Mhz,为系统提供了高速的运行速度,正是利用了其高速的运行速度和强大的计算能力,才得以确保各个模块的更加平稳的运行。

2)电源电路

由于本次选用的单片机和各模块都采用3.3V供电,所以采用2节AAA电池供电。在节能方面,考虑到遥控器不是每时每刻都必须要运行的设备,所以系统在运行一段时间后没有接受到指令,将会自动进行睡眠模式。大大减少了能量的消耗。其中使用2节AAA电池供电可以不受外界部供电条件的限制,使用户可以根据家中家电的具置来摆放遥控器,方便使用。

3)红外发送电路

红外发送模块主要利用了三极管的开关特性,单片机通过对三极管的控制来开关红外二极管将信号发送出去。电路图如上图Send模块电路所示。

4)红外接收电路

红外接收模块用HS0038接收头来接收外部红外信号。HS0038为黑色环氧树脂封装,不受日光、荧光灯等光源干扰,内附磁屏蔽,功耗低,灵敏度高。在用小功率发射管发射信号情况下,其接收距离可达35m。它能与TTL、COMS电路兼容。HS0038为直立侧面收光型。它接收红外信号频率为38kHz,周期约26μs,同时能对信号进行放大、检波、整形,得到TTL电平的编码信号。具体电路图如上图Receive模块电路所示。HS0038接收头将解码的红外信号通过单片机的外部中断功能发送给单片机进行处理。

5)蓝牙模块

由于本系统要通过蓝牙进行android平台和遥控器端的通信,而现在大多数智能手机都采用蓝牙2.0或2.1版本,所以本系统选用了2.0版本,具体型号为HC-06从模块。采用2.0蓝牙模块不仅可以支持现在市面上绝大多数智能手机,而且它传输数据量比较大。在与单片机通信时候,采用了串口通信协议,具体电路如上图Bluetooth模块电路所示。

3.2 固件设计

遥控器端程序主要功能主要为接收android平台发来的指令,对外部红外信号进行学习、保存及发送已经保存的红外信号等。所以在设计遥控器部分程序的时候要考虑android平台和遥控器端的通信问题,和对接收到的进行信号解码及模拟信号发送的功能的具体实现。

android平台和遥控器端的通信主要以蓝牙为桥梁。通过蓝牙的配对接受手机发送的指令,在通过蓝牙发送给单片机。其中蓝牙和单片机为串口通信协议,具体参数为,9600波特率无校验位,8位数据及1个停止位。

现在家电遥控器的编码格式主要有两种,一种是NEC格式,一种是RC5格式。所以在对接收到的信号进行解码的时候要考虑到两种信号的不同。NEC发送数据的格式为:引导码,8位的客户码,8位客户码的补码,8位的按键值,8位按键值的补码及最后的结束标志。RC5发送数据的格式为:起始位(1位)+验证位(1位)+控制位(1位)+系统码(5位)+命令位(6位)。其中NEC格式的引导码为9ms低电平和4.5ms高电平而RC5格式的起始位为1位高电平。所以在设计红外学习功能的时候可以根据接收到起始信号判断是哪种模式在具体进行解码。

发送信号是根据接收到指令判断出是哪种数据发送模式和数据的具体类型,将保存的信号通过单片机的引脚模拟出来,以红外二极管为媒介发送出去,达到控制家中电器的目的。

遥控器端程序流程如图3所示。

图3 遥控器端程序流程图

4.android平台

android平台主要为用户提供操作界面,并通过蓝牙向遥控器端发送指令。android平台APP利用eclipse平台开发,主要实现了将手机蓝牙和遥控器端蓝牙连接并进行数据的收发。android平台和遥控器部分进行通信的程序具体实现为:android平台通过蓝牙向遥控器端主要发送两大类指令,一种是学习指令,另一种是发送指令。

图4 android平台程序流程图

当遥控器端接收到学习指令后进入学习模式,将外部信号进行保存,并把保存的信息与接收到的按键信息进行绑定。当遥控器端下次接收到发送指令后,通过将接收到的按键信号和所保存的信息比较来确定发送的具体信息。android平台软件的程序的流程图如图4所示。根据android平台发送的指令,遥控器端进行信号的学习和发送,从而实现控制家中各类电器的目的。

5.实验成果

本系统硬件电路通过Altium Designer进行设计并做出实物。遥控器部分的软件设计用keil4编译器,通过C语言进行开发。android平台软件设计使用eclipse平台,用java语言进行开发。最终将编译产生的可执行代码文件写入芯片。经过测试可以成功接受手机发来的指令,并按照指令将信号进行发送或学习。达到最终要求。实物图如图5所示。

图5 实物图

6.结束语

本系统在普通家用遥控器的基础上,利用了单片机和蓝牙技术,实现了远程遥控和学习的目的。最终可以使用户通过手机来控制家中电器设备,并且还可以学习家用电器遥控器按键信息,达到一对多的控制功能。解决了用户家中多种遥控器并存的现象以及普通遥控装置只能在一定距离范围内控制受控设备的弊端。在实际使用中基本可以达到最终要求,但是对于特殊发送信息格式的遥控器,暂时还无法进行学习,这是亟待改进的地方。

参考文献

[1]杜春雷.ARM体系结构与编程[M].北京:清华大学出版社,2003.

[2]Joseph Yiu.The Definitive Guide to the ARM Cortex-M3[M].北京:北京航空航天大学出版社,2009.

[3]金纯,许光辰,孙睿.蓝牙技术[M].北京:电子工业出版社,2001.

[4]汪爱丽.基于ARM和蓝牙技术构造智能家居控制器[D].山东:曲阜师范大学,2007.

[5]苏长赞.红外线与超声波遥控[M].北京:人民邮电出版社,2001.

作者简介:

张伟业,男,大学本科,现就读于黑龙江大学机电工程学院,主要研究方向:电气自动化控制、嵌入式系统

张扬,男,工程师,现供职于黑龙江大学机电工程学院,研究方向:嵌入式系统开发、医疗电子设备开发。

关景新,男,大学本科,现就读于黑龙江大学机电工程学院,主要研究方向:电气自动化控制、嵌入式系统。