版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的火灾监测系统的硬件和软件设计的案例目录TOC\o"1-3"\h\u1457基于单片机的火灾监测系统的硬件和软件设计的案例 149331硬件设计 2198071.1系统总体方案 2194531.2系统总体设计 223191.3各个模块设计 3102471.2.1主控芯片模块 314771.2.2测温湿度模块 4176691.2.3感测火焰模块 893531.2.4屏幕显示模块 10312711.2.5短信通信模块 11309751.2.6蜂鸣报警模块 13104431.4本章小结 15210192软件设计 16130522.1开发环境简介 1694942.2总体程序设计 17202262.3各子程序设计 18218272.2.1测温湿度子程序 18267232.2.2感测火焰子程序 20265022.2.3屏幕显示子程序 215212.2.4短信通信子程序 22262232.2.5蜂鸣报警子程序 231硬件设计1.1系统总体方案系统总体框图如图1.1所示。外外界环境测温湿度模块感测火焰模块STM32主控芯片显示模块蜂鸣模块短信模块图1.1系统总体框图当给整个系统供电之后,由温湿度传感器和火焰传感器自动采集环境中的温湿度和火焰信号,采样间隔为1秒1次,经采样后把数据送给主控芯片STM32的储存器之中,再由STM32发送给显示屏幕,并进行火情判断,当有火时,蜂鸣器响的同时SIM800A自动发出火警短信给指定用户,当无火时,蜂鸣器和SIM800A保持等待工作状态。1.2系统总体设计系统总体电路如图1.2所示。其中,STM32是本系统的核心电路,由STM32连接起整个模块的引脚,其中,DHT11温湿度传感器的1,3号引脚接电源和地,2号引脚连接至STM32的34号引脚。火焰传感器的1,3号引脚接电源和地,2号引脚接STM32的35号引脚。OLED显示电路的1,2号引脚接电源和地,3,4号引脚接STM32的37和39号引脚。SIM800A的3,4号引脚接地和电源,1,2号引脚接STM32的13和14号引脚。蜂鸣器接STM32的38号引脚。图1.2系统总体电路1.3各个模块设计1.2.1主控芯片模块STM32单片机是一款32位的微控制器。STM32单片机内拥有定时器,ADC转换,SPI外围总线,IIC通信总线,USB插口,UART接口通信等丰富的外围设备功能。STM32具有强大的性能,第一,因为STM32的时钟是72MHZ,所以其运行速度至少是80C51系列的6倍,且其设备更加成熟,抗干扰能力更强,更能适应环境,所以运行速度一流。第二,它的工作温度范围在-40℃到85℃之间,可以满足室内环境监测的范围,所以选择它做室内监测预警性能合适。第三,它具有低功耗的特点,使得其在各种外设全部处于工作状态时,也只消耗36mA的电流,在其待机等待的工作状态中,消耗电流量可以下降至2uA,所以续航能力优异。其中,STM32的实物模块如图1.3所示。图1.3STM32实物模块STM32F103一共有48个引脚,其引脚图如图1.4所示。其中,在本设计模拟仿真电路图中,STM32的41,43,45号引脚全部接地,42,44,46号引脚全部接电源VCC。PA一共有13个通用接口,PB一共有16个通用接口。图1.4STM32引脚1.2.2测温湿度模块DHT11实物如图1.5所示。DHT11是一款自动校准数字信号输出的温湿度传感器,它的测温范围是0~+50℃,测湿范围是5~95%RH,测温精度为±2℃,测湿精度为±5%RH,温度分辨率为0.1℃,湿度分辨率为1%RH,供电电压为2.3~5.5VDC。图1.5DHT11实物功能介绍:DHT11温湿度数字传感器是一款已经经过校准的数字信号输出综合传感器。它内部自带的采集技术是以数字量的方式来采集,更加高效,方便送入计算机内去处理,并且还加入了降噪算法,使其具有良好的抗环境干扰的能力,以保障产品在恶劣条件下仍然具备可靠性和稳定性。此仪器内含电阻式感湿元件和负温度系数(NegativeTemperatureCoefficient,NTC)温度测量元件,同时与8bit单片机相连。所以,此温湿度传感器具备品质优良、自动处理数据、响应速度快、抗干扰能力强等优势。每款DHT11传感器在发行之前,都会先在一个湿度校验室中,进行数千次的精度测验,以获得高质量的性能。所有的校准系数用代码的形式放入单次可编程(OneTimeProgrammable,OTP)存储器中,在运行程序的时候,软件会一方面监测信号是否传输正确,另一方面也会自动调用内部的函数,来计算修正所采集数据的误差。这种一边监测一边计算的方式,也帮助了单线串口的通信,因为串口通信的电路设计比并口通信要简单,所以也使得电路设计简单,系统各模块集成变得相对容易快捷,成本较低。它体积小,能耗低,使它成为工厂应用中,尤其是在恶劣环境下的最佳选择。最后,该传感器只有4个引脚,使用和连接都比较简单和方便,容易学习和调试[4]。工作原理:DHT11采集数据采用的是1条总线的形式,串口全双工的通信采集方式。其中,它每次一共采集5个字节的数据,并采用高位先出的规则。其中,前两字节代表湿度的整数和小数,后两字节代表温度的整数和小数,最后一个字节充当校验和,监测双向传输数据是否正确。DHT11的数据读取如图1.6所示。图1.6DHT11数据读取湿度=byte4+byte3=45.0(%RH)温度=byte2+byte1=28.0(℃)检查数据=byte4+byte3+byte2+byte1=73(湿度+温度)并且,在写代码时,需要掌握的时序规则是:DHT11一次传输过程中,最大通信时间为3ms,且主机的连续取样间隔要大于100ms。DHT11单总线定义如表1.1所示[5]。表1.1DHT11单总线定义表名称单总线格式定义起始信号微处理器把数据总线(SDA)拉低一段时间至少18ms(最大不得超过30ms),通知传感器准备数据。响应信号传感器把数据总线(SDA)拉低83us以响应主机的起始信号。数据格式收到主机起始信号后,传感器一次性从数据总线(SDA)串出40位数据,高位先出湿度湿度高位为湿度整数部分数据,湿度低位为湿度小数部分数据温度温度高位为温度整数部分数据,温度地位为温度小数部分数据,且温度低位Bit8为1则表示负温度,否则为正温度DHT11的通信过程如图1.7所示。图1.7DHT11的通信过程数据0信号如图1.8(a)所示;数据1信号如图1.8(b)所示。图1.8(a)数据‘0’信号图1.8(b)数据‘1’信号传输格式如图1.9所示。图1.9传输格式发送流程是先高电平保持,待主机至少拉低总线18ms后,表明主机准备开始呼叫DHT11,保证DHT11可以检测到开始信号。待主机发送开始信号结束,再拉高20-40us后,从机开始接收,读取DHT11的响应信号,DHT11拉低总线80us,表明正在接收,过后再拉高80us表明结束接收,之后开始传送数据。总线高电平DHT11表明不在工作,低电平DHT11表明正在工作。DHT11模块引脚如表1.2所示。表1.2DHT11 模块引脚引脚号引脚名称类型引脚说明1VCC电源正电源3-5V2DOUT数据输出数据输入/输出3NC空脚扩展未用4GND电源接地硬件电路:DHT11硬件电路如图1.10所示。图1.10DHT11硬件电路模块优势:相比于DS180B20只能测量温度的功能,DHT11不但可以测量温度,还可以测量湿度,而且抗干扰能力更强,所以DTH11具有更大的优势。1.2.3感测火焰模块功能介绍:火焰传感器又称红外接收二极管。它用于各种火焰,火源的检测。火焰传感器的实物如图1.11所示。本款火焰传感器是一款远红外火焰传感器,它的探测范围是波长在760nm~1100nm的光源,把火焰的亮度转化为高低变化的电平,其中高电平表示没有检测到火源,低电平表示检测到火源,有效工作距离在1cm到80cm之间。图1.11火焰传感器实物工作原理:运用它对火焰所产生的红外线非常敏感,所以运用这一特点,当火焰亮度增加时,发出的红外线就越多,火焰传感器引脚之间的阻抗就越小,说明检测到的火焰越大;当火焰亮度降低时,发出的红外线就越少,火焰传感器引脚之间的阻抗增大,说明检测到的火焰越小[6]。硬件电路:火焰传感器的电路如图1.12所示。图1.12火焰传感器的电路模块优势:可探测火焰或者波长在760nm~1100nm范围的光源,测试火焰距离应该设为5cm,当火焰越大,测试距离就应该越远,以免退化传感器。检测角度在55度上下,检测范围是1cm—80cm。检测火焰的灵敏度可上下调动(通过螺丝刀在蓝色电位器处控制)。用电压比较器LM393来过滤输出,获得的信号纯粹,信号的波形易于观察,不混叠,同时具有放大功能,可以带给仪器更好的驱动能力。工作电压:2.3V-5V,用普通电源供电即可。输出形式:转化为数字量输出(0和1),代表有火和没火的状态。LM393电压比较器,拥有高增益,宽频带的特点,可以让它更容易地产生出所需要的振荡波形。使用提示:该传感器对火焰最敏感,同时也对普通光线反应,光谱波长如上描述,一般用于火焰警告等用途。该传感器的输出接口可以直接连接微控制器IO口,方便和单片机组合成为系统。该传感器可以在-20到78℃下运行,具有良好的稳定性。1.2.4屏幕显示模块0.96英寸OLED屏幕如图1.13所示。图1.130.96英寸OLED屏幕功能介绍:有机发光显示器(OrganicLightEmittingDisplay,OLED),OLED被冠名为第三代显示技术。OLED不仅质量轻厚度薄、耗能更少、更明亮、尤其可以展现纯黑色,同时还可以弯曲,就像今天的曲面屏电视和手机一样,更加具有观赏美感。在目前,国际各大厂商竞相加大对OLED屏幕的研发资金人才投入,使得OLED技术在当今的电视、电脑(显示屏)、手机、平板电脑等领域的应用不断普及广泛[7]。工作原理:OLED显示的原理与液晶显示器(LiquidCrystalDisplay,LCD)有本质上的不同。具体来说,OLED是由电场进行驱动,有机半导体材料和发光材料因为过载流子的注入和复合碰撞,从而实现发光。从原理上描述,就是通过氧化铟锡(IndiumTinOxide,ITO)透明导电玻璃的电极作为阳极,金属电极作为阴极,以电力给予驱动,把电子从阴极运输到电子的传输层,把空穴从阳极注入到空穴的传输层,然后将两者分别迁移到聚合的发光层,二者相遇后,将产生激子,这会让发光分子材料被激发,经过光线辐射后,就能够产生光源,实现发光的效果。所以,简单来讲,一块OLED屏幕就是由数百万个微小的“灯泡”所组成的一种更加明亮,色域更加丰富的显示器。硬件电路:0.96寸OLED电路如图1.14所示。图1.140.96寸OLED电路模块优势:与传统的LCD技术相比,OLED显示技术具有较大的优势。第一,从屏幕厚度和总体质量上来看,OLED屏幕的厚度可以控制在1mm,而LCD屏幕厚度大多在3mm,所以在相同尺寸下,OLED屏幕重量更加轻,能够有效提高使用体验,降低运输成本。第二,从使用寿命,视角广度来看,OLED屏幕的液态结构,保证了屏幕的抗老化和宽阔的广视角,这是LCD屏幕所不具备的。第三,从画面质量和反应速度来看,OLED可以在非常大的范围内观看同一块屏幕而不失真。而响应的速度却是LCD屏幕的一千倍,具有更好的时效性。第四,从环保节能和恶劣环境下的运行优势来看,OLED屏幕可以耐低温,能够在-40℃的环境下,正常显示内容,能源使用率更高、亮度更高、生态环保、节约能源,可制成曲面屏,从而带给人们更好的视觉冲击感[8]。1.2.5短信通信模块功能介绍:SIM800A是一款双频的全球移动通信系统(GlobalSystemforMobileCommunications,GSM)或通用无线分组业务(GeneralPacketRadioService,GPRS)模块,为表面安装技术(SurfaceMountingTechnology,SMT)封装。该模块运行功能稳定,小外形,高性价,可以让用户进行扩展和组合。SIM800A工作频率在GSM下是900MHz,而在GPRS下是1800MHz,能够实现低功耗状态下的语音、短信(ShortMessagingService,SMS)和数据的传输。同时,该模块因为自身特点,尤其适用于小巧产品的研制和开发。当环境中出现明火时,火焰传感器检测到屋内有明火,在蜂鸣器启动警报的同时,SIM800A将向指定的手机发送火情报警短信,以此达到远程通信的功能[9]。SIM800A实物如图1.15(a)所示,SIM800A各模块如图1.15(b)所示。图1.15(a)SIM800A实物图1.15(b)SIM800A各模块工作原理:插上移动大卡,上电以后,模块会自动查找信号,串口助手发送指令AT,若模块返回ok,则表示连接正常。随后,发送AT+CMGF=1把短信模式改变为textmode(因为模块默认是pdumode0),最后,发送AT+CMGS=“在此处输入相应的电话号码”,等待模块返回字符‘>’,输入短信内容,输入完成之后,用十六进制0x1a来完成发送。如果一切顺利,指定的手机便会收到报警短信。模块特性:•双频900/1800MHz:GPRS多插槽类12/10。
GPRS移动站B类。
•满足GSM2/2+标准:4类(2W@900MHz);
1类(1W@1800MHz)。
•运用AT(Attention)指令进行和外部设备通信。在程序领域中,AT指令常用于终端设备与PC应用程序之间,相互连接和通信的指令。同时,在每条AT命令行中,规定只允许包含一条AT指令,否则将会出现错误。
•SIM卡应用数据包。
•需要的电压:2.4~4.4V。硬件电路:SIM800A的电路如图1.16所示。图1.16SIM800A的电路1.2.6蜂鸣报警模块功能介绍:蜂鸣器是常见的发声器件,常用于报警器,定时器,电动玩具中。其中,蜂鸣器按工作原理主要分为压电式和电磁式。压电型号由压电片、音频振荡器、电阻调和器、协同共鸣器和外壳组成。压电片主要通过压电效应来生电,音频振荡器用来振动并发声,电阻调和器用来调整合适的电阻,协同共鸣器强化压电片的压电效应,外壳起保护作用,以此达到响亮的发声的效果。电磁型号由电磁线圈、电磁铁、振动膜片、音频振荡器、电阻调和器和外壳组成。电磁线圈主要通过电磁感应来生电,电磁铁来稳定生电和调整极性,振动膜片在线圈和磁铁的作用下,能够实现定期地振动声响,其他原件功能相同。蜂鸣器实物如图1.17所示。图1.17蜂鸣器实物工作原理:蜂鸣器的发声原理是由振动装置和谐振装置而构成,同时,蜂鸣器又可以根据是否含有震荡源,而分为无源他激型与有源自激型。(注意,此处的源是指震荡源,而非电源,有震荡源的蜂鸣器一通电就会发声)无源蜂鸣器的产生声音的原理是:在矩形波信号输入振动装置之后,矩形波会自动转化为声音信号进行输出,无源型蜂鸣器的工作原理如图1.18(a)所示[10]。图1.18(a)无源型蜂鸣器的工作原理有源型蜂鸣器的产生声音的原理是:用直流电源作为激励,通过振荡系统的放大采样电路进行反馈修正,在振动装置的作用下,产生声音信号,有源型蜂鸣器的工作原理如图1.18(b)所示。图1.18(b)有源型蜂鸣器的工作原理硬件电路:蜂鸣器的硬件电路如图1.19所示。图1.19蜂鸣器的硬件电路1.4本章小结本系统采用温湿度传感器和火焰传感器来实时采集环境中的温湿度与明火情况,通过0.96寸OLED屏幕来实时显示所采集的温湿度和明火信息,当有明火出现时,火焰传感器监测并感测出有火信号,随后引发蜂鸣器报警,SIM800A短信模块给指定手机号发短信以汇报室内出现火情,以此组成室内火情监测报警系统的硬件设计。
2软件设计2.1开发环境简介使用Keil5作为开发环境,软件开发环境如图2.1所示。图2.1软件开发环境在2006年2月,ARM公司对于Keil进行更新更改,又发展出了ARM7,8,9的新芯片,其中本文所使用STM32单片机的内核就属于ARM8芯片,用于开发测量控制领域的研究[11]。和汇编语言相比较,C语言在功能、结构、可读性和可维护性等方面具有明显的优势,因此它易学易用。在个人用过汇编语言编程后,再使用C语言来开发一个相同的项目,感悟体验会更加深刻[12]。2.2总体程序设计总体程序设计流程图如图2.2所示。开始检测温度湿度和火情开始检测温度湿度和火情显示温度湿度和火情是否有火蜂鸣器响和短信发送结束否否是是图2.2总体程序设计流程图当给系统供电之后,程序开始运行,温湿度传感器和火焰传感器自动检测周边环境数据,采集数据后送给STM32,由STM32送给OLED屏幕进行显示,同时进行判断,是否有火,有火的话蜂鸣器会响同时会发短信给指定用户,无火的话蜂鸣器和短信模块进入待机状态。2.3各子程序设计2.2.1测温湿度子程序测温湿度子程序设计流程图如图2.3所示。开始开始延时等待总线是否为低电平检测温湿度并储存结束否是图2.3测温湿度子程序设计流程图首先,要调用DHT11的头文件“bsp_dht11.h”,以便调用其已经封装好的子函数。其中,本模块的要调用几个关键函数,分别是:voidDHT11_GPIO_Config(void),它的作用是配置DHT11所用到的I/O口。它的算法步骤为先定义一个结构体变量,再开启一个外设时钟,选择要控制的引脚,把引脚模式设为通用推挽输出,设置引脚速率为50MHz,同时调用库函数,初始化DHT11_PORT端口,最后拉高GPIOB10的总线,把其置位,完成配置I/O口的工作。staticvoidDHT11_Mode_IPU(void),它的作用是使DHT11-DATA引脚变为上拉输入模式。它的算法步骤为先选择要控制的DHT11_PORT引脚,再把引脚模式设置为浮空输入模式,最后初始化DHT11_PORT端口。staticvoidDHT11_Mode_Out_PP(void),它的作用是切换引脚输出模式,从上拉输入变成推挽输出模式。它的算法步骤为选择要改变的DHT11_PORT引脚,设置引脚模式变为通用推挽输出模式,并设置引脚速率为50MHz,最后都要再调用初始化函数GPIO_Init(DHT11_PORT,&GPIO_InitStructure)进行初始化工作[13]。最后,在编写读取数据格式的时候,开始时要拉低总线18ms,主机延时30us,结束时要拉高总线。因为DHT11是5个字节作为一个数据进行输出,前2个字节代表湿度的整数和小数部分,随后的2个字节代表温度的整数和小数部分,最后1个字节是校验和,用来检测要输出数据是否和输入的数据相同,防止向外界传输错误信息。同时时序图都是以50us低电平开始又以50us低电平结束为一个周期,其中DHT11的高电平持续26~28us表示该位数据为“0”,高电平持续70us表示该位数据为“1”,如此进行8次位操作便是1字节的数据,再进行4次重复读取,就获得了5个字节的数据了。2.2.2感测火焰子程序首先,要调用火焰传感器的头文件“frame.h”,以便调用其已经封装好的子函数。其中,本模块的要调用几个关键函数,分别是:voidinfrared_INIT(void),它的作用是对火焰传感器的端口进行初始化。它的算法步骤为先定义一个结构体变量,再选择你所要设置的I/O口,并把该端口设置为浮空输入,随后设置传输的速率为50MHz,最后要再初始化GPIO端口[14]。NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2),它的作用是对中断优先级进行分组,括号中的变量表示把中断优先级分为高低2组。最后,在编写该子程序的时候,要先定义好读火焰传感器的状态函数,并设定好所占用的GPIO通用端口,在开始的时候要先初始化,并且该模块为检测到低电平的时候火焰报警器就报警,所以要设置为0有效,1无效的逆逻辑。此外,通过螺丝刀旋钮自带的蓝色电位器,也可以调节该传感器的灵敏度,逆时针为增加灵敏度,此时火源应该相应地远离探头,顺时针为降低灵敏度,此时火源应该相应地靠近探头。感测火焰子程序设计流程图如图2.4所示。开始开始检测火焰信号是否有火有火信号送给STM32结束否是图2.4感测火焰子程序设计流程图2.2.3屏幕显示子程序首先,要调用OLED屏幕的头文件“oled.h”,以便调用其已经封装好的子函数。其中,本模块的要调用几个关键函数,分别是:OLED_ShowCHinese(A,B,C),它的作用是在屏幕上显示一个汉字。它的算法规则为,A变量表示汉字所在屏幕X轴的位置,可输入0到127。B变量表示汉字所在屏幕Y轴的位置,输入3的倍数,0,3,6,9等,同时0代表第一行,3代表第2行,6代表第三行,因为本设计只用到3行,所以只需要0,3,6就足够。C变量表示所要的汉字在软件中的数字标码,其中每一个汉字都有一个固定的标码,通过取模软件可以取出汉字所对应的数字。如OLED_ShowCHinese(0,0,13),13表示“当”字,含义为“当”字位于OLED屏幕的第1列第1行。OLED_ShowNum(A,B,C,D,E),它的作用是在屏幕上显示一个数字。它的算法规则为,A变量表示数字所处X轴的位置,B变量表示数字所处Y轴的位置,C变量表示所定义变量的数值,D变量表示这个数值的位数,E变量表示所显示数字的字号。如OLED_ShowNum(90,0,DHT11_Data.temp_int,2,16)的含义为显示DHT11所采集到的数据温度的整数部分,该数字在X轴90处,Y轴第1行,共2位,因为整数温度为2位数,十位和个位,所显示的数字大小为16字号[15]。OLED_ShowString(A,B,"C",D),它的作用是在屏幕上显示一个字符串。它的算法规则为,同上,A,B表示C所处的XY轴位置,C表示要显示的字符串,D
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年漳州市龙文区碧湖街道社区卫生服务中心公开招聘工作人员工作备考题库含答案详解
- 汽修厂二级维护责任制度
- 绞车工岗位安全责任制度
- 生产制造岗位责任制度
- 关联交易加重责任制度
- 带班值班教师责任制度
- 网吧安全管理责任制度
- 变电工岗位安全责任制度
- 毕业生就业指导责任制度
- 消防器材使用责任制度
- 数控刀具行业现状分析
- 北航机械方案说明书齿轮减速器
- 机动车维修竣工出厂合格证
- 2023年计算机科学导论题库期末考试汇总
- GB/T 18998.3-2003工业用氯化聚氯乙烯(PVC-C)管道系统第3部分:管件
- GB/T 17711-1999钇钡铜氧(123相)超导薄膜临界温度Tc的直流电阻试验方法
- 2023年一级建造师机电实务真题及答案解析
- 北京建筑大学2016年高职升本科专业课考试试卷《城市轨道交通车辆构造》试卷
- 事业单位人事管理条例完整版x课件
- 中国地理概况-课件
- 高处作业安全技术交底-
评论
0/150
提交评论