解决方案|智能消防预警系统突破高层楼房限制

栏目: IT技术 · 发布时间: 3年前

内容简介:高层建筑越来越多,高楼大厦的消防隐患就更加严峻,加之目前的消防救援车辆对高层的火灾救援仍旧没有很好的解决方案,因此大楼在发生火灾后通常只能等待大火燃尽熄灭,造成的经济损失,社会影响都比较严重。为了避免此类问题的发生,大楼的消防预警系统就成为了现代高楼设计的重中之重。

摘要: 高层建筑越来越多,高楼大厦的消防预警系统就成为了现代高楼设计的重中之重。

一、项目场景

高层建筑越来越多,高楼大厦的消防隐患就更加严峻,加之目前的消防救援车辆对高层的火灾救援仍旧没有很好的解决方案,因此大楼在发生火灾后通常只能等待大火燃尽熄灭,造成的经济损失,社会影响都比较严重。为了避免此类问题的发生,大楼的消防预警系统就成为了现代高楼设计的重中之重。

解决方案|智能消防预警系统突破高层楼房限制

二、任务目标

某百层以上的摩天大楼即将完工,为提高大楼的安全性需要对大楼的消防设施进行配套。为配合喷淋及大楼报警装置的使用,需要使用火焰传感器对大楼内的明火进行提前预警。请使用火焰传感器对明火信号进行监测,并将监测结果发送至上位等待对明火的进一步处理。

三、火焰传感器介绍

火焰是由各种燃烧生成物、中间物、高温气体、碳氢物质以及无机物质为主体的高温固体微粒构成的。火焰的热辐射具有离散光谱的气体辐射和连续光谱的固体辐射。

火焰传感器检测火焰主要依靠光谱中的特征波长的光线。

解决方案|智能消防预警系统突破高层楼房限制

  • 火焰传感器类型

火焰传感器检测火焰主要依靠光谱中的特征波长的光线,根据不同特征的光线可将火焰传感器分为远红外火焰传感器和紫外火焰传感器。

解决方案|智能消防预警系统突破高层楼房限制 解决方案|智能消防预警系统突破高层楼房限制

  • 红外接收管

火焰传感器之所以能够检测火焰接受到红外信号的原因是由于使用红外接收头做为火焰传感器的眼睛。常见的940nm红外接收管如图。

远红外火焰传感器可以用来探测火源或其它一些波长在700纳米~1100纳米范围内的热源。

解决方案|智能消防预警系统突破高层楼房限制

  • 红外接收管的特征与原理

红外线接收管是将红外线光信号变成电信号的半导体器件,它的核心部件是一个特殊材料的PN结,和普通二极管相比,在结构上采取了大的改变,红外线接收管为了更多更大面积的接受入射光线,PN结面积尽量做的比较大,电极面积尽量减小,而且PN结的结深很浅,一般小于1微米。

红外线接收二极管是在反向电压作用之下工作的。没有光照时,反向电流很小(一般小于0.1微安),称为暗电流。当有红外线光照时,携带能量的红外线光子进入PN结后,把能量传给共价键上的束缚电子,使部分电子挣脱共价键,从而产生电子——空穴对(简称:光生载流子)。

四、项目分析

本项目设计中通过940nm的红外接收管经过运算放大器采集火焰红外信息,并将采集信息打印在PC上,定时进行更新,硬件结构主要由STM32F407、火焰传感器、串口和LCD屏幕组成。

解决方案|智能消防预警系统突破高层楼房限制

五、项目硬件图

火焰传感器原理图

解决方案|智能消防预警系统突破高层楼房限制

六、火焰传感器程序逻辑

解决方案|智能消防预警系统突破高层楼房限制

七、项目实现

主函数模块

/*********************************************************************************************

* 头文件

*********************************************************************************************/


#include "stm32f4xx.h"


#include "delay.h"


#include "led.h"


#include "key.h"


#include "lcd.h"


#include "usart.h"


#include "Flame.h"

/*********************************************************************************************

* 名称:main()

* 功能:火焰传感器驱动逻辑代码

* 参数:无

* 返回:无

* 修改:

*********************************************************************************************/


void main(void)

{

  unsigned char led_status = 0;                                //存储火焰状态变量

  delay_init(168);                                              //延时初始化

  led_init();                                                   //初始化LED控制管脚

  key_init();                                                   //初始化按键检测管脚

  lcd_init(FLAME1);                                             //LCD初始化

  usart_init(115200);                                           //串口初始化

  flame_init();                                                 //火焰传感器初始化

 

  while(1){                                                     //循环体

    if(get_flame_status() == 1){                                //检测到火焰

      led_status = ~led_status;                                 //LED灯的状态反转           

      printf("fire!\r\n");                                      //串口打印提示信息

      //LCD更新数据

      LCDDrawFnt16(4+30,30+20*7,4,320,"  检测到火焰",0x0000,0xffff);

    }

    else{                                                       //没有检测到火焰

      led_status = 0;                                           //熄灭LED灯

      printf("no fire!\r\n");                                   //串口打印提示信息

      //LCD更新数据

      LCDDrawFnt16(4+30,30+20*7,4,320,"未检测到火焰",0x0000,0xffff);

    }

    if(led_status == 0)                                         //根据LED灯的状态控制LED灯的变化

      led_control(0);                                           //关闭LED灯

    else

      led_control(D3|D4);                                       //点亮LED灯

    delay_ms(1000);                                             //延时1秒

  }

}  

火焰传感器初始化

void flame_init(void)

{

    GPIO_InitTypeDef GPIO_InitStructure;                  //定义一个GPIO_InitTypeDef类型的结构体

    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); //开启火焰相关的GPIO外设时钟

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;            //选择要控制的GPIO引脚

    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;        //设置引脚的输出类型为推挽

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;          //设置引脚模式为输入模式

    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;        //设置引脚为下拉模式

    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;      //设置引脚速率为2MHz

    GPIO_Init(GPIOB, &GPIO_InitStructure);                //初始化GPIO配置

}

获取火焰传感器状态

unsigned char get_flame_status(void)

{

    if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_10))

        return 1;

    else

        return 0;

}

八、项目思考

火焰传感器检测火焰信号的原理是什么?

火焰传感器在工业上有哪些应用?

LiteOS操作系统如何移植进项目?

项目如何对接华为云平台?

欢迎留下你的想法~

点击关注,第一时间了解华为云新鲜技术~


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

走出电商困局

走出电商困局

黄若 / 东方出版社 / 2013-11-1 / 38.00

高速增长的时代趋于结束,迅猛运转的加速器早已锈蚀 这是一场转型,更是一次新的机遇 《走出电商困局》是本年度最畅销管理书籍《我看电商》作者黄若的最新力作,意在深度剖析电商行业发展 ,破解电商困局。经历过10年超常规的快速增长,电商行业即将进入较为平稳的发展期。多年来这个行业不断融资不断烧钱却大多无法盈利的怪圈怎样突破?在很多企业面临估值下跌,资金吃紧,用户流失的关键节点,怎样从零售经营的......一起来看看 《走出电商困局》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

随机密码生成器
随机密码生成器

多种字符组合密码