资源描述
基于Android的红外智能风扇摘要:为了解决家用电器在遥控方面的缺陷,结合智能家居的相关概念和技术,本文提出了一种基于Android手机的红外智能风扇设计方案。利用Android平台的应用软件,将智能风扇分为两种模式,一种模式是手动调节模式,通过红外模块把控制信号发送到STM32控制模块,而后由主控芯片STM32控制风扇的启停以及速度调节;另一种模式是智能模式,利用人体红外感应器和温湿度传感器,当检测到是否有人存在,且当前的温湿度可通过设置数值大小是否超出设定值,风扇将自动开关,调节风速大小,从而实现智能手机遥控电器的功能。关键词:智能家居;Android;红外线;STM32;风扇第一章概述目前,市面上的家用电器如电视、空调、DVD等都有自己专用的红外遥控器;另外,还有一种叫万能遥控器,可以实现控制不同品牌的家用电器。但是遥控器过多,也给用户带了不便,可以通过手机集成红外遥控功能,实现简化。该方法通过手机发射红外信号,主控芯片承受到该红外信号后,对与之连接各种电器设备进展相应控制。Android系统是Google公司推出的开源手机平台,采用Linux核,是一个标准化的、开放式的手机平台1。它具有强大的无线网接入能力,丰富、便捷的开发工具,和开放的平台等特点。STM32F1系列属于中低端的32位ARM微控制器,该系列芯片是意法半导体ST公司出品,其核是Cortex-M3。该控制芯片具有低功耗、高稳定、大容量等特点,适合多场合的控制应用。基于当前安卓智能手机的普及,为了满足智能家居的需求,本文设计了一款基于Android手机控制的智能风扇。把安卓智能手机作为控制平台,采用红外通信接口,把安卓智能手机与家用电器结合在一起,从而实现手机的无线智能遥控的功能。另外,本文还对风扇工作的模式进展了拓展,使其能够红外遥控调节模式与智能调节模式之间切换。第二章硬件设计2.1 方案选择红外协议需要载波调制信息,设计方案有:方案一:采用555定时器调制38KHz载波信号供单片机加载信息;555定时器本钱低,性能可靠,但占空比调制困难,频率确定无法改变。方案二:采用单片机部的PWM机制调制38KHz载波信号加载信息;这个方案节约空间、抗噪性能强,可随时改变频率与占空比,但程序不易编写众多遥控器一体对数据库存储需求大,方案设计有:方案一:采用AT24Cxx扩展外部存储器;方案二:采用自带高存储容量的存储器;综合以上考虑,本设计采用STM32系列单片机,这款单片机有脉宽调节模式,能满足本方案的38KHz需求,且此单片机Flash程序存储区有512K,不需要扩展存储空间也能满足加载万能遥控器的数据库。功能满足的情况下,也为了不让硬件过剩的原那么,我们采用了载波方案二和数据库存储方案二。2.2 电路设计本设计总模块框图Andmid客卢端图2-1总模块框图电路设计主要分为电源模块,红外承受模块、STM32控制模块、人体感应模块、DHT11温湿度检测模块和风扇驱动模块组成。其中电源模块采用电源适配器负责为其他模块电路提供稳定的5V电压。红外模块负责与手机红外经行相互通信,传递控制信息;单片机控制模块负责识别以及处理从红外模块传递过来的控制信息。手机加载数据库信息到PWM调制38KHz载波上驱动红外发射模块进展红外波发射。2.2.1 单片机模块单片机模块中的单片机采用STM32F103ZET6芯片,如图2-2所示。它是基于ARMCortex-M3核心的32位微控制器,LQFP-144封装,512K片FLASH相当于硬盘,64K片RAM相当于存,片FLASH支持在线编程(IAP);高达72M的频率,数据,指令分别走不同的流水线,以确保CPU运行速度到达最大化;通过片BOOT区,可实现串口下载程序(ISP);片双RC晶振,提供8M和32K的频率;支持片外高速晶振(8M),和片外低速晶振(32K).其中片外低速晶振可用于CPU的实时时钟,带后备电源引脚用于掉电后的时钟行走;42个16位的后备存放器(可以理解为电池保存的RAM),利用外置的纽扣电池,和实现掉电数据保存功能;多达80个IO,4个通用定时器,2个高级定时器,2个根本定时器,3路SPI接口,2路I2S接口,2路I2C接口,5路USART,一个USB从设备接口,一个CAN接口,SDIO接口,可兼容SRAM,NOR和NANDFlash接口的16位总线-FSMC;3路共16通道的12位AD输入,2路共2通道的12位DA输出.支持片外独立电压基准;CPU操作电压围20-3.6V。z n nnLQIL,n HErl 我 n a,n in Fl st n kmFl sad n 营n gudln Sarr 0n 步出n 翳皿n 物fflsrr01OOA n In f n MdLn Lworrl 严密prr 内oak C 匚 t r LVBAT L PC1TAJ4PER-RTCE FC133C32 JNi 匚 口界13双魂qjT匚 V5S_5E VDO.5 E OSCJNJ E dsc_ouT r WSTC rco i: PCI !t FC2匚 PC3z r VREF-匚 VREF一 匚 VDM r IWWKUPE fm r tP*2 rLOFPlOfiVDD_2 VMJ NCRA 13 m 12 M 11 附mFA 9 RAS PCM PS PC? PS PD15 FD14 PDI9- PD12PP11 PDIOPDM PB1L5 PBii4 FEM PBiaLII曼 工由工 兽ILI图2-2STM32F103V单片机封装图时钟电路STM32F103ZET6芯片上有两种时钟源,如图2-3所示:18MHz晶振X2作为MCU的时钟源232.768KHz晶振X1作为RTC的时钟源卓嬴山”1|_|工心H亚1TT-p1”P图2-3时钟电路电源电路本设计模块通过USB线供电,如图2-4所示。为保证芯片因电压过高不被烧毁,设置一个自恢复保险丝,在电路短路的情况下,自恢复保险丝发热断开,保护了硬件和电脑的USB接口免遭烧毁。图2-4电源模块2.2.2 红外接收模块本设计的红外接收模块是基于HL-A838红外一体化接收头的红外接收模块,电路图如图2-5所示。与单片机相连时,接PA3引脚。可接收红外发射模块发来的调制成38KHz的红外信号,并解调成逻辑电平,即收到调制的红外信号即输出低电平,否那么输出高电平,在程序上应用编解码即可完成红外遥控功能。模块特点如下:低功耗、宽角度及长距离接收供电电压可为3.3V5.5V输出匹配TTL,CMOS电平,低电平有效4个M2螺丝定位孔,便于安装。发射的红外线信号是手机通过两个并联的红外二极管发射的。具体实物图如图2-6所示。图2-5红外发射接收电路图图2-6本设计自制的红外发送模块2.2.3 温湿度检测模块温湿度检测模块采用DHT11温湿度传感器,它包括一个电阻式测湿元件和一个NTC测温元件,并与单片机的PA4引脚相连接。通过单片机等微处理器简单的电路连接就能够实时的采集本地湿度和温度。DHT11与单片机之间能采用简单的单总线进展通信,仅仅需要一个I/O口。传感器部湿度和温度数据40Bit的数据一次性传给单片机,数据采用校验和方式进展校验,有效的保证数据传输的准确性。DHT11功耗很低,5V电源电压下,工作平均最大电流0.5mA。图2-7温湿度传感器的连接图2.2.4人体红外感应模块图2-8人体红外感应模块人体红外感应模块是基于红外线技术的自动控制模块,电路图如图2-8所示。上单片机PA2引脚相连,电源采用5V电压供电,其功能特点:1、全自动感应:人进入其感应围那么输出高电平,人离开感应围那么自动延时关闭高电平,输出低电平。2、温度补偿:在夏天当环境温度升高至3032C,探测距离稍变短,温度补偿可作一定的性能补偿。3、两种触发方式:可跳线选择a、不可重复触发方式:即感应输出高电平后,延时时间段一完毕,输出将自动从高电平变成低电平;b、可重复触发方式:即感应输出高电平后,在延时时间段,如果有人体在其感应围活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时时间的起始点)。4、具有感应封锁时间(默认设置:2.5S封锁时间):感应模块在每一次感应输出后高电平变成低电平,可以紧跟着设置一个封锁时间段,在此时间段感应器不承受任何感应信号。此功能可以实现“感应输出时间和“封锁时间两者的间隔工作,可应用于间隔探测产品;同时此功能可有效抑制负载切换过程中产生的各种干扰。(此时间可设置在零点几秒一几十秒钟)。2.2.5风扇驱动电路风扇电机的驱动模块比拟简单,与红外承受模块的电路类似,就是主控芯片控制一个三极管的通断实现对风扇启停。此外,可通过调制PWM波的方式对风扇的转速进展相应调节。为了丰富风扇的功能,除了红外遥控风扇开关和调速外,本设计引入智能控制模式,即无需手动调节,通过人体感应传感器和DHT11温湿度传感器检测风扇下有无人员,及当前温度和湿度。在检测到有人的前提下,主控芯片根据当前的温度和湿度值给出相应的PWM来控制风扇电机的转速,实现风扇电机的智能运行。系统的总体实物图如2-9所示。图2-9系统设计实物图第三章遥控器软件设计STM32程序主要是用来接收、分析、处理红外模块过来的数据,完成以后通过给出相应的控制信号到电器上,最终到达遥控电器的目的。3.1 遥控器软件流程框图软件采用模块化编程,把系统运行分成两种模式:智能模式:用户无需调节风扇,主控芯片会对人体传感器与DHT11传感器的信号处理,并根据其给出相应的速度信号给风扇。手动控制模式:该模式下,用户可以通过手机对风扇的启停、速度进展调节控制另外,两种模式间的切换只需要手机应用端调节。开始图3-1遥控器软件流程框图3.2 红外编码程序本软件包含了3种红外编码格式:三星的TC9012,松下的LC7464M和NEC的UPD6121G。受篇幅限制,这里主要介绍TC9012编码。1、红外载波程序TC9012载波要求:频率38KHz占空比1/326,3图3-2载波波形参考图:38KHz1/3载波实测波形图:38.46KHz1/3占空比由载波实测波形图可以看出,实测波形与参考波形频率误差为1.2%,占空比误差为-0.6%,满足TC9012载波要求,说明我们用PWM产生的38KHz载波的程序是正确的,下面是具体的程序代码。38KHz载波核心代码:SYSclk=22118400Hz,PWM0频率为:SYSclk/(65536-TH0,TL0)/64=22118400/(65536-TH0,TL0)/64=38400Hz2、红外发送数据程序TC9012的一帧数据中含有 32位码,包含两次8位用户码,8位数据码各8位数据先导。码的反码。引导码由 4.5ms的载波和4.5的载波关断波形所构成,以作为用户码、数据码的T5I D| D|15 (I 13 3 4班弗则q反利图3-3引导码参考图图3-4引导码实测:有载波 4.52ms 图3-5引导码实测:无载波 4.52ms由以上两实测图可以看到,引导码有载波误差0.4%,无载波误差0.4%,是满足TC9012引导码开载波4.5ms+关载波4.5ms的要求的。D D D 5 6 7J 4ribvoid PwraO_33KHz_IniC()JWJXR |= OxflO;T。工作三二雉式TMOE 4= OxfO;位自制袭蒙IIO =取EL/装载初钻管THO - 0xff;/,装载初始值FDA_Ir.i t5tz jcture . PCA_FWM_Wide = PCA_PWM_6blt; 采月FWK模女PGA2IStxucture,PaCcl0=k= CA-Glock IiraeE_QEAT0法曲率作为PWM源频奉UpdatePwir (ECAO, 43); 一 役壹占空比为1/3取值43 一Tim? L000m5 *5.钥曰旭 闻的 2.60U团IS 2.00UTiine 1.030ms讣5.七0口用三RIGOL STOPCurfi4 J6-96ntsAk- 4.52nkf ”“用 221.24aRIjOL STOF -Cu*rAa 4456ms CSrB = 4&JS 二AX+4,53liS: l/AX* 221.2M:图3-6数据0实测:高电平0.56ms图3-7数据0实测:上下电平总长1.14msRIGOL*6.?86kHCuri= B52ms curs= t. rcms5 f O 2,24UCurR?B52ifr5Cur = 5 .SrneTC9012数据0高0.56ms,总长1.125ms的要求的图3-8数据1实测:高电平0.56ms图3-9数据1实测:上下电平总长 2.26ms由以上两实测图可以看到,数据0高电平误差0%,上下电平总长误差0.4%,是满足TC9012数据1高0.56ms,总长2.25ms的要求的。第四章Android应用软件设计本应用软件的设计是为了使我们的手机能够发射红外信号给主控芯片,从而实现远程控制目的。开发工具:Eclipse集成开发环境,JDK,Android-SDK。编译版本:android2.3.3。4.1 Android应用流程介绍下面是应用的具体流程;图4-1应用流程图图4-2应用界面4.2 资源规划和权限配置为了兼容不同手机屏幕尺寸和分辨率,放了三套不同分辨率和尺寸的图片分放在res/drawable-hdpi,res/drawable-mdpi,res/drawable-xhdpi目录。本应用设计用到本地红外适配器功能,多分辨率支持功能,窗体纵向显示功能的使用,在AndroidMainfest.xml中添加允许使用红外功能的权限。并且界面的窗体均为纵向显示,这里设置窗体显示通过标签属性android:screenOrientation=“portrait。设置多屏幕分辨率支持4.3 欢送窗体的设计与实现应用启动后是一个欢送窗体,欢送窗体全屏显示,3秒钟后自动跳转到TV主窗体。欢送窗体的实现:1) 在onCreate()方法中初始化窗体信息,加载background为drawable目录下的wele图片的布局文件activity_wel.xml。2) 创立一个线程类实现3秒后自动跳转。4.4 红外效劳红外效劳是一个service类,提供红外的连接,状态反应,线程读写数据,启动和停顿方法。红外连接:device.createRfmSocketToServiceRecord(MY_UUID)获取套接口,mySocket.connect(层接口远程连接遥控器。并且通过bundler传递message合UI界面更新。获取连接状态方法:返回当前红外效劳的状态。Start和Stop方法:线程的初始化和关闭线程。同步Write方法:防止多线程的干扰,采用关键字synchronized同步写方法。创立一个线程类,传递参数byte口写到套接口的字节流outputstream中。第五章实物调试5.1手动控制模式手动控制模式下风扇的启停与速度调节实验测试图如下图:图5-1风扇停顿工作与正常工作用h语工irEUEPitc-l曲净are图宙E:多趣:口mi*毋a目I兄回座上白恻HJ.Hu.6.孙够事E:而去:UTJ(U.盖粗区I卷收E型总区鹿捌1第H金nT:博上正下/宜由。宇VM上西口士i萧F埃君窿当前评境亚盾驰气手4调F相TV风扇懵速运行*丽学1号书F?rEiS一局广引侬亭*弋党:tiC.*品口侬图5-3上位机显示风扇手动模式下各工作状态5.2智能模式智能模式下风扇的启停与速度自动调节实验测试图如下图:图5-1风扇智能模式下的启停呷urn洒R邮r疝索QE5zklrRlZ二的刑吕a曲刘t当时广情耐度;楚晋篇幅式,无i在风扇下风扇帝机工,h。图5-3上位机显示智能模式下风扇运行状况第六章总结本文设计的基于Android的红外智能风扇,通过手机客户端发射红外信号给STM32主控芯片,对系统进展各种操作,能够实现对风扇的手动调节控制,并能够进展模式切换。实验调试能够实现各模式的功能,根本满足预期实验要求。基于安卓手机的智能遥控器设计新颖,实用方便,倡导绿色、环保的生活理念,具有经济、社会效益。从用户的角度出发,多功能、低本钱、强适应和人性化使得该产品将会获得开展契机。在以后居家生活中,手机远程遥控不仅仅如此,联网带给人们的效益将越来越多。未来人类的生活更加便捷,物参考文献1EdBurnette.Hello,AndroidM.USA:PragmaticProgrammers,LLC,20旬2林小茶.C语言程序设计(第二版)M.:中国铁道,2007年.3郭现杰,权.从零开场学JavaM:电子工业,2012年.4翟大昆,春茶.Android工程开发详解M.:机械工业,2012年.5焕成.工程背景下的单片机原理及系统设计M.:清华大学,2008年.6高彩丽,许黎民,袁海等.Android应用开发例精解M.:清华大学,2012年.本设计以STM32F103为主控芯片,使用安卓手机红外遥控APP作为移动控制终端,通过PC上位机实时显示系统各模块的工作状态,便于用户的监测与控制。系统包括3个功能模块,分别为风扇控制模块、盆景供水模块和照明控制模块。每个功能模块具有2种工作模式,手动调节模式和智能模式。系统通过安卓手机红外遥控应用发射红外信号,红外承受端将承受到的红外信号传送至主控芯片,主控芯片根据其容进展相应模块的控制操作,且各模块相互独立,互不干扰。其中各模块的工作方式的切换也是通过APP上的相应操作实现。系统各模块的工作状态通过串口传送至PC上位机进展显示。该系统解决家用电器在遥控方面的缺陷,结合智能家居的相关概念和技术,从用户的角度出发,集多功能、低本钱、强适应和人性化于一体,为人们的工作和生活带来了极大的便利。
展开阅读全文