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

基于蓝牙的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.dtcms.com/a/349189.html

相关文章:

  • 一个高度精简但结构完整的微服务示例
  • 敏感电阻简单介绍
  • Java 创建线程的几种方式
  • Python复数运算完全指南:从基础到工程级应用实践
  • Hyperledger Fabric官方中文教程-改进笔记(十六)-策略(policy)
  • 【Luogu】P4127 [AHOI2009] 同类分布 (数位DP)
  • 【知识杂记】卡尔曼滤波相关知识高频问答
  • Java 中 Set 接口(更新版)
  • 深度学习中的“集体智慧”:Dropout技术详解——不仅是防止过拟合,更是模型集成的革命
  • Java静态代理与动态代理实战解析
  • redis集群模式 -批量操作
  • 智慧工业设备巡检误报率↓81%!陌讯多模态融合算法实战优化与边缘部署
  • 【机器学习】6 Frequentist statistics
  • (计算机网络)JWT三部分及 Signature 作用
  • 车企数据资产管理——解读46页大型车企数据资产数据治理体系解决方案【附全文阅读】
  • 计算机系统 C语言运行时对应内存映射 以及 各个段的数据访问下标越界产生的后果
  • Delphi 12 基于 Indy 的 WebServer 的 https 实现的问题
  • HiRAG:用分层知识图解决复杂推理问题
  • ruoyi框架角色分配用户
  • imx6ull-驱动开发篇38——Linux INPUT 子系统
  • leetcode_189 轮转数组
  • 什么嵌入式接入大模型:第二篇基于 STM32 ESP32 的社会服务助手
  • AI重塑跨境电商:选品成功率提升53%+物流效率加快34%,多语种运营成破局关键
  • String的intern方法
  • 数据库服务优化设置
  • nano命令使用方法
  • 备考NCRE三级信息安全技术 --- L1 信息安全保障概述
  • 自编 C# 颜色命名和色彩显示,使用 DataGridView 展示颜色命名、RGB值
  • 推进数据成熟度旅程的 3 个步骤
  • 基于 MATLAB 的信号处理实战:滤波、傅里叶变换与频谱分析