基于STM32的智能火灾、煤气报警系统

一、火焰传感器

1、模块描述

image-20231129091104754
  • 可以检测火焰或者波长在760纳米~1100纳米范围内的光源
  • 探测角度60度左右,对火焰光谱特别灵敏
  • 灵敏度可调(图中蓝色数字电位器调节)
  • 对火焰的探测距离:灵敏度和火焰强度有关,一般1m以内适用(以打火机火焰测试,半米内能够触发传感器)
  • 工作电压3.3V—5V

2、接口说明

VCC电源正(3.3V~5V)
GND电源负
D0TTL开关信号输入
A0模拟信号输入

3、原理图

image-20231129091850475

二、液化气传感器

1、模块描述

image-20231129093146548 image-20231129093217467
  • 液化气传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。
  • 当传感器所处环境中存在可燃气体时,传感器的电导率随空气中 可燃气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。
  • 气体传感器可检测多种可燃性气体,特别是对液化气(丙烷)具有很高的灵敏度,是一款适合多种应用场合的低成本传感器。

2、接口说明

VCC电源正极(5V)
GND电源负极
DO数字量输出
AO模拟量输出
image-20231129093408504

传感器通电后,需要预热1分钟,测量的数据才会稳定,传感器发热属于正常现象

3、原理图

image-20231129093634864

三、蜂鸣器

1、模块描述

有源蜂鸣器和无源蜂鸣器的区别

  • 有无震荡源,有源蜂鸣器内部带震荡源,所以只要一通电就会叫,而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。

  • 价格不同,有源蜂鸣器要比无源蜂鸣器贵,贵在里面多了震荡源。

  • 优点不同,无源蜂鸣器的优点是:便宜,声音频率可控,可以做出多来米发索拉西的效果,在一些特例中,可以和LED复用一个控制口。有源蜂鸣器的优点是:程序控制方便

image-20231129094601572

2、接口说明

VCC电源正(3.3~5V)
GND电源负
I/O外接单片机IO口

四、代码实现

1、Buzzer.c

  • 控制蜂鸣器模块
#include "stm32f10x.h"                  // Device header

void Buzzer_Init(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
	
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB, &GPIO_InitStructure);
	
	GPIO_SetBits(GPIOB, GPIO_Pin_12);
}

void Buzzer_ON(void)
{
	GPIO_ResetBits(GPIOB, GPIO_Pin_12);
}

void Buzzer_OFF(void)
{
	GPIO_SetBits(GPIOB, GPIO_Pin_12);
}

void Buzzer_Turn(void)
{
	if (GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_12) == 0)
	{
		GPIO_SetBits(GPIOB, GPIO_Pin_12);
	}
	else
	{
		GPIO_ResetBits(GPIOB, GPIO_Pin_12);
	}
}

2、Fire.c

  • 控制火焰传感器模块
#include "stm32f10x.h"                  // Device header

void Fire_Init(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB, &GPIO_InitStructure);
}

uint8_t Fire_Get(void)
{
	return GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_13);
}

3、Gas.c

  • 控制天然气传感器模块
#include "stm32f10x.h"                  // Device header

void Gas_Init(void)
{
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
    GPIO_InitTypeDef GPIO_InitStructure;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; //假设天然气传感器连接到GPIOB的Pin14引脚
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
}

uint8_t Gas_Get(void)
{
    return GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_11); 
}

4、main.c

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "Buzzer.h"
#include "Fire.h"
#include "Gas.h"

int main(void) 
{
	Buzzer_Init();
	Fire_Init();
    Gas_Init();

	while (1) 
	{
		// 检测PA0引脚的状态
		if (Fire_Get() == 1||Gas_Get()==1) 
		{
			// 当检测到火焰或煤气时
			Buzzer_ON();
		} 
		else 	
		{
			// 当未检测到火焰或煤气时
			Buzzer_OFF();
		}
	}
}

五、编译下载

基于STM32的火焰报警

六、参考资料

有源蜂鸣器和无源蜂鸣器的区别-CSDN博客

基于STM32的MQ系列传感器检测并显示_mq9传感器原理及应用-CSDN博客

  • 4
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
火焰传感器是一种用于检测火焰的传感器。在STM32HAL中,使用红外对管传感器作为火焰传感器,当红外对管被手遮挡时,会触发明火报警。红外对管与开发板上的火焰传感器对应,连接到STM32开发板上的相应引脚。例如,在STM32F407开发板上,火焰传感器的模拟输出连接到PF7引脚,数字输出可以连接到PA4引脚(实际上可以不接,因为本例中没有使用)。通过ADC获取模拟量并转化为数字信号量,再通过串口输出。可以根据这些数字信号量进行适当的警报设置。你可以使用如下代码示例来初始化火焰传感器和获取其数值。 头文件: ```c #ifndef _hy_H #define _hy_H #include "system.h" #include "stdio.h" void Lsens_Init(void); void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc); u16 Get_Adc3(u32 ch); u8 Lsens_Get_Val(void); #endif ``` 代码示例: ```c #include "hy.h" void Lsens_Init(void) { // 初始化ADC和串口 } void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc) { // ADC引脚初始化 } u16 Get_Adc3(u32 ch) { // 获取ADC值 } u8 Lsens_Get_Val(void) { // 获取火焰传感器数值 } ``` 这个示例代码可以帮助你初始化火焰传感器并获取其数值,你可以根据具体需求进行进一步的处理和警报设置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [厨房智能监控系统(下位机源码+APP+设计分析)-电路方案](https://download.csdn.net/download/weixin_38608726/16821581)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [中断实验(按键/光电开关/火焰传感器/人体红外)](https://blog.csdn.net/laoKdx/article/details/126940579)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [在stm32上对于火焰模块的应用分析](https://blog.csdn.net/weixin_44386927/article/details/109998146)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值