多功能智能窗设计报告.doc
《多功能智能窗设计报告.doc》由会员分享,可在线阅读,更多相关《多功能智能窗设计报告.doc(44页珍藏版)》请在冰点文库上搜索。
2012AMD杯(青岛)大学生电子设计竞赛复赛设计报告
参赛队号:
2012030
项目中文名称:
多功能智能窗
项目英文名称:
SmartWindow
学校:
中国海洋大学
院系:
工程学院自动化及测控系
指导老师:
黎明
参赛队员:
李明扬、樊铭远、刘赛、黄嘉俊
目录
摘要 2
Abstract 2
一、系统功能分析 2
二、硬件设计方案 2
1、控制器设计方案 2
2、程序下载与串口通讯电路设计方案 2
3、温度传感器电路设计方案 2
4、湿度传感器电路设计方案 2
5、红外报警传感器设计方案 2
6、角度测量电路设计方案 2
7、雨滴模块设计方案 2
8、GPRS通信模块设计方案 2
9、LCD液晶显示器硬件设计方案 2
10、键盘硬件设计方案 2
11、电机硬件设计方案 2
12、系统供电设计方案 2
三、软件设计方案 2
1、整体软件流程 2
2、温度数据融合方案 2
3、自动调节窗户角度设计方案 2
4、通讯模块底层软件设计 2
5、通讯模块人机交互指令设计 2
6、系统输入的软件设计方案 2
7、LCD显示界面设计方案 2
四、系统测试方案 2
1、角度标定测试 2
2、角度控制精度测试 2
3、多个温度传感器融合算法测试 2
参考文献:
2
附录1:
核心程序 2
附录2:
程序清单 2
附录3:
设计原理图与PCB 2
摘要
本项目给出了以STM32单片机为控制器的多功能智能窗实现方案。
本系统以STM32单片机为控制器,实现智能窗根据环境自动开闭、手机远程遥控开闭、防盗报警功能。
智能窗的开闭由电机带动,关闭后有自锁功能;通过手机与系统的GSM模块通信,可实现对智能窗的远程控制;实时监测室内外的温湿度,通过信息融合算法实现窗户开度的自动控制;窗户上的主动红外报警器检测到入侵信号后会拉响警铃,并向用户发送报警短信。
关键词:
智能窗 信息融合 远程通讯
Abstract
Thisprojectgivesapracticalschemeofasmartwindowwhichiscontrolledbyaembeddedcontroller,STM32.Thefunctionofthissystemcontainstheautocontroloftheangleofthewindowintermsoftheenvironment,theremotecontrolofthewindowbymobilephone,andburglaralarm.Theangleofthewindowiscontrolledbyamotor,andthewindowcanbelockedautomaticwhenitclosed;theremotecontrolisrealizedbythecommunicationoftheuserandtheGSMmoduleofthesystem;thetemperatureandhumiditysensorscangetreal-timedatathenthesystemcangetaappropriateanglebyinformationfusion;theinfraredalarmcandetecttheinvaderandthebeeperwillringatthesametime,inthesametime,theuserwillreceivethealarmmessagesendfromthesystem.
Keywords:
SmartWindow DataFusion RemoteCommunication
一、系统功能分析
本系统的目标是设计一款多功能智能窗,应用于未来的智能家居。
主要功能如下:
1、多传感器测量:
利用多组温湿度传感器,将各传感器的测量结果进行融合,能够给出较准确的温湿度信息;实时监控室内外温度,并反馈给用户;配置雨滴检测模块,能够监测室外下雨情况,并及时提醒用户。
2、智能运动控制:
使用直流电机驱动的电动推杆实现智能窗的开闭,并设置自动调节功能,当内外温湿度变化时自动调节窗户的开度。
3、人机交互功能:
配置了LCD显示器和4*4键盘,能够实时显示室内外温湿度信息,可用键盘对各功能进行设置,并修改开机密码、手机号等用户信息;并可用GPRS模块与用户进行远程通讯完成上述功能。
4、远程通讯功能:
配置了GPRS模块与用户通讯,使用户可以用手机命令的形式控制智能窗任意角度的开闭;并可对系统功能和用户信息进行设置。
5、防盗报警功能:
配置对射式红外传感器作为防盗报警器,在报警开启情况下,检测到外界入侵会及时发送短信提醒用户。
6、数据存储功能:
使用MCU内置的FLASH,实现用户数据和系统配置信息的在线更新和掉电存储,防止用户信息丢失。
二、硬件设计方案
硬件整体框图:
图2-1硬件整体框图
1、控制器设计方案
1.1控制器简介
本设计的控制器采用STM32单片机系列的单片机STM32F103RBT6。
以下是它的部分特性:
(1)采用ARMCortex-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=X
BOOT0=0
从用户闪存启动,这是正常的工作模式
BOOT1=0
BOOT0=1
从系统存储器启动,这种模式启动的程序功能由厂家设置。
BOOT1=1
BOOT0=1
从内置SRAM启动,这种模式可以用于调试。
本设计为了可以采用JTAG和ISP两种方式下载程序,在BOOT0处设置了一个选择开关,进行ISP下载时要将BOOT0管脚拉高,下载完后再拉低即可正常运行。
图2-4芯片启动方式电路图
2、程序下载与串口通讯电路设计方案
本设计采用可以采用两种方式进行程序下载:
ISP方式和JTAG方式。
2.1ISP下载与串口通讯电路设计
本设计采用Prolific公司生产的PL2303芯片进行USB和串口信号的转换,它具有高度集成的特点,提供了一个在USB接口跟RS232串口之间通信的的解决方案。
在使用时,作为RS232/USB双向转换器,一方面从RS232外设中接收数据并将其转换为USB数据格式传发送给外设;另一方面从主机接收USB数据并将其转换为RS232信息流送回主机。
开发者无需考虑固件设计,因而对嵌入式设计者是透明的,便于实现了单片机串口和计算机USB口的通讯和ISP下载。
以下是PL2303外围电路设计:
为了防止系统在使用外部电源供电时内部5V电压与USB接口的5V电压输入冲突,在USB电压输入端接500mA保险丝,并串接肖特基二极管1N5819,起到保护作用。
图2-5PL2303外围电路图
2.2JTAG下载电路设计
本设计使用20针的JTAG接口作为与外界的连接端口。
JTAG拥有一个双向串行端口,可以通过JTAG将需要运行或者调试的程序下载到单片机的FLASH内,控制STM32F103的运行,读取片内寄存器值,以及刷新存储器的内容,方便了程序的编写和维护。
标准JTAG接口是4线;TD0、TD1、TMS和TCLK,分别为数据输出、数据输入、模式选择和时钟。
电路中在JTAG的电压输入端串接肖特基二极管1N5819,在电路板采用JTAG供电时达到保护电路的目的。
图2-6JTAG下载电路图
3、温度传感器电路设计方案
本设计采用DS18B20作为温度传感器。
DS18B20温度传感器是一线式数字温度传感器,温度测量范围是-55℃~+125℃,测温分辨率可达0.0625℃,精度较高;电源供电范围为3V~5.5V。
18B20的最大特点是支持单总线挂接多个传感器,极大地节约了硬件电路,便于多传感器网络的搭建。
因为每个18B20有唯一的系列号,写在传感器的ROM内,可以通过读取ROM命令和搜索ROM命令识别总线上的器件,分别读取他们的信息。
以下是18B20的电路接口图,在电源与地直接连入0.1uF电容起滤波作用。
图2-7DS18B20电路图
4、湿度传感器电路设计方案
本设计中湿度传感器选择了DHT11。
DHT11温湿度传感器是一款湿温度一体化的数字传感器,其湿度测量范围:
20-90%RH,湿度分辨率:
1%RH,精度较高,能较精确的测量室内的湿度。
同时HDT11硬件设计简单,只需单片机的一个端口就可读取其数据,非常方便。
以下是DHT11的硬件电路图:
图2-8DHT11原理图
5、红外报警传感器设计方案
红外报警电路采用对射式红外线检测装置,通过检测红外线是否被遮挡判断是否有异常。
红外发射头选用OSE-1L7,其外形和发光二极管LED相似,发射波长940纳米左右的红外线,管压降约1.4V,工作电流一般小于20mA,控制方便。
红外线接收管采用IRM8601S,它是一个一体式红外线接收传感器,接收头内部集成自动增益控制电路、带通滤波电路、解码电路及输出驱动电路。
它共有三个管脚,电源、地和信号输出,其中心接收频率为38KHz,当接收到38KHz的红外光信号时,会输出一个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.1MC37i功能简介
本设计采用GPRS模块MC37i进行短信收发。
MC37i模块是一款支持中文短信息的工业级的新版GPRS模块,工作在GSM900/1800Hmz双频段,电源范围为直流3.3~4.8V,休眠状态电流消耗为3.5mA,空闲状态为25mA,发射状态为300mA(平均),峰值为2.5A;可传输语音和数据信号,通过接口连接器和天线连接器分别连接SIM卡读卡器和天线。
SIM电压为3V,MC37i通过AT命令可双向传输指令和数据,可选波特率为300b/s~230kb/s。
它支持Text和PDU格式的SMS(ShortMessageService,短消息),可通过AT命令或关断信号实现重启和故障恢复,在很多应用领域中都有着广泛的应用。
GPRS模块通过串口使用AT指令与外界进行通讯,模块可以与电脑通过串口相连,也可以用单片机来进行控制。
8.2MC37i硬件设计:
(1)MC37i电路设计方案
MC37i模块有50个引脚,通过一个ZIF(ZeroInsertionForce,零阻力插座)连接器引出。
这40个引脚可以划分为5类,即电源、数据输入/输出、SIM卡、音频接口和控制。
TC35i的第21~25引脚是正电源输入脚通常推荐值4.2V,第26~30引脚是电源地。
10脚是启动脚IGT,系统加电后为使MC37i进入工作状态,必须给IGT加一个大于100ms的低脉冲,电平下降持续时间不可超过1ms。
12~19和34~37为数据输入/输出,分别为DCD0、CTS1、CTS0、RTS1、RTS0、DTR0、RTS0、DSR0、RING0和TXD0、RXD0、TXD1、RXD1。
MC37i模块的数据输入/输出接口是一个串行异步收发器。
它有固定的参数:
8位数据位和1位停止位,无校验位,波特率在300bps~230kbps之间可选,默认57600,支持标准的AT命令集。
其中34脚TXD0、35脚RXD0为TTL的串口通讯脚,可以方便和单片机进行通讯。
设计电路图如下:
图2-74MC37i电路图
(2)SIM卡电路设计方案
MC37i使用外接式SIM卡,45~50为SIM卡引脚,SIM卡上的CCRST、CCIO、CCCLK、CCVCC和CCGND通过SIM卡阅读器与MC37i的同名端直接相连,如下图:
图2-85SIM卡电路图
9、LCD液晶显示器硬件设计方案
为了更好的实现人机交互,使用户方便的对智能窗进行操作,并且保证操作简洁直观,成本低廉,本设计采用LCD液晶显示器实现所有的显示功能。
该模块的主要功能是显示操作界面,对整个智能窗进行控制。
显示实时的室内、室外的温度、湿度和窗户的开关状态,本模块结合按键模块还可以进行多项设置,通信用的手机号设置、密码设置、报警设置、控制窗户的开关。
本设计中的LCD模块采用12864A-1汉字图形点阵液晶显示模块。
该模块可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。
主要技术参数和显示特性:
u显示内容:
128列×64行
u显示角度:
6:
00钟直视
u显示颜色:
黄绿
uLCD类型:
STN
u与MCU接口:
8位或4位并行/3位串行
u配置LED背光
u电源:
VDD3.3V~+5V(内置升压电路,无需负压);
该模块与单片机芯片MCU接口简单,可以是8位或4位并行或者3位串行。
该模块的程序编写也十分方便。
本设计中为节约单片机GPIO端口,采用3位串行连接方式,LCD液晶显示模块的电路原理图如下:
图2-96LCD电路图
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.13.7V和5V供电方案
本设计采用LM2576-adj给MC37i提供3.7V电压。
LM2576系列的稳压器是单片集成电路,能够提供降压开关稳压器的各种功能,能驱动3A的负载,有优异的线性和负载调整能力,输入电压可至40V,高压型可至60V;而且具有TTL关断能力,可工作在低功耗待机模式。
其中LM2576-adj是可调节输出电压的稳压芯片,其输出电压与反馈端配置的电阻比值相关,电路原理图如下:
图2-12912V-3.7V电压转换电路图
本设计采用LM2576-5为控制板提供5V电压,电路原理图如下:
图2-2012V-5V电压转换电路图
12.23.3V供电方案
本设计采用SOT-223封装的AS1117-3.3为控制板提供3.3V电压。
AS1117可提供最大800mA的输出电流,足够为单片机及其他外设提供电流,最小压差1.2V,保证了供电的稳定性,并具有良好的线性输出能力。
设计电路原理图如下:
图2-2135V-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-235V电源切换开关电路图
(3)本设计在3.3V和3.7V电压进入电路之前均设置了开关,方便对硬件电路进行测试,同时可以起到一定保护作用。
图2-243.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)复