当前位置: 首页 > ds >正文

基于蓝牙的stm32智能火灾烟雾报警系统设计

 一.硬件方案


主要由STM32F103C8T6单片机最小系统板+LCD1602显示屏模块+MQ-2烟雾传感器+火焰检测模块+温度传感器+水泵电路+按键电路+蜂鸣器报警电路+蓝牙电路+电源开关构成;

仿真图如下:

二.设计功能

  • 具有温度采集、烟雾采集、火焰信号采集功能;
  • 显示屏显示当前系统信息,按键设置温度、烟雾监测阈值,当超过阈值时或有火焰信号时会发生声光报警,自动或者手动开启灭火(水泵);
  • 按键功能:按键1:模式切换;按键2:设置键;按键3:自加一;按键4:自减一/开关水泵;
  • 蓝牙通信连接上位机APP,远程显示信息,接收报警,远程控制灭火;

三.软件设计

        主程序源码

  int main(void){vu8 key=0;	delay_init();	    	 //延时函数初始化	  LED_Init();		  		//初始化与LED连接的硬件接口BEEP_Init();         	//初始化蜂鸣器端口FAN_Init();KEY_Init();         	//初始化与按键连接的硬件接口RELAY_Init();uart_init(9600);  //初始化串口1TIM2_Int_Init(999,7199);//10Khz的计数频率Adc_Init();Lcd_GPIO_init();  //初始化lcd引脚Lcd_Init();		  //初始化lcd屏幕Lcd_Puts(0,0,(unsigned char *)init_lcd1);	//显示Lcd_Puts(0,1,(unsigned char *)init_lcd2);	//显示BEEP=1;RELAY=0;while(1){key=KEY_Scan(1);	//得到键值KEY_Handle(key);  //按键处理函数APP_Handle(revData);  //APP指令处理函数revData=0;if(FIRE==0)    //火焰检测{fire_flag=6;}if(T_100ms>=10){T_100ms = 0;if(refresh==1)APP_refresh();if(fire_flag>0)fire_flag--;//采集烟雾浓度值ALValue = (u16)(Get_Adc(9)/3);   if(ALValue>999)ALValue  = 999;if (ALValue > K_ZERO) ALValue = ALValue - K_ZERO;              //首先减去零点漂移,一般是130mVelseALValue = 0; temperature=DS18B20_Get_Temp();    //获取温度temp=((u16)temperature);if(ALValue>WARNING)			 //报警阈值判断{smoke_flag =1;printf("当前烟雾浓度超标!!\r\n");}else if(temp>T_WARNING)			{smoke_flag =2;printf("当前温度超标!!\r\n");}else	if(fire_flag>0)			{smoke_flag =3;printf("当前有火焰!!\r\n");}else{smoke_flag =0;}if(mode==AUTO)    //自动模式下,自动开关水泵{if(smoke_flag>0){RELAY=1;   //开启水泵}else{RELAY=0;   //关闭水泵}}if(smoke_flag>0)   //蜂鸣器报警判断{if(BEEP_state==0)BEEP=1;elseBEEP=0;}elseBEEP=1;if(set==0)					 //set为0,说明现在不是设置状态Display_1602();	 //显示AD数值和报警值}}	 
}

链接:https://pan.baidu.com/s/1OXviDxr7wY28B81c2WVTWQ 提取码: s37p

http://www.xdnf.cn/news/18838.html

相关文章:

  • Golang云端编程入门指南:前沿框架与技术全景解析
  • 访问控制基础与模型综述
  • Python自学笔记11 Numpy的索引和切片
  • Sui 主网升级至 V1.54.2
  • Lucene 与 Elasticsearch:从底层引擎到分布式搜索平台的演进
  • 虚幻引擎5(UE5)Android端游戏开发全流程指南:从环境配置到项目发布
  • Spring Boot测试陷阱:失败测试为何“传染”其他用例?
  • 在PC机上使用虚幻引擎5(UE5)开发第一款游戏的完整入门指南
  • HTTP请求中的CGI请求与登录注册机制
  • Golang云端编程深度指南:架构本质与高阶实践
  • 动态规划--编译距离
  • 包裹堆叠场景漏检率↓79%!陌讯多目标追踪算法在智慧物流的实践优化
  • C/C++数据结构之循环链表
  • Redis详解--基本篇
  • 手写MyBatis第31弹-用工厂模式重构MyBatis的SqlSession创建过程
  • 数据可视化——matplotlib库
  • Rust Web开发指南 第三章(Axum 请求体解析:处理 JSON、表单与文件上传)
  • IQC、IPQC、PQC、FQC、OQC在ERP/MES/WMS中的系统协同
  • [每周一更]-(第157期):深入理解Go语言的垃圾回收机制:调优与监控
  • C++ 容器——vector
  • 第2章:幽灵协议初现
  • 通过API接口多并发采集数据的方法与实践
  • 马斯克宣布开源Grok 2.5:非商业许可引争议,模型需8×40GB GPU运行,Grok 3半年后开源
  • 新的 Gmail 网络钓鱼攻击利用 AI 提示注入来逃避检测
  • VScode设置鼠标滚轮调节代码
  • 深度学习部署实战 Ubuntu24.04单机多卡部署ERNIE-4.5-VL-28B-A3B-Paddle文心多模态大模型(详细教程)
  • LeetCode-542. 01 矩阵
  • 数据库的基本操作
  • 16、web应用系统分析语设计
  • 构建AI智能体:十二、给词语绘制地图:Embedding如何构建机器的认知空间