多功能智能窗设计报告.doc_第1页
多功能智能窗设计报告.doc_第2页
多功能智能窗设计报告.doc_第3页
多功能智能窗设计报告.doc_第4页
多功能智能窗设计报告.doc_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2012 AMD杯(青岛)大学生电子设计竞赛 复赛设计报告参赛队号: 2012030 项目中文名称: 多功能智能窗 项目英文名称: Smart Window 学校: 中国海洋大学 院系: 工程学院自动化及测控系 指导老师: 黎明 参赛队员:李明扬、樊铭远、刘赛、黄嘉俊目录摘要2Abstract2一、系统功能分析2二、硬件设计方案21、控制器设计方案22、程序下载与串口通讯电路设计方案23、温度传感器电路设计方案24、湿度传感器电路设计方案25、红外报警传感器设计方案26、角度测量电路设计方案27、雨滴模块设计方案28、GPRS通信模块设计方案29、LCD液晶显示器硬件设计方案210、键盘硬件设计方案211、电机硬件设计方案212、系统供电设计方案2三、软件设计方案21、整体软件流程22、温度数据融合方案23、自动调节窗户角度设计方案24、通讯模块底层软件设计25、通讯模块人机交互指令设计26、系统输入的软件设计方案27、LCD显示界面设计方案2四、系统测试方案21、角度标定测试22、角度控制精度测试23、多个温度传感器融合算法测试2参考文献:2附录1:核心程序2附录2:程序清单2附录3:设计原理图与PCB2摘要本项目给出了以STM32单片机为控制器的多功能智能窗实现方案。本系统以STM32单片机为控制器,实现智能窗根据环境自动开闭、手机远程遥控开闭、防盗报警功能。智能窗的开闭由电机带动,关闭后有自锁功能;通过手机与系统的GSM模块通信,可实现对智能窗的远程控制;实时监测室内外的温湿度,通过信息融合算法实现窗户开度的自动控制;窗户上的主动红外报警器检测到入侵信号后会拉响警铃,并向用户发送报警短信。关键词:智能窗信息融合远程通讯AbstractThis project gives a practical scheme of a smart window which is controlled by a embedded controller , STM32 . The function of this system contains the autocontrol of the angle of the window in terms of the environment , the remote control of the window by mobile phone , and burglar alarm . The angle of the window is controlled by a motor , and the window can be locked automatic when it closed ; the remote control is realized by the communication of the user and the GSM module of the system ; the temperature and humidity sensors can get real-time data then the system can get a appropriate angle by information fusion ; the infrared alarm can detect the invader and the beeper will ring at the same time , in the same time , the user will receive the alarm message send from the system.Keywords:Smart Window Data Fusion Remote Communication一、系统功能分析本系统的目标是设计一款多功能智能窗,应用于未来的智能家居。主要功能如下:、多传感器测量:利用多组温湿度传感器,将各传感器的测量结果进行融合,能够给出较准确的温湿度信息;实时监控室内外温度,并反馈给用户;配置雨滴检测模块,能够监测室外下雨情况,并及时提醒用户。、智能运动控制:使用直流电机驱动的电动推杆实现智能窗的开闭,并设置自动调节功能,当内外温湿度变化时自动调节窗户的开度。、人机交互功能:配置了LCD显示器和4*4键盘,能够实时显示室内外温湿度信息,可用键盘对各功能进行设置,并修改开机密码、手机号等用户信息;并可用GPRS模块与用户进行远程通讯完成上述功能。、远程通讯功能:配置了GPRS模块与用户通讯,使用户可以用手机命令的形式控制智能窗任意角度的开闭;并可对系统功能和用户信息进行设置。、防盗报警功能:配置对射式红外传感器作为防盗报警器,在报警开启情况下,检测到外界入侵会及时发送短信提醒用户。6、数据存储功能:使用MCU内置的FLASH,实现用户数据和系统配置信息的在线更新和掉电存储,防止用户信息丢失。二、硬件设计方案硬件整体框图:图2-1 硬件整体框图1、控制器设计方案1.1控制器简介本设计的控制器采用STM32单片机系列的单片机STM32F103RBT6。以下是它的部分特性:(1) 采用ARM Cortex-M3 内核,拥有最高72MHz的工作频率,对于设计所需的较多功能能够及时的处理。内核中的Systick定时器可作为精确延时的工具,便于传感器控制时序的处理。(2) 配置128KB的闪存程序存储器,足够容纳复杂的程序设计代码,并可以利用剩余的flash空间存放用户数据和系统配置信息。(3) 内置两个12位AD,转换时间1微秒,并有多达16个输入通道,可用于实现窗户角度信息的采集。(4) 配置三个通用定时器TIM2、TIM3、TIM4,一个高级控制定时器TIM1,每个定时器又有四个可分别控制的通道,方便灵活,功能强大。可实现定时中断,PWM脉宽调制,正交编码输入等功能。(5) 配置三个USART外设,可方便的与计算机进行通讯,便于系统的测试;同时方便与GPRS芯片MC37i进行通讯,实现短信收发的控制。(6) 配置多个具有复用功能的I/O端口,速度可达50MHz,所有端口都可以映像到16个外部中断,几乎所有端口都可以容忍5V信号。1.2控制器外围电路设计(1) 复位电路设计图2-2 复位电路原理图(2) 外部晶振电路43图2-2 外部晶振电路图(3) 电源滤波电路图2-3 电源滤波电路图除了在VDDA和VSSA之间设置滤波电路之外,还在单片机所有的四个VSS和VDD之间都放置一个0.1uF的滤波电容。(4) Boot0和Boot1电路Boot0和Boot1管脚在芯片复位时的电平状态决定了芯片复位后的启动方式。BOOT1=XBOOT0=0从用户闪存启动,这是正常的工作模式BOOT1=0BOOT0=1从系统存储器启动,这种模式启动的程序功能由厂家设置。BOOT1=1BOOT0=1从内置SRAM启动,这种模式可以用于调试。本设计为了可以采用JTAG和ISP两种方式下载程序, 在BOOT0处设置了一个选择开关,进行ISP下载时要将BOOT0管脚拉高,下载完后再拉低即可正常运行。图2-4 芯片启动方式电路图2、程序下载与串口通讯电路设计方案本设计采用可以采用两种方式进行程序下载:ISP方式和JTAG方式。2.1 ISP下载与串口通讯电路设计本设计采用Prolific公司生产的PL2303芯片进行USB和串口信号的转换,它具有高度集成的特点,提供了一个在USB接口跟RS232串口之间通信的的解决方案。在使用时,作为RS232/ USB双向转换器,一方面从RS232 外设中接收数据并将其转换为USB 数据格式传发送给外设;另一方面从主机接收USB 数据并将其转换为RS232 信息流送回主机。开发者无需考虑固件设计,因而对嵌入式设计者是透明的,便于实现了单片机串口和计算机USB口的通讯和ISP下载。以下是PL2303外围电路设计:为了防止系统在使用外部电源供电时内部5V电压与USB接口的5V电压输入冲突,在USB电压输入端接500mA保险丝,并串接肖特基二极管1N5819,起到保护作用。图2-5 PL2303外围电路图2.2 JTAG下载电路设计本设计使用20针的JTAG接口作为与外界的连接端口。JTAG拥有一个双向串行端口,可以通过JTAG将需要运行或者调试的程序下载到单片机的FLASH内,控制STM32F103的运行,读取片内寄存器值,以及刷新存储器的内容,方便了程序的编写和维护。标准JTAG接口是4线;TD0、TD1、TMS和TCLK,分别为数据输出、数据输入、模式选择和时钟。电路中在JTAG的电压输入端串接肖特基二极管1N5819,在电路板采用JTAG供电时达到保护电路的目的。图2-6 JTAG下载电路图3、温度传感器电路设计方案本设计采用DS18B20作为温度传感器。DS18B20温度传感器是一线式数字温度传感器,温度测量范围是55125,测温分辨率可达0.0625,精度较高;电源供电范围为3V5.5V。18B20的最大特点是支持单总线挂接多个传感器,极大地节约了硬件电路,便于多传感器网络的搭建。因为每个18B20有唯一的系列号,写在传感器的ROM内,可以通过读取ROM命令和搜索ROM命令识别总线上的器件,分别读取他们的信息。以下是 18B20的电路接口图,在电源与地直接连入0.1uF电容起滤波作用。图2-7 DS18B20电路图4、湿度传感器电路设计方案本设计中湿度传感器选择了DHT11。DHT11温湿度传感器是一款湿温度一体化的数字传感器,其湿度测量范围:2090RH,湿度分辨率 :1RH,精度较高,能较精确的测量室内的湿度。同时HDT11硬件设计简单,只需单片机的一个端口就可读取其数据,非常方便。以下是DHT11的硬件电路图:图2-8 DHT11原理图5、红外报警传感器设计方案红外报警电路采用对射式红外线检测装置,通过检测红外线是否被遮挡判断是否有异常。红外发射头选用OSE-1L7,其外形和发光二极管LED相似,发射波长940纳米左右的红外线,管压降约1.4V ,工作电流一般小于20mA,控制方便。红外线接收管采用IRM8601S,它是一个一体式红外线接收传感器,接收头内部集成自动增益控制电路、带通滤波电路、解码电路及输出驱动电路。它共有三个管脚,电源、地和信号输出,其中心接收频率为38KHz,当接收到38 KHz的红外光信号时,会输出一个10毫秒的低电平脉冲信号,当没有接收到38KHz的红外光信号时,输出端为高电平。以下是红外报警电路的图:图2-9 红外发射原理图图2-30 红外接收原理图图中LED4为红外发射管,R21为限流电阻,R17为可调的限流电阻,用来调整红外发射管的发射强度,发射管的负极直接接到单片机的PWM输出管脚,即可发射一定频率的红外光线。6、角度测量电路设计方案STM32F103RBT6芯片内置了12位AD转换器,因此为了节约成本,同时考虑到精度问题,本设计的对窗户开度的角度测量采用旋转电位器作为传感器,将电位器两端电压经过运算得到窗户的角度。设计电路图如下:图2-41 电位器电路图10K电阻为分压电阻,电位器阻值为47K,其中PC0管脚为复用管脚,此时用作单片机AD1的10号采样通道。7、雨滴模块设计方案雨滴模块的原理是利用水的导电性,使用两个栅状的电极作为传感器,当有雨滴下时两电极之间的电阻会变小。将10K可调限流电阻与电极串接到3.3V电源上,同时使用电压比较器TDC393获取电极两端电压,并输出电压比较信号。TDC393是由两个独立的、高精度电压比较器组成的集成电路,失调电压低,最大为2.0mV。它专为获得宽电压、单电源供电而设计,电源电压2.0V到36V;而且无论电源电压大小,电源消耗都很低;同时TDC393被设计成能直接连接TTL和CMOS,所以与单片机接口方便。电路图如下:图2-52 雨滴模块原理图其中,R1为可调电阻,通过调整R1可调整雨滴模块灵敏度;K1为雨滴模块探头的接口,以下是电极图片。图2-63 雨滴模块实物图8、GPRS通信模块设计方案8.1 MC37i功能简介本设计采用GPRS模块MC37i进行短信收发。MC37i模块是一款支持中文短信息的工业级的新版GPRS模块,工作在GSM 900/1800Hmz双频段,电源范围为直流3.34.8V ,休眠状态电流消耗为3.5mA,空闲状态为25mA,发射状态为300mA(平均),峰值为2.5A;可传输语音和数据信号 ,通过接口连接器和天线连接器分别连接SIM卡读卡器和天线。SIM电压为3V,MC37i通过AT命令可双向传输指令和数据,可选波特率为300b/s230kb/s 。它支持Text和PDU格式的SMS(Short Message Service,短消息),可通过AT命令或关断信号实现重启和故障恢复,在很多应用领域中都有着广泛的应用。GPRS模块通过串口使用AT指令与外界进行通讯,模块可以与电脑通过串口相连,也可以用单片机来进行控制。8.2 MC37i硬件设计:(1)MC37i电路设计方案MC37i模块有50个引脚,通过一个ZIF(Zero Insertion Force,零阻力插座)连接器引出。这40个引脚可以划分为5类,即电源、数据输入/输出、SIM卡、音频接口和控制。TC35i的第2125引脚是正电源输入脚通常推荐值4.2V,第2630引脚是电源地。10脚是启动脚IGT,系统加电后为使MC37i进入工作状态,必须给IGT加一个大于100ms的低脉冲,电平下降持续时间不可超过1ms。1219和3437为数据输入/输出,分别为DCD0、CTS1、CTS0、RTS1、RTS0、DTR0、RTS0、DSR0、RING0和TXD0、RXD0、TXD1、RXD1。MC37i模块的数据输入/输出接口是一个串行异步收发器。它有固定的参数:8位数据位和1位停止位,无校验位,波特率在300bps230kbps之间可选,默认57600,支持标准的AT命令集。其中34脚TXD0、35脚RXD0为TTL的串口通讯脚,可以方便和单片机进行通讯。设计电路图如下:图2-74 MC37i电路图(2)SIM卡电路设计方案MC37i使用外接式SIM卡,4550为SIM卡引脚,SIM卡上的CCRST、CCIO、CCCLK、CCVCC和CCGND通过SIM卡阅读器与MC37i的同名端直接相连,如下图:图2-85 SIM卡电路图9、LCD液晶显示器硬件设计方案为了更好的实现人机交互,使用户方便的对智能窗进行操作,并且保证操作简洁直观,成本低廉,本设计采用LCD液晶显示器实现所有的显示功能。该模块的主要功能是显示操作界面,对整个智能窗进行控制。显示实时的室内、室外的温度、湿度和窗户的开关状态,本模块结合按键模块还可以进行多项设置,通信用的手机号设置、密码设置、报警设置、控制窗户的开关。本设计中的LCD模块采用12864A-1汉字图形点阵液晶显示模块。该模块可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。主要技术参数和显示特性:u 显示内容:128列 64行u 显示角度:6:00钟直视u 显示颜色:黄绿u LCD类型:STNu 与MCU接口:8位或4位并行/3位串行u 配置LED背光u 电源:VDD 3.3V+5V(内置升压电路,无需负压);该模块与单片机芯片MCU接口简单,可以是8位或4位并行或者3位串行。该模块的程序编写也十分方便。本设计中为节约单片机GPIO端口,采用3位串行连接方式,LCD液晶显示模块的电路原理图如下:图2-96 LCD电路图10、键盘硬件设计方案本设计为满足多项设置、输入的需要,采用4*4矩阵键盘电路。除了满足必要的数字输入按键,还结合LCD显示器,根据不同的显示界面,有“设定”、“确定”、“退出”等按键。将4*4键盘通过10K的排阻之后,与单片机的GPIO接口相连。由单片机的GPIO接口进行键值读取。按键模块的电路原理图如下:图2-107 按键原理图11、电机硬件设计方案本设计选用的TG-300B型电动推杆来带动窗户的开闭。它采用永磁直流电机驱动,行程100mm,额定电压12V,内置限位开关,到大极限位置后自动停止;低噪音设计,噪音等级低于42dB,可以在室内使用。由于电动推杆的运动速度较慢,对控制的实时性要求不高,所以采用继电器控制它的正反转。换向电路的原理如下图:图2-118 电机模块电路图电机正转时Motor_ON闭合接入12V电压,Motor_ON另一端接Motor_A,Motor_A接Motor_C(即电机正极),Motor_D(电机负极)接GND;构成一条完整通路。电机反转时Motor_ON闭合接入12V电压,Motor_ON另一端接Motor_B,Motor_B接Motor_D(即电机负极),Motor_C(电机正极)接GND;构成一条完整通路。12、系统供电设计方案本设计采用12V、3A的电源适配器作为供电电源,进入系统后分为两路,一路直接给电动推杆供电,另一路为控制板供电。控制板上有三种电压需求,3.3V、5V和3.7V。其中3.3V电源主要为单片机和PL2303芯片供电,5V主要为液晶显示器、继电器供电,3.7V为MC37i供电。12.1 3.7V和5V供电方案本设计采用LM2576-adj给MC37i提供3.7V电压。LM2576系列的稳压器是单片集成电路,能够提供降压开关稳压器的各种功能,能驱动3A的负载,有优异的线性和负载调整能力,输入电压可至40V,高压型可至60V;而且具有TTL关断能力,可工作在低功耗待机模式。其中LM2576-adj是可调节输出电压的稳压芯片,其输出电压与反馈端配置的电阻比值相关,电路原理图如下:图2-129 12V-3.7V电压转换电路图本设计采用LM2576-5为控制板提供5V电压,电路原理图如下:图2-20 12V-5V电压转换电路图12.2 3.3V供电方案本设计采用SOT-223封装的AS1117-3.3为控制板提供3.3V电压。AS1117可提供最大800mA的输出电流,足够为单片机及其他外设提供电流,最小压差1.2V,保证了供电的稳定性,并具有良好的线性输出能力。设计电路原理图如下:图2-213 5V-3.3V电压转换电路图12.3 供电切换与保护设置(1)本设计在12V电压进入控制板处放置30V、3A的自恢复保险丝,防止内部短路时烧坏电路。图2-22 电源保护电路图(2)本设计设置了一个5V电源的供电切换开关,可以选择板内的5V电压由LM2576-5提供或者由USB电线提供。这样在不使用MC37i进行调试时可以减少接线(免去外接12V电源),同时在USB电缆和外部电源同时供电时不会造成冲突。下图中U-5V是LM2576-5的输出,P-5V是USB电缆提供的5V电压。图2-23 5V电源切换开关电路图(3)本设计在3.3V和3.7V电压进入电路之前均设置了开关,方便对硬件电路进行测试,同时可以起到一定保护作用。图2-24 3.3V、3.7V电源切换开关电路图三、软件设计方案1、整体软件流程本设计软件实现方案采取主函数循环扫描配合中断的形式。1.1主函数内的循环主函数内的循环执行短信处理和键盘信息处理的功能,当读短信息的标识在短信接收的中断处理函数中被置位后,主函数开始处理短消息命令;当按键标识在定时器的中断处理函数中被置位后,执行按键处理函数。1.2中断处理函数中断处理函数分为定时器中断和串口中断。定时器中断中进行按键扫描和红外报警的扫描,并检测室外的下雨情况。当红外报警标识被用户设置为1后,开始在中断里进行红外报警扫描。串口中断中主要进行与MC37i模块的通讯,接收用户发送来的消息并进行解析。2、温度数据融合方案2.1多个温度传感器信息的获取(1)18B20温度传感器的指令介绍DS18B20采用一线通信接口。因为一线通信接口,必须先完成ROM设定,否则记忆和控制功能将无法使用。一旦总线检测到从属器件的存在,它便可以发出器件ROM操作指令,所有ROM操作指令均为8位长度,主要提供以下功能命令:1)读ROM(指令码0X33H):当总线上只有一个节点(器件)时,读此节点的64位序列号。如果总线上存在多于一个的节点,则此指令不能使用。2)ROM匹配(指令码0X55H):此命令后跟64位的ROM序列号,总线上只有与此序列号相同的DS18B20才会做出反应;该指令用于选中某个DS18B20,然后对该DS18B20进行读写操作。3)搜索ROM(指令码0XF0H):用于确定接在总线上DS18B20的个数和识别所有的64位ROM序列号。当系统开始工作,总线主机可能不知道总线上的器件个数或者不知道其64位ROM序列号,搜索命令用于识别所有连接于总线上的64位ROM序列号。4)跳过ROM(指令码0XCCH):此指令只适合于总线上只有一个节点;该命令通过允许总线主机不提供64位ROM序列号而直接访问RAM,以节省操作时间。5)报警检查(指令码0XECH):此指令与搜索ROM指令基本相同,差别在于只有温度超过设定的上限或者下限值的DS18B20才会作出响应。只要DS18B20一上电,告警条件就保持在设置状态,直到另一次温度测量显示出非告警值,或者改变TH或TL的设置使得测量值再一次位于允许的范围之内。储存在EEPROM内的触发器用于告警。DS18B20共有六条RAM命令:1)温度转换(指令码0X44H):启动DS18B20进行温度转换,结果存入内部RAM。2)读暂存器(指令码0XBEH):读暂存器9个字节内容,此指令从RAM的第1个字节(字节0)开始读取,直到九个字节(字节8,CRC值)被读出为止。如果不需要读出所有字节的内容,那么主机可以在任何时候发出复位信号以中止读操作。3)写暂存器(指令码0X4EH):将上下限温度报警值和配置数据写入到RAM的2、3、4字节,此命令后跟需要些入到这三个字节的数据。4)复制暂存器(指令码0X48H):把暂存器的2、3、4字节复制到EEPROM中,用以掉电保存。5)重新调E2RAM(指令码0XB8H):把EEROM中的温度上下限及配置字节恢复到RAM的2、3、4字节,用以上电后恢复以前保存的报警值及配置字节。6)读电源供电方式(指令码0XB4H):启动DS18B20发送电源供电方式的信号给主CPU。对于在此命令送至DS18B20后所发出的第一次读出数据的时间片,器件都会给出其电源方式的信号。“0”表示寄生电源供电。“1”表示外部电源供电。()读取多个18B20温度传感器温度程序设计本设计中读取18B20的数据使用了读ROM、ROM匹配指令以及温度转换和读暂存器指令。前期测试阶段使用读ROM指令确定12个传感器的ROM值,并与传感器的安放位置一一对应。以下是测试18B20温度传感器ROM的程序流程图:图3-14 测试18B20温度传感器ROM流程图测试完所有器件的序列号之后,最终的应用版本中通过Match ROM指令得到每个器件采样的温度值。程序流程图如下:图3-2 18B20温度值读取流程图2.2分布图法简介本设计采用基于分布图法的温度传感器融合算法。温度测量模块18B20支持单总线挂接多个传感器,极大地提高了单片机管脚利用率,本设计中需要对室内外温度进行测量,考虑到环境温度较复杂,为了提高测量精度,采用多个传感器构建传感器网络,使用分布图法综合各个传感器的测量结果,以排除疏忽误差,提高测量结果。分布图法是一种新型的数据处理算法, 其算法如下:(1)首先对N 个测量结果从小到大进行排序,得到测量序列: 其中为下极限, 为上极限。(2)再定义中位值为: 上四分位数Fu为区间的中位数, 下四分位数Fu为区间的中位数。四份位离散度为(3)认定与中位数的距离大于的数据为离异数据,即无效数据的判断区间为式中的为常数,其大小取决于系统测量精度,通常取1、2等值。2.3分布图法在本设计中的应用在实际编程实现分布图法时, 由于该算法不需要复杂的数据结构, 同时还具有运算量小, 计算机编程容易等优点, 不仅可以用于校准测试数据的后期处理, 还可以将其应用于测量的实时数据处理和控制中。本设计中考虑到成本问题,在室内外分别采用6个温度传感器18B20进行温度测量,并将测得的数据进行处理,以下是温度采集和数据处理的流程图。为减少计算量,分布图法处理后直接将每组数据取平均值,分别得到最终的室内外温度。图3-3 温度采集、处理流程图3、自动调节窗户角度设计方案本设计中加入了根据室内外温湿度自动调节窗户开度的功能,以达到为用户提供舒适环境的目的。首先由用户设定一定的温湿度阈值,当室内温湿度偏离设定值一定范围时,根据室内外温湿度自动调节窗户开度,通过通风来改变室内环境。具体算法如下:首先利用以下条件求出Angle_1,Angle_21、 室内温度理想温度室外温度 Angle_1=(室内温度-室外温度)*权重12、 室内温度室外温度 理想温度 Angle_1=100%3、 理想温度室内温度室外温度 Angle_1=04、 室外温度理想温度室内温度 Angle_1=(室外温度-室内温度)*权重15、 室外温度室内温度理想温度 Angle_1=06、 理想温度室外温度室内温度 Angle_1=100%7、 室内湿度理想湿度室外湿度 Angle_2=(室内湿度-室外湿度)*权重28、 室内湿度室外湿度 理想湿度 Angle_2=100%9、 理想湿度室内湿度室外湿度 Angle_2=010、 室外湿度理想湿度室内湿度 Angle_2=(室外湿度-室内湿度)*权重211、 室外湿度室内湿度理想湿度 Angle_2=012、 理想湿度室外湿度室内湿度 Angle_2=100%最终确定的角度大小Angle=(Angle_1+ Angle_2)/2;若Angle0,则Angle=0;然后驱动电机调节窗户角度即可。4、通讯模块底层软件设计4.1MC37i模块的启动。(1)MC37i的启动方式共有四种:n 硬件上通过IGT(点火脚)启动:启动普通模式n 软件上通过AT+CFUN指令来重启:启动普通模式和报警模式n 硬件上通过VCHARGE脚启动:启动充电模式n 通过RTC中断从电源关闭模式中唤醒:启动报警模式(2)我们采用第一种启动方式。使用IGT脚来启动MC37i需要在BATT+达到3.3V后将IGT(点火脚)接地至少100ms。这可以使用一个OC门(open drain/collector)来完成以避免电流灌入此引脚。因此,本设计中将单片机与IGT连接的引脚PB1管脚设置为开漏输出模式,即输出低电平时管脚接地,拉低IGT引脚;输出高电平时管脚处于悬空,电压被IGT拉高,防止损坏单片机。CTS高电平说明模块已经准备作为主机接收数据了。另外如果设置了波特率修正(AT+IPR!=0),模块将会发送”SYSSTART”(主动提供结果码)以提示主机程序:可以发送AT指令到模块了。在主动提供结果码输出之前为了改变SIM卡将会花费2秒钟,尤其是SIM脚请求在SIM卡上被失能。请注意,如果自动波特率(AT+IPR=0)使能,将不会有“SYSSTART”(主动提供结果码)被发送。以下是MC37i通过IGT方式启动时的时序图。其中Reset是当模块处理器上电后内部的一个置高的信号。图3-4 MC37i启动时序图4.2 MC37i指令简介启动后,为实现通信功能,通过单片机串口与MC37i连接,并用AT指令与MC37i模块通信。AT指令可以小写也可以大写,但在每次结束一条AT指令都需要以结束。每发一条AT指令,正常情况下都会以一条反馈语句结束,格式为“”。本设计中通信模块软件设计中用到的指令如下:查看当前设备波特率:AT+IPR?修改当前设备波特率:AT+IPR=(固定修改为9600)保存当前修改参数: AT&W查看当前设备接收信号:AT+CSQ 回车拨号命令 ATD 拨打电话号码挂机命令 ATH 挂机发送短消息测试:AT+CMGF=1 回车AT+CMGS=(手机号码) 回车输入内容 快捷键“CTRL Z”发送查看短信中心:AT+CSCA? 回车修改短信中心:AT+CSCA=(短信中心号码) 回车显示手机卡是否安装正常(显示手机 SIM 卡号):AT+CCID新消息提示 :AT+CNMI 选择当有新的短消息来时系统提示方式读短消息: AT+CMGR 读取短消息列短消息 :AT+CMGL 将存储的短消息列表发送短消息: AT+CMGS 发送短消息写短消息: AT+CMGW 写短消息并保存在存储器中从内存中发短消息 :AT+CMSS 发送在存储器中保存的短消息设置 TEXT 参数 :AT+CSMP 设置在TEXT 模式下条件参数删除短消息 :AT+CMGD 删除保存的短消息4.3通信模块初始化设计:MC37i每次上电启动都会发出“SYSSTART”字符串,本设计以此作为该通信模块启动的标志,当检测到该字符串,才继续进行其他指令。初始化过程如下: 发送ATE0r指令,让系统不再把指令回显,方便单片机检测;等到系统反馈“OK”结束。 发送AT+CMGF=1r指令,将短消息设置为文本模式,方便读取;等到系统反馈“OK”结束。 发送AT+CNMI=1,1,0,0,1r指令,设置短消息提醒;等到系统反馈“OK”结束4.4接收短消息设计:当MC37i接收到短信息时,会通过串口向单片机直接反馈一条格式为“”的消息,xx表示收到的短信息存储在sim卡中的位置。此时,我们就可以通过读短消息指令读取该信息。在串口中断中设置一个标志,当收到字符串时,说明已经接收到短消息,并提供短消息存储地址,读取该地址,然后用AT+CMGR=xxr指令读取xx位置的短消息内容。4.5发送短消息设计:(1) 发送AT+CMGF=1r指令,将短消息设置为文本模式,方便读取;等到系统反馈“OK”结束。(2)发送AT+CSCS=GSMr指令,进行短消息测试,等到系统反馈“OK”结束。(3)发送AT+CMGSr指令,设置接收短消息号码,等到系统反馈“”后,在要发送的字符串结尾加上0x1A字符后经串口发送到系统,等到系统反馈“+CMGS:70 OK”,说明短消息已发送成功,发送短消息结束。5、通讯模块人机交互指令设计本设计为方便用户使用,设计了一套用户手机指令,用户可以通过手机短信发送规定的指令实现对智能窗的控制、系统信息的获取和设置。指令集均已smart window的英文首字母SW开头,不同的后缀代表不同功能。以下是指令列表和描述:指令名称功能描述SW+HOST=?(或XXX)?表示查询用户手机号,系统会返回当前用户手机号列表;XXX表示将当前用户更换为手机号为XXX的用户。SW+ANGLE=X调整智能窗的开度为X,X需为整数。0表示全关,90表示全开。SW+ALARM=?(或YES或NO)红外报警开关,YSE表示打开;NO表示关闭;?表示查询当前报警状态,系统会返回YES或NO作为回应。SW+AUTO=?(或YES或NO)自动调节开关,YSE表示打开;NO表示关闭;?表示查询当前状态,系统会返回YES或NO作为回应。SW+TH=?查询当前环境,即室内外温湿度情况,系统会返回结果如下:I,25,25%,O,30,30%此例表示室内温度25度,湿度25%;室外温度30度,湿度30%。6、系统输入的软件设计方案本项目中4*4键盘在软件中采用动态扫描的方式进行键值的读取。动态扫描的原理如下:把键盘的行和列分别接在03口和47口,先置03口为带数据缓存器的高电平输出,置47口为输入端口,此时若有按键按下,就会得到47的一个值,把此值保存下来,再置47口为带数据反相器的高电平输出,置03口为输入端口。再次扫描得到键值,把这两个值组合就可得知是哪个键按下,再通过查表得键值。进而通过相应的程序段实现程序的调用,实现不同的功能。程序流程图如图3-5所示:图3-5 按键扫描流程图7、LCD显示界面设计方案作为整个系统中主要的人机交互部分之一,该部分软件设计过程中主要为实现显示、设置界面。该系统启动后,首先在液晶屏上显示欢迎界面,接着显示实时的室内、室外的温度、湿度,用户可以根据自己的喜好或者温湿度数据选择界面中的开、关窗户按键,进行开关窗户操作。此部分不需要输入密码就可以操作,保证用户操作简单。该部分的软件框图如图3-6所示。同时,为了保证用户的个人操作权利,还可以选择界面中的设置按键,不过要想设置,首先要输入密码,只有密码正确才能进行下面的操作,即没有密码的用户只有部分的操作权限。当输入正确的密码后,就进入设置界面,该界面主要包括修改密码、修改手机号、报警设置,再根据不同的按键选择不同的功能,进而继续操作。该部分的软件框图如图3-7所示。图3-6 显示主界面框图图3-7 设置界面框图四、系统测试方案1、角度标定测试为了实现窗户角度的精确测量和控制,需对窗户开度最大和最小时的角度进行标定,因为窗户的最大开度不是90度。首先当窗户完全关闭时,记录单片机AD采样值Value1,以此作为0度角对应的采样值;当窗户完全打开时(窗户的最大开度收电动推杆的行程约束),首先用量角器测得窗户角度X,然后记录单片机AD采样值Value2, 以此作为X度角对应的采样值。图4-1 电位器电路图由电位器的电路图可知:由上式计算得到0度和最大开度X时的电阻值和。然后可由以下公式计算任意角度对应的采样值:经过多次测量去均值,得到实际测试结果为:角度AD测得的电压值02.4080(最大值)1.86代入数据,最终得到电压和角度的转换公式为:voltage = (90-angle)*0.15+12.6)/(90-angle)*0.15+22.4)*3.32、角度控制精度测试角度控制的程序流程图如下:图4-2 角度控制流程图输入目标角度,调用角度控制函数,分别测试30,60,70度时角度控制精度。结果如下:目标角度实测值平均值误差303446058270733由表格可知,控制误差在设计目标之内。3、多个温度传感器融合算法测试为了验证传感器融合中使用的分布图法的有效性,即是否能够剔除无效的数据我们进行了如下测试:(1)将室内6个传感器的任意一个放到室外阳光直射条件下,即模拟疏忽误差的情况。获得一组6个传感器的数据如下:传感器1传感器2传感器3传感器4传感器5传感器6融合值40.426125.827.025.326.526125.440.525.827.025.326.526.025.426225.827.025.343.525.9由上述测量机融合数据可得,对于一个传感器有疏忽误差的情况,本设计中采用的融合算法能够有效的克服。参考文献:1喻金钱,喻斌.STM32系列ARM Cortex-M3内核微控制器开发与应用M2夏卓君.分布图法在疏忽误差处理中的应用J.实用测试技术,2002,22项新建.基于多传感器数据融合的粮食仓库温度监测系统J.仪器仪表学报,2003,24(5)4张辉宜,沈晖,陶永.嵌入式数据融合系统的设计与实现J.计算机工程与应用,2011,47(2)附录1:核心程序int main(void) u8 i=0,j=0; /*变量定义*/int open_angle=0;char message200=0;char host_num_flag=0; /* 配置系统时钟为 72M */ SystemInit();IR_Init();/*红外初始化*/ Motor_Init();/* 电机初始化*/ /* USART1 config 115200 8-N-1 */USART1_Config();/* 配置SysTick 为10us中断一次 */* LCD 端口初始化 */init_lcd();DS18B20_Init();DHT11_Init();/* 外接4*4按键初始化 */KeyInit(); USART1_Config();USART3_Config();Usart1SendStr(Hello!n);mc37i_init();/* TIM2 定时配置 */TIM2_NVIC_Configuration(); TIM2_Configuration();/* TIM2 开始计时 */START_TIME; while (1)/主循环 /*温湿度显示-主界面*/if(temp_refresh_flag=1)/定时一分钟刷新 DHT11_get_data(&H1,&H2); temp_fusion(&T1,&T2); temp_refresh_flag=0;/*短消息处理*/ if(massage_coming=1) /读短消息 mc37i_read_message(message,&host_num_flag);massage_coming=0;if(host_num_flag=1) if(message0=S&message1=W&message3=H&message4=O&message5=S&message6=T)/SW+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论