APP下载

基于Arduino的智能温度报警器设计

2018-12-13缪世坤赵霄浚周衡毅浙江广厦建设职业技术学院信息与控制工程学院

数码世界 2018年11期
关键词:原理图报警器温度传感器

缪世坤 赵霄浚 周衡毅 浙江广厦建设职业技术学院信息与控制工程学院

随着我国经济的发展,各种新型材料被广泛应用于各个生产及生活领域。作为一种新生事物,人民群众对这些新型材料的材质特点和性能目前尚未完全了解及掌握,这就使得我国的火灾事故显现出频繁化,严重化的趋势。据统计,我国的火灾事故每年约发生10万起,造成10亿多元的直接损失。

1 现行的传统温度报警器存在的问题

预防对抗火灾的经验证明,发现的越早,越容易将火灾扑灭于萌芽阶段。因此,温度报警器就成为了火灾预防的一个重要手段。但是现行的大多数温度报警器的报警机制,依然是传统的检测-对比-报警机制:在投入使用之前为其设置一个固定的报警温度,投入使用后,温度报警器的传感器不断检测当前温度并与设置好的报警温度对比,当检测到的温度到达或超过预先设置的报警温度时,才发出警报。而此时火灾常常已经形成一段时间,难以再迅速扑灭。如果想使这一类型的温度报警器实现提前预警,唯一的方法就是将报警温度设置得较低,而这又会使得温度报警器经常误动作,不仅使得相关人员疲于奔命,还会把真正的火灾报警信息淹没于无数的虚假报警信息之中。

2 Arduino控制器

作为目前全球最流行的开源硬件单片机电子设计平台,Arduino的硬件部分包括一块ATmega328芯片,可用于SPI通信的ICSP编程接口以及相关电路。软件部分则包括一个标准的程序编译器(IDE)和程序下载烧录器,使用类似C语言的Processing/Wiring开发环境[1]。Arduino具有相当突出的特色:Arduino的硬件原理图、电路图、IDE文件和核心库文件都是开源的,拥有众多的外围模块,方便与温度传感器等电子组件进行连接,也可以通过编程实现对测量信号的实时处理及对传感器的操作,除此之外,在成本、耗电量、以及数据传输速率方面也拥有不可忽视的优势。

3 智能温度报警器逻辑设计

在火灾发生形成的过程中,一般包括以下五个阶段:潜伏、阴燃、明火燃烧、着火区扩大以及火灾形成五个阶段。在火灾的初期,最明显的表现就是周围环境温度的迅速上升,这也是传统温度报警器的报警依据。但是,在实际使用过程中,种种其他原因,例如电压波动和外界干扰等,会产生检测数据的数据波动,同样也会引起温度传感器测得的数值迅速上升。

因此,就需要设计一种智能报警器,一方面能够检测出温度迅速上升的趋势,另一方面又能避免因为数据波动而产生的温度误报警。通过对温度传感器检测数据的分析可知,这种由其他原因产生的温度检测数值的迅速上升,并不会维持很长时间,绝大多数温度检测数值在一秒钟内就会迅速下降。

由此,设计智能温度报警器内部逻辑如下:不断将现在的温度与上一秒的温度进行比较,如果发现温度有突然上升的趋势,则提高温度传感器采集速率,判断是数据波动还是真实温度上升变化,如果确实为真实温度上升变化,则立刻发出警报;如果只是其他原因导致的数据波动,则将温度传感器采集速率切换为一般状态。

该智能温度报警器内部逻辑实现流程如下图

图1 智能温度报警器内部逻辑流程图

4 智能温度报警器的硬件及软件设计

温度检测传感器有很多种类型,其中LM35DZ是其中常用的一个型号,其检测范围为0~100℃,工作电流133μA,检测精度0.5℃,能够基本满足温度报警器的要求,Arduion有14个数字输入/输出端口,6个模拟输入端口,由于LM35DZ输出为模拟信号,故将其连接到Arduino的A0口。整体智能温度报警器,设计硬件电路原理图如下。

图2 智能温度报警器电路原理图

通过对智能报警器内部逻辑流程图的分析,将其功能分解为两个函数:首先是为对比函数,功能为实现前后两个温度传感器测量数据间的对比,判断温度是否有突然变化;其次是验证函数,当接收到温度突然变化信号时,提高温度采样频率并传递给对比函数,验证是否为其他原因导致的数据波动。

程序设计代码如下:

int LM35 = A0;

int LED = 2;

void setup() {

Serial.begin(9600);

}

void loop() {

float temp0 = (5.0*analogRead(LM35)*100.0)/1024;

delay(1000);

float temp1 = (5.0*analogRead(LM35)*100.0)/1024;

delay(1000);

if(temp1-temp0>=1.0)

{

float temp0 = (5.0*analogRead(LM35)*100.0)/1024;

delay(100);

float temp1 = (5.0*analogRead(LM35)*100.0)/1024;

delay(100);

float temp2 = (5.0*analogRead(LM35)*100.0)/1024;

delay(100);

float temp3 = (5.0*analogRead(LM35)*100.0)/1024;

delay(100);

float temp4 = (5.0*analogRead(LM35)*100.0)/1024;

delay(100);

float temp5 = (5.0*analogRead(LM35)*100.0)/1024;

delay(100);

float temp6 = (5.0*analogRead(LM35)*100.0)/1024;

delay(100);

float temp7 = (5.0*analogRead(LM35)*100.0)/1024;

delay(100);

if(temp7>temp6&temp6>temp5&temp5>temp4&temp4>temp3&temp3>temp2&temp2>temp1&temp1>temp0)

{digitalWrite(LED,HIGH);}

}

}

5 总结

本文利用Arduino的种种优势,采用软件编程的方式实现了温度报警器的智能检测报警。整个设计电路简单,成本低廉,灵敏度高。该温度报警器的智能功能不仅适用于火灾报警,同样适用于其他需要保持温度恒定的场合,例如大棚,仓库,生产车间等。同时,由于Arduino的高度扩展性,只需要接入其他扩展模块,本智能报警器同样可以用于检测湿度、速度及加速度、光照等,可以说具有非常大的应用范围。

猜你喜欢

原理图报警器温度传感器
基于HSIC的日光温室温度传感器优化配置策略
智能报警器
微机电系统温度传感器研究进展及产业现状综述
传感器背景下家用电动车报警器的创新设计
可燃气体报警器常见问题分析及处理分析
基于Protel DXP 2004层次原理图的设计
浅谈温度传感器原理及其应用
浅谈电工专业课的现场教学
电子电路识图方法的探究
维修电工线路板的接线技巧分析