基于stm32火灾监控系统_第1页
基于stm32火灾监控系统_第2页
基于stm32火灾监控系统_第3页
基于stm32火灾监控系统_第4页
基于stm32火灾监控系统_第5页
已阅读5页,还剩41页未读, 继续免费阅读

付费下载

下载本文档

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

文档简介

目录摘要 [12]。5.2系统原理设计主程序流程图如图所示首先要给传感器电源、温度、数据显示、数据传输、STM32F103C8T6核心板块、烟雾传感器、蜂鸣器控制模块、按键输入模块进行原理设计(1)电源输入模块图图5-2电源输入图(2)温度显示模块图图5-3温度电路图(3)数据显示模块图图5-4数据显示电路(4)数据传输模块图5-5数据传输电路图(5)STM32F103C8T6核心模块图5-6STM32核心图(6)烟雾传感器模块图5-7烟雾传感器电路图(7)蜂鸣器控制模块图5-8蜂鸣器电路图(8)按键输入模块 图5-9按键模块电路图5.3主程序流程图开始开始程序初始化调用初始化函数调用温度烟雾传感器读取函数达到预设值报警调用数码管显示函数蜂鸣器报警数据发送到手机结束图5-10主程序流程图5.4实现与测试STM32F103C8T6单片机与烟雾传感器温度传感器、温度传感器、oled显示,以及手机端的显示的实现与测试步骤如图(1)单片机通电后检查温度、烟雾是否连接成功,打开软件开始测试。图5-11成品图(2)硬件启动中图5-12启动测试图(3)测试启动失败如果启动当中为连接移动网络,单片机的显示则会一直在启动中图5-16启动失败图(4)启动成功和手机连接图如果启动成功,手机端则收到连接成功提示,单片机的显示页面会显示启动中100%图5-17连接成功图图5-18启动成功图(5)硬件启动完成主界面可以看到启动完成就可以查看当前温度以及烟雾数值图5-19启动显示数据图启动成功后,我们就可以对系统进行测试,测试成功超过设置阈值蜂鸣器手机即可收到信息.(6)烟雾超过阈值报警图5-20烟雾超过阈值报警图(7)温度超过阈值报警图5-21温度超过阈值报警图(8)手机端收到阈值超过提醒图5-22手机端提示图(9)系统设置页面可对温度、烟雾报警阈值进行修改图5-22系统数值修改图(10)测试温度阈值修改图5-23成功修改数值前数值图图5-24成功修改数值后数值图可以看到我们通过按键成功实现对参数的修改。本系统可以实现对火灾环境的温度、烟雾变化来进行有效的防护,基于环境的情况来设置预设值来控制智能防火系统的数值,使用时可用按键模块,对温度、烟雾进行设定调整,当温度、烟雾超过预设阈值,蜂鸣器以及手机服务端都可收到提示,在单片机上设有oled显示,进一步方便查看当前实时温度、烟雾数据,进一步方便用户通过键盘来设定调整温度。

第6章结论经过数月的勤奋钻研和不懈努力,终于圆满完成了基于STM32的火灾监控报警系统的毕业设计。该系统以STM32F103C8T6单片机为核心控制器,融合了DS18B20温度传感器、OLED数码显示屏、蜂鸣器、MQ2烟雾报警器以及ESP-WiFi模块。在测试环节,系统成功实现了烟雾和温度的实时监测,并在达到预设阈值时,迅速向手机对应的小程序发送报警短信。尽管设计已顺利完成,但仍有诸多方面可以进一步完善和优化。例如,系统目前尚不能在触发阈值时自动启动消防设备以进行灭火,这一功能有待进一步开发。此外,在极端天气或复杂环境下,通信稳定性可能受到影响,因此需要不断优化通信协议和设备配置以提升系统的稳定性。同时,部分传感器的精度仍有提升空间,未来可考虑采用更精密的设备,以提高监测数据的准确性和可靠性。综上所述,虽然本次设计已基本满足预期目标,但仍需在多个方面进行持续的改进和提升,以推动火灾监控报警系统向更高水平发展。

参考文献黄文华.电气火灾监控系统的研究与设计[D].贵州大学,2021.杨俊.基于STM32的区域电气火灾监控设备的设计[D].大连理工大学,2011.杨春迪,陆娟,储增帮,范缤元,陈钊,岳喜姗.基于STM32F103RBT6单片机的新型森林火灾监测报警装置研究[J].科技创新与生产力,2023,44(8):124-126130王明伟,雷腾飞,屈谛,赵沙沙.基于STM32的SF_(6)开关室环境监控系统设计与实现[J].电气防爆,2023(3):12-15刘小滨,刘寅,沈文浩.基于STM32单片机的环境温/湿度远程监控系统设计[J].中国造纸学报,2022,37(3):118-125张伟,段萍,丁承君.基于STM32火灾报警系统设计[J].科技创新与应用,2016,6(27):43-44张国伟.关于STM32火灾报警系统设计分析[J].农村经济与科技,2018,29(4):274-275徐崇奇,解建国,毕佳琦,潘广禄.基于STM32的智能火灾监测及灭火系统设计[J].河南科技,2022,41(8):29-33周克良,郭金妹,聂磊.基于STM32F电气火灾无线红外测温系统的设计与实现[J].计算机测量与控制,2014,22(10):3108-3110李长富,黎敬涛.基于STM32的无线火灾定位报警系统设计[J].微处理机,2016,37(1):92-96富浩然,吴文伍.基于STM32的喊话救援小车设计[J].无线互联科技,2023,第20卷(11):42-45.徐崇奇等."基于STM32的智能火灾监测及灭火系统设计."河南科技第41卷.8(2022):29-33.章玉信."关于嵌入式电气火灾监控系统设计的分析."科学与信息化10(2020):44,50.吴晓红,石丽梅,and黄振兴."基于STM32F103C8T6单片机的火灾报警系统的设计与实现."现代信息科技第5卷.1(2021):171-174.盛连军等."基于空间域和频率域方法的烟雾检测."华东师范大学学报(自然科学版)5(2023):147-163.

附录源程序intmain(void){ delay_init(); LED_Init(); OLED_Init(); uart_init(115200); time3Init(4999,7199);//72M0.1ms500msWIFI连接定时 time2Init(9999,7199);//72M0.1ms1000ms温度报警倒计时 time4Init(9999,7199);//72M0.1ms1000ms烟雾报警倒计时 Adc_Init();//烟雾采集ADC初始化 DS18B20_Init();//DS18B20初始化 ESP8266Init(WIFIName,WIFIpwd,ip,clientId,userName,password,subTopic); OLED_Clear(); while(1){ DisplayUI(); smog=Get_Adc_Average(8,5); temp=getTemperture(); OLED_ShowNum(45,16,temp,2,16,1); OLED_ShowNum(45,48,smog,2,16,1); OLED_Refresh(); //1.设置页面 if(!KEY_EDIT){ while(!KEY_EDIT);//防抖 paramEdit();//进入参数设置 //刷新参数提示按钮(每次进入设置以后出来页面重新) if(!paramFlag)OLED_ShowChLength(105,2,67,1); elseOLED_ShowString(105,2,"",16,1); } //2.切换参数提醒设置 if(!KEY_NEXT){ while(!KEY_NEXT);//防抖 paramFlag=!paramFlag; if(!paramFlag){//关闭提示 BUZZ=0; OLED_ShowChLength(105,2,67,1); }else{ OLED_ShowString(105,2,"",16,1); }OLED_Refresh(); } //3.检查参数是否超出范围(开启了参数检查) if(paramFlag)paramCheck(); }}voidparamEdit(void){ intcursor=0,alterTip=0,beforeCursor=0; //初始化UI OLED_Clear(); OLED_ShowString(112,0,"<",16,1); while(1){ editUiDisplay();//UI显示 if(!KEY_NEXT){ while(!KEY_NEXT); beforeCursor=cursor*16; //拿到之前的修改显示位置 cursor++; cursor=cursor%4; //得到第几个数据 alterTip=cursor*16; //提示按钮的显示行 OLED_ShowString(112,beforeCursor,"",16,1);//显示提示< OLED_ShowString(112,alterTip,"<",16,1);//显示提示< } if(!KEY_ADD){ while(!KEY_ADD); runAlter(cursor,1); } if(!KEY_DEC){ while(!KEY_DEC); runAlter(cursor,-1); } if(!KEY_EDIT){//按下设置按钮推出当前页面 while(!KEY_EDIT); OLED_Clear(); break; } OLED_Refresh(); } }Ui设计代码:voidrunAlter(intcursor,intcount){ intcountResult; switch(cursor){ case0: countResult=temp_up+count; temp_up=countResult>0?countResult:0; break; case1: countResult=temp_down+count; temp_down=countResult>0?countResult:0; break; case2: countResult=smog_up+count; smog_up=countResult>0?countResult:0; break; case3: countResult=smog_down+count; smog_down=countResult>0?countResult:0; break; }}//设置初始化UIvoideditUiDisplay(void){ //显示汉字 OLED_ShowChLength(0,0,23,4); OLED_ShowChLength(0,16,27,4); OLED_ShowChLength(0,32,50,4); OLED_ShowChLength(0,48,54,4); //显示冒号 OLED_ShowString(65,0,":",16,1); OLED_ShowString(65,16,":",16,1); OLED_ShowString(65,32,":",16,1); OLED_ShowString(65,48,":",16,1); //显示测量值 OLED_ShowNum(76,0,temp_up,2,16,1); OLED_ShowNum(76,16,temp_down,2,16,1); OLED_ShowNum(76,32,smog_up,2,16,1); OLED_ShowNum(76,48,smog_down,2,16,1);}voidDisplayUI(void){ //文字 OLED_ShowChLength(0,16,11,2); OLED_ShowChLength(0,48,50,2); //冒号 OLED_ShowString(33,16,":",16,1); OLED_ShowString(33,48,":",16,1); //单位 OLED_ShowChLength(65,17,21,1); OLED_ShowString(65,48,"%",16,1);}voidparamCheck(void){ //1.温度检测 if(temp&&(temp<temp_down||temp>temp_up)){ if(!tempStatus){ TIM_SetCounter(TIM2,0);//重新计时 TIM_Cmd(TIM2,ENABLE);//开启TIM2 } tempStatus=1; }else{ tempFlag=0;

温馨提示

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

评论

0/150

提交评论