基于蓝牙的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);  //初始化串口1
	TIM2_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;              //首先减去零点漂移,一般是130mV
			else
				ALValue = 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;
				else
					BEEP=0;
			}
			else
				BEEP=1;
			
			if(set==0)					 //set为0,说明现在不是设置状态
				Display_1602();	 //显示AD数值和报警值

		}

	}	 
}

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

相关推荐
zhangrelay9 小时前
新版|-|单片机原理与接口技术-2026持续改进优化-从MEGA2560-ESP32与Wokwi到ROS2-Lyrical与具身智能栈
笔记·单片机·嵌入式硬件·学习
comyccccc10 小时前
STM32F103C8T6最小系统板设计全解析学习笔记
单片机·1024程序员节
Industio_触觉智能10 小时前
把NPU检测直接嵌进采集终端|RK3576 AI采集终端全链路拆解教程-下
嵌入式硬件·ai·硬件架构·npu·ai视觉·rk3576·采集终端
en.en..10 小时前
STM32 GPIO ODR 与 BSRR 寄存器完整对比详解
单片机·嵌入式硬件
HQB202613 小时前
EG1182|屹晶微电子 60V 内置高压管异步降压 DC‑DC
嵌入式硬件·硬件工程
LCG米14 小时前
STM32硬件SPI驱动SSD1306 OLED实测:上电黑屏排查、页寻址模式与取模扫描方向陷阱
stm32·单片机·嵌入式硬件·嵌入式
深圳老胡15 小时前
STM32C5A3ZG 网络调试总结:从启动失败到连续 Ping 稳定
笔记·stm32·单片机·代码规范
qq_4017004115 小时前
100 个 IoT 小项目,给 ESP32 入门补上实操
前端·网络·stm32
硅基造物主15 小时前
STM32 从 0 到 1 做智能家居(八):PWM 控制风扇、加热片与 SG90 窗帘
stm32·嵌入式硬件·智能家居·hal库·pwm
简单电磁炮16 小时前
关于adc采集
stm32·单片机