基于stm32的家庭报警器

【投稿赢 iPhone 17】「我的第一个开源项目」故事征集:用代码换C位出道! 10w+人浏览 1.7k人参与

一、概述

系统集成 MQ-2 烟雾传感器、DHT11 温湿度传感器、MK147 火源探测传感器实现多源数据采集,结合 ESP8266 无线通信模块完成数据远程传输与控制,通过 AMS1117 系列降压芯片构建稳定电源供给,同时搭配 OLED 屏幕实现数据可视化。系统采用三级报警机制,可根据环境参数动态触发不同等级预警,最高等级预警时能自动驱动水泵灭火,有效提升家庭火灾预警的实时性与可靠性。

二、系统组成

  1. MQ-2 烟雾传感器:接入 PA1 引脚(ADC1_IN1 通道),12 位分辨率连续采样,3.3V 基准电压确保浓度检测精度;
  2. MK147 火源探测器:接入 PA9 引脚(AO 输入模式),前端串联 220Ω 限流电阻与 104 瓷片电容构成 RC 滤波电路,抑制环境光线干扰;
  3. DHT11 温湿度传感器:接入 PA6 引脚(开漏输出模式),采用单总线协议通信;
  4. 继电器(水泵控制):接入 PA10 引脚(推挽输出模式),拉高电平触发继电器吸合;
  5. 蜂鸣器:接入 PB5 引脚,通过 1kHz 频率、30%-80% 占空比调节音量,紧急状态输出 85dB 警示音;
  6. ESP8266 通信模块:通过 UART2(PA2-TX、PA3-RX)与 MCU 通信,实现数据收发。

三、程序设计

int main(void)
{ 
    SystemInit();	
	delay_init(72);
	LED_Init();
	Relay_Init();   		
	Buzzer_Init();  		
	USART1_Config(); 		
	USART2_Config(); 		
	TIM3_Int_Init(1000-1,72-1);		
	TIM2_Init();
	ARTCInit();	
	MK147_Init();  
	MQ2_ADC_DMA_Init();
	MQ2_Init();
	OLED_Init();
	OLED_meun();
	userInit();
	gizwitsInit();
	delay_ms(500);
	gizwitsSetMode(WIFI_RESET_MODE);
  while (1)
  {ppm = MQ2_GetPPM();
		sprintf(buff, "%.1fppm",ppm);	
		DHT11_Read_Data(&temp,&humi);//
		ARTC_ReadTime();
		OLED_ShowNum(40,0,My_time[0],4,16,1);
		OLED_ShowNum(80,0,My_time[1],2,16,1);
		OLED_ShowNum(104,0,My_time[2],2,16,1);
		OLED_ShowNum(40,15,My_time[3],2,16,1);
		OLED_ShowNum(64,15,My_time[4],2,16,1);
		OLED_ShowNum(88,15,My_time[5],2,16,1);		
		FireDetection_Handle();
		OLED_ShowString(64,32,buff,16,1);
		OLED_ShowNum(48,48,g_alarm_level,1,16,1);
		OLED_ShowNum(16,32,temp,2,16,1);	
		OLED_ShowNum(16,48,humi,2,16,1);	  	
		OLED_ShowString(72,48,"HY:",16,1);
		if(!LightSensor_Get()){OLED_ShowString(96,48,"War",16,1);}
		else {OLED_ShowString(96,48,"ok!",16,1);}
		userHandle();
		gizwitsHandle((dataPoint_t *)&currentDataPoint);	
}}

四、功能实现

  1. 数据采集阶段:系统以 STM32F103C8T6 为主控,通过 MQ-2 烟雾传感器(实时采集可燃气体浓度,0-100ppm 范围)、DHT11 温湿度传感器(采集环境温度 0-50℃、湿度 20-80% RH)、MK147 火源探测传感器(探测 0.5m 内明火),每 0.5 秒完成一次多传感器数据采样,同时 STM32 内置 ADC 将 MQ-2 模拟信号转换为数字量,结合温度补偿算法提升浓度检测精度;
  2. 风险判定阶段:基于三级阶梯式判定模型,一级预警触发条件为温度≥25℃;二级预警需满足 “温度≥25℃且 MQ-2 烟雾浓度≥2000ADC 值(约 20ppm)”;三级预警需在二级条件基础上,叠加 MK147 持续 300ms 检测到明火信号;若二级预警后 10 秒内烟雾浓度回落至 10ppm 以下,判定为烹饪油烟干扰,自动取消警示;
  3. 分级响应阶段:一级预警时红色 LED 常亮;二级预警时红色 LED 闪烁 + 蜂鸣器短鸣 3 声;三级预警时红色 LED 快闪 + 蜂鸣器短鸣 5 声,同时 STM32 控制继电器吸合,驱动水泵启动并持续工作 5 分钟,水泵运行结束后重新检测火源,火源消失则关闭水泵恢复监测;
  4. 远程交互阶段:ESP8266 无线模块工作于 STA 模式,连接家庭 WiFi 后通过 MQTT 协议向机智云平台上传设备 ID、温湿度、烟雾浓度、报警等级等数据,断网时本地存储最近 24 小时数据;用户可通过手机 APP 实时查看数据,也可远程发送指令手动控制水泵开关。

五、实物

:随着“信息时代”的到来,作为获取信息的手段——传感器技术得到了显著的进步,其应用领域越来越广泛,对其要求越来越高,需求越来越迫切。传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。 为了提高对传感器的认识和了解,尤其是对烟雾传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。本文利用单片机结合传感器技术而开发设计了这一烟雾监控系统。。 本论文以电阻式烟雾传感器和单片机技术为核心并与其他电子技术相结合, 设计出一种技术水平较好的烟雾报警器。其中选用MQ-2型半导体可燃气体敏感元件烟雾传感器实现烟雾的检测,具有灵敏度高、响应快、抗干扰能力强等优点,而且价格低廉,使用寿命长。选用的STC12C5410AD单片机,其整合了A/D转换、硬件乘法器、硬件脉宽调制器等资源,具 有高速、低功耗、超强抗干扰等优点,是目前同类技术中性价比较高的产 品。 以STC12C5410AD单片机和MQ-2型半导体电阻式烟雾传感器为核心设计的烟雾报警器可实现声光报警、故障自诊断、浓度显示、报警限设置、延时报警及与上位机串口通信等功能。是一种结构简单、性能 稳定、使用方便、价格低廉、智能化的烟雾报警器。具有一定的实用价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值