基于Android的烟雾报警器设计与制作_第1页
基于Android的烟雾报警器设计与制作_第2页
基于Android的烟雾报警器设计与制作_第3页
基于Android的烟雾报警器设计与制作_第4页
基于Android的烟雾报警器设计与制作_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖南商务职业技术学院毕业设计

目录

1设计的意义..............................................................................................................1

2总体设计方案..........................................................................................................1

2.1产品功能分析................................................................................................1

2.2整体框图设计................................................................................................2

2.3主要部件的选型............................................................................................2

3硬件电路设计..........................................................................................................3

3.1ArduinoUNO主控板介绍...............................................................................3

3.2LCD1602液晶显示电路..................................................................................4

3.3MQ-2检测模块电路.......................................................................................5

3.4蜂鸣器报警电路............................................................................................6

3.5温度传感器模块电路.....................................................................................7

3.6按键电路........................................................................................................7

4产品软件设计..........................................................................................................8

4.1产品程序开发软件.........................................................................................8

4.2模块开发流程图............................................................................................8

5实物作品操作效果及指引图.................................................................................10

5.1实物作品展示..............................................................................................10

5.2实物作品操作演示.......................................................................................11

6设计总结................................................................................................................13

7附录........................................................................................................................14

湖南商务职业技术学院毕业设计

基于Arduino的烟雾报警器设计与制作

1设计的意义

体随着科技的飞黄腾达,城市化现象也在日益进步,虽然给予了国家经济

上的支持,人名工作上的保障,但与此同时,无论是小到商铺门店,大到工厂

车间,都无法避免火灾等安全隐患的存在,日常生活中经常可以在新闻或者其

他社交平台看到报道,例如“粉尘爆炸”、“居民楼火灾”、“化工厂事故”

等等诸如此类骇人听闻的新闻报道,而对于现有的环境监测器件,虽然可以准

确无误的对周围环境进行监测,但却不能够实时的进行播报,无法及时的了解

到现场的情况,接受警报的提醒,也是安全事故发生的重要因素之一,那么对

于我们,如何有效的避免解决此类安全问题的发生,防患于未然,就成了当下

的当务之急。

在我的努力之下,经过翻阅各类资料、数目,通过老师的指导,设计出了

一款基于Arduino的烟雾报警系统,该系统主要是由芯片来控制,测量环境中

烟雾浓度的部分只要由传感器及模数转换器组成。值得肯定的是,该电路系统

所能够实现的检测功能拥有成本低、功耗小、传播速度快、测量准确、电路简

单易懂等优点,一改传统烟雾浓度检测性能复杂、不灵通的缺点,在使用方面

方便直观、简单易懂适合各年龄段人群使用,大大的提高了该系统的性能优势。

可以说,该设计所完成的烟雾浓度检测功能在很大程度上满足市场的广大需求,

且适用范围光、人群大的优势使得该电路前景更加广泛。

2总体设计方案

2.1产品功能分析

本设计使用arduinoIDE对主板系统进行编程。本次设计主要分为检测、

显示和报警和控制三个部分。单片机采用arduino单片机作为CPU处理器,

检测部分包括烟雾温度检测,单片机控制LCD1602液晶显示屏显示检测到的

温度和烟雾浓度,按键用于设置烟雾浓度、温度,蜂鸣器用于报警,SIM800

发送报警短信到设定的手机上,。本次系统设计采用单片机模块化进行设计,

所谓模块化,就是将功能分解,降低之间的耦合性。当需要增加或删除某个

1

湖南商务职业技术学院毕业设计

功能时,只需要替换或增减某个模块,不用改变整个结构,只需要改相应的

模块,工作量就会明显减少,所以模块化的应用,对于单片机的设计时非常

重要的。

2.2整体框图设计

图2.1系统总体结构框图

2.3主要部件的选型

主控芯片:ArduinoUno开发板是基于ATmega328P的单片机开发板。它有14

个数字输入/输出引脚,其中6个可用作PWM输出,6个模拟输入脚,16MHz晶

振,USB连接,电源插孔,ICSP接头和复位按钮,HXP等输入输出口。只需使用

USB线将其连接到计算机,或者使用AC-to-DC适配器或电池为其供电即可开始

使用。可以修改UNO而不用担心做错任何事情,如果出现问题也不用担心,只

需要关闭电源,重新开机即可解决。

显示器:采用LCD1602液晶显示模块。LCD1602显示器又叫LCD1602字符型

液晶显示器。显示功能强大,可以同时显示出16*2即32个字符,可包括数字、

字母、符号、或者自定义字符。LCD1602液晶显示器中的每一个字符都是由5*7

的点阵组成。LCD1602采用并行数据传输也可以采用串行数据传输,控制简单。

烟雾检测器件:采用的MQ-2型烟雾,它是一种表面的离子式N型半导体。

2

湖南商务职业技术学院毕业设计

当温度在200~300°C时,空气中的氧被二氧化锡所吸附,吸附了氧的负离子,

减少了其中的电子密度,进而增加了它的电阻值。但接触到烟雾后,如果晶粒

间界处的势垒受到该烟雾的调制而变化,这样会让电导率同样发生变化。利用

这特征我们就可以得到这种烟雾存在的信息。

3硬件电路设计

3.1ArduinoUNO主控板介绍

1.ArduinoUNO主控板概述

ArduinoUno开发板是基于ATmega328P的单片机开发板。它有14个数字输

入/输出引脚,其中6个可用作PWM输出,6个模拟输入脚,16MHz晶振,USB

连接,电源插孔,ICSP接头和复位按钮,HXP等输入输出口。只需使用USB线

将其连接到计算机,或者使用AC-to-DC适配器或电池为其供电即可开始使用。

可以修改UNO而不用担心做错任何事情,如果出现问题也不用担心,只需要关

闭电源,重新开机即可解决。

2.ArduinoUNO主控板最小系统

图3.1主控板最小系统

3

湖南商务职业技术学院毕业设计

3.2LCD1602液晶显示电路

1.LCD1602显示模块简介

LCD1602液晶也叫LCD1602字符型液晶,它是一种专门用来显示字母、数字、

符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个

点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有

间隔,起到了字符间距和行间距的作用。LCD1602液晶实物图如图3.2所示。

图3.2LCD1602液晶实物图

2.LCD1602的引脚说明

LCD1602液晶显示器引脚功能描述见表3.1。

表3.1LCD1602引脚

排号名称定义排号名称定义

1Vss工作电压负极9D2数据端

2Vcc工作电压正极10D3数据端

3VL液晶调节端11D4数据端

4RS数据/命令端(H/L)12D5数据端

5R/W读/写端(H/L)13D6数据端

6E使能信号端14D7数据端

7D0数据端15Bla背景灯正端

8D1数据端16Blk背景灯负端

3.LCD1602显示电路设计

4

湖南商务职业技术学院毕业设计

LCD1602显示电路接口设计图如图3.3所示。

图3.3LCD1602显示电路接口

3.3MQ-2检测模块电路

MQ-2气体传感器对丙烷、烟雾的灵敏度高,对天然气和其它可燃蒸气的检

测也很理想。这种传感器可检测多种可燃性气体,是一款适合多种应用的低成

本传感器。

MQ-2传感器模块电路图如下图3.4所示,MQ-2传感器对烟雾进行检测后,

信号通过LM393比较放大器进行处理,转变为高、低电平的数字信号供主控电

路进行检测与处理。

图3.4MQ-2传感器模块电路

MQ-2传感器模块接口电路如下图3.5所示。

5

湖南商务职业技术学院毕业设计

图3.5MQ-2传感器模块接口电路

3.4蜂鸣器报警电路

电路中设计了一个蜂鸣器报警电路,当按键设置好烟雾温度浓度的上限值

后,单片机就进行循环监测,时刻监测温度和是否有人,并和报警上限进行比

较。本次报警电路主要分为二部分,分别是蜂鸣器报警,短信报警。下面介绍

一下蜂鸣器的工作原理,蜂鸣器是一种蜂鸣元器件,供电时就进行蜂鸣,操作

非常简单。市场上有很多蜂鸣器,我们选择提供5V电源的蜂鸣器被认为是实用

的。当我们使用蜂鸣器时,我们有一个小技巧。如果我们觉得蜂鸣器不够响,我

们可以把蜂鸣器顶部的纸去掉。在本次设计中,当检测到温度或者烟雾浓度高

于报警上限时,蜂鸣器报警。具体接口电路如下图3.6所示。

图3.6蜂鸣器报警电路

6

湖南商务职业技术学院毕业设计

3.5温度传感器模块电路

本次设计采用DS18B20温度传感器模块,温度传感器DS18B20主要是用来

进行温度检测,当我们对温度进行检测,我们用防水的DS18B20就可以进行检

测。DS18B20传感器是市场上采用的温度传感器。此传感器占用的面积非常简单,

精度为0.2.采用的是单总线的数据传输方式。这个传感器抗干扰能力非常的强,

经常用于高炉测温、机房检测、家庭温度控制等方面适合于很多空间比较小的

场合和数字温度检测等领域。这款温度传感器转换时间为75ns,检测的结果以

数字量方式串行传送。温度传感器模块电路接口设计如图3.7所示.

图3.7温度传感器模块电路接口

3.6按键电路

按键控制电路是由3个微动开关并联组成的电路,按键开关的检测其原理

就是高低电平的检测。本次设计烟雾浓度温度报警上限值就是通过按键设置的,

同时还可以设置接收信息手机号码。S1键代表“设置键”、S2键代表“加一

键”,S3键代表“减一键”。按键电路接口设计如下图3.8所示。

图3.8按键电路接口

7

湖南商务职业技术学院毕业设计

4产品软件设计

4.1产品程序开发软件

Mind+和Arduino都是构建Arduino程序开发的软件,而我选择的便是

Mind+作为我的系统开发软件。Mind+是一款拥有自主知识产权的国产青少年编

程软件,集成各种主流主控板及上百种开源硬件,支持人工智能与物联网功能,

既可以拖动图形化积木编程,可以使用Python/C/C++等高级编程语言。该软件

由DFRobot旗下子品牌蘑菇云创客教育发布,用户只需要拖动图形化程序块即

可完成编程,还可以自动转换Python/C/C++等高级编程语言,适用于校内的大

班教学、项目创作、创客比赛等场景,同时能满足学生校外进行创意编程与项

目创造的需求。

图4.1Mind+系统开发软件界面

4.2模块开发流程图

首先各个硬件开始初始化,温度传感器,人体红外传感器,LCD1602液晶屏,

蜂鸣器,之后各个模块开始工作,实时检测烟雾温度、是否有人,并进行相应

的报警操作。启动的步骤为:DS18B20、LCD显示等模块初始化,温度传感器检

8

湖南商务职业技术学院毕业设计

测当前温度,人体红外浓度传感器检测当前人体红外浓度。按键设置温度报警

上限和人体红外浓度报警上限。当超出温度或者人体红外报警上限值时,蜂鸣

器报警,对应的LED报警指示灯亮起。主流程图如图4.2所示

图4.2主程序流程图

9

湖南商务职业技术学院毕业设计

5实物作品操作效果及指引图

5.1实物作品展示

图5.1实物作品

10

湖南商务职业技术学院毕业设计

5.2实物作品操作演示

在最初的测试实验当中,我们使用教室中的环境来对产品的测量精度进行

确认,先对电路板进行通电,下载完成后程序自动调试。在我们多次实验测量

下,通过对结果的比对,发现他能很好的完成较高精度的测量,烟雾浓度误差

在可接受范围内,成果展示如下图所示。

1、接通电源后,正常环境时的工作情况,如下图5.2所示:

图5.2正常工作情况

11

湖南商务职业技术学院毕业设计

2、当点燃打火机对准烟雾传感器进行加热,模拟烟雾超标时,电路的工作

情况如下图所示,LCD显示温度及烟雾超标,并启动烟雾报警。

图5.3烟雾超标时工作情况

12

湖南商务职业技术学院毕业设计

6设计总结

至此,本产品基于Arduino的烟雾浓度检测报警系统的主要部分已经结束

了,通过本次毕业设计产品的制作,在其过程中也遇到了许多棘手的麻烦,犯

了很多低级的错误,也可以说是略有挑战,第一次通过自己来制作产品,自己

收集材料,整理素材,焊接编译搭程序。但正是如此,也在其中学到了很多课

程书本中学不到的知识,通过自己的动手操作,增强了自己动手能力的同时,

发现程序中的不足,对问题逐个分析,逐个击破。一直到实现效果成功,才如

释重负,成就感充满胸膛,我相信以后的日子里一定会学习更多的内容,毕竟

“学海无涯”,这也将会是我人生路上的新起点。

最后也感谢老师和同学的帮助,通过这次使我深刻的意识到学习不是一个

人的事,团队合作也是重中之重,努力去尝试发挥一个团队的作用也是很重要

的一部分,而不是往常一个人完成任务,每个人都有自己不足和擅长的一部分,

大家互相帮助,扬长避短,提高彼此的工作效率,就算是对于那些基础差的同

学,我同样应该伸出援助之手,尽可能的去帮助他人,对于难理解的核心代码

进行耐心的分析讲解,真心实意的帮助其他的同学,为他人着想,同时可以更

好的激励别人,努力自己。也感谢同学和老师们的帮助,正是因为大家的帮助

和指导才使我取得卓越的进步。

13

湖南商务职业技术学院毕业设计

7附录

附录一元器件清单

14

湖南商务职业技术学院毕业设计

附录二电路原理图

附录三PCB板图

15

湖南商务职业技术学院毕业设计

附录四产品实物

附录五源程序

#include"lcd1602.h"

#include"ds18b20.h"

constchar*phonenum="00310038003800320032003600380033003900330033";//接收

短信的手机号码,这是转码过后的

//constchar*phonenum="00310035003800350030003600310038003000310030";//接

收短信的手机号码,这是转码过后的

#definemq2pinA3//定义模拟接口A3

#definekey1pin14//定义按键引脚

#definekey2pin15//定义按键引脚

#definekey3pin16//定义按键引脚

#definebeeppin19//定义蜂鸣器引脚

16

湖南商务职业技术学院毕业设计

#defineGSM_TXBUF_SIZE60

shorttemperature=0;//温度变量

shorttempMax=400;//温度报警上限

longsmoke=0;//烟雾变量

intsmokeMax=50;//烟雾报警上限

inttimeCount=0;//计时累计

intsetn=0;//记录设置按键按下的次数

ucharshanshuo=0;//闪烁标志

chargsm_at_txbuf[GSM_TXBUF_SIZE+1];//GSMAT指令缓存区

uchargsm_rev_start=0;//开始接收标志

uchargsm_rev_okflag=0;//GSM处理标志

ucharsendFlag=0x00;//发送短信标志

voiduart_send(char*bufs)//串口发送数

{

for(;*bufs!=0;bufs++)

{

Serial.print(*bufs);//将数据发送出去

}

}

voiduart_receive(void)//串口接收数据

{

while(Serial.available()){

//getthenewbyte:

charinChar=(char)Serial.read();

if((inChar=='O')&&(gsm_rev_okflag==0))//如果接收到'o',便开始接收

{

gsm_rev_start=1;

}

if(gsm_rev_start)

{

if(inChar=='K')//如果接收到'k',说明GSM相关操作已经执行完成

{

gsm_rev_okflag=1;//完成标志置1

gsm_rev_start=0;

break;

}

17

湖南商务职业技术学院毕业设计

}

}

}

voidgsm_atcmd_send(char*at)//发送AT指令函数

{

unsignedshortwaittry;//延时变量

do

{

gsm_rev_start=0;//开始接收标志清零

gsm_rev_okflag=0;//接收完成标志清零

waittry=0;//延时变量清零

uart_send(at);

while(waittry++<30)//进入while等待

{

uart_receive();//获取串口数据

if(gsm_rev_okflag==1)//等待GSM返回ok

{

return;//结束

}

delay(100);

}

}

while(gsm_rev_okflag==0);

}

voidgsm_init(void)//gsm初始化函数

{

gsm_atcmd_send((char*)"AT\r\n");//测试指令

delay(1000);

gsm_atcmd_send((char*)"AT+CSCS=\"UCS2\"\r\n");//设置为unicode编码

delay(1000);

gsm_atcmd_send((char*)"AT+CMGF=1\r\n");//设置为文本模式

delay(1000);

gsm_atcmd_send((char*)"AT+CNMI=2,1\r\n");//来短信时,存储到模块内存

delay(1000);

gsm_atcmd_send((char*)"AT+CSMP=17,0,2,25\r\n");//设置短信保留5分钟,发送中

文短信

delay(1000);

//gsm_atcmd_send((char*)"AT+CMGD=1,4\r\n");//清除短信

//delay(1000);

}

18

湖南商务职业技术学院毕业设计

voidgsm_send_msg(constchar*number,char*content)

{

ucharlen;

memset(gsm_at_txbuf,0,GSM_TXBUF_SIZE);//清除缓存

strncpy(gsm_at_txbuf,"AT+CMGS=\"",9);//将AT+CMGS=复制到gsm_at_txbuf数组中

memcpy(gsm_at_txbuf+9,number,44);//将手机号码复制到AT+CMGS=之后

len=strlen(gsm_at_txbuf);//获取字符串长度

gsm_at_txbuf[len]='"';//AT+CMGS=\"12345678901\"

gsm_at_txbuf[len+1]='\r';

gsm_at_txbuf[len+2]='\n';//gsm_at_txbuf最终格式"AT+CMGS=\"手机号码\"\r\n"

uart_send(gsm_at_txbuf);//把接收短信号码这个指令发送给GSM

delay(300);

uart_send(content);//发送短信内容

delay(10);

Serial.write(0x1A);//发送0x1A结束符

delay(10);

}

voidsim800_send(char*content)//发送短信函数

{

intsend_error=0;

uintsend_count=0;

gsm_rev_okflag=0;

lcd_write_str(0,1,(char*)"SendSms...");//显示发送短信中

gsm_send_msg(phonenum,content);//发送短信

delay(1000);//延时

do

{

uart_receive();//获取串口数据

if(send_count++>80)

{

send_count=0;

send_error=1;

break;

}

delay(100);

19

湖南商务职业技术学院毕业设计

}while(gsm_rev_okflag==0);//等待返回OK指令

gsm_rev_okflag=0;

if(send_error==1)

lcd_write_str(0,1,(char*)"SendFail!");//显示发送超时

else

lcd_write_str(0,1,(char*)"SendOK!");//显示发送成功

delay(1000);//延时

lcd_write_str(0,1,(char*)"");

}

/*此函数为短信内容处理部分,发送中文短信必须转换为Unicode码*/

voidSMS_Content(void)//短信内容

{

charSEND_BUF[150];//发送短信内容缓存区

charBUF1[60];

memset(SEND_BUF,0,150);//清除缓存区

if(sendFlag&0x01)

{

strncpy(SEND_BUF,"70DF96FE6D535EA68D856807FF01",28);//烟雾浓度超标!

}

if(sendFlag&0x02)

{

strcat(SEND_BUF,"6E295EA68D856807FF01");//温度超标!

}

memset(BUF1,0,60);//清除缓存区

sprintf(BUF1,"70DF96FE6D535EA6003A003%d003%d0025FF0C",(int)smoke%100/10,(int)s

moke%10);//烟雾值

strcat(SEND_BUF,BUF1);

memset(BUF1,0,60);//清除缓存区

sprintf(BUF1,"6E295EA6003A003%d003%d002E003%d21033002",temperature/100,tempera

ture%100/10,temperature%10);//温度值

delay(1);

strcat(SEND_BUF,BUF1);

delay(1);

sim800_send(SEND_BUF);//发送短信

}

20

湖南商务职业技术学院毕业设计

voiddisplaySetValue(void)//显示设置的值

{

if(setn==1)

{

lcd_write_char(7,1,tempMax/100+'0');

lcd_write_char(8,1,tempMax%100/10+'0');

lcd_write_char(10,1,tempMax%10+'0');

}

if(setn==2)

{

lcd_write_char(7,1,smokeMax%100/10+'0');

lcd_write_char(8,1,smokeMax%10+'0');

}

}

voidkeyscan(void)//按键扫描

{

if(digitalRead(key1pin)==LOW)//设置键按下

{

delay(10);//消抖

if(digitalRead(key1pin)==LOW)

{

while(digitalRead(key1pin)==LOW);

digitalWrite(beeppin,HIGH);//关闭蜂鸣器

setn++;

if(setn==1)

{

lcd_write_str(0,0,(char*)"SetTheTemp");

lcd_write_str(0,1,(char*)"max:00.0C");

lcd_write_char(11,1,0xDF);

displaySetValue();

}

if(setn==2)

{

lcd_write_str(0,0,(char*)"SetTheSmoke");

lcd_write_str(0,1,(char*)"max:00%");

displaySetValue();

}

if(setn>=3)

{

setn=0;

lcd_write_str(0,0,(char*)"SMOKE:00%00.0C");

21

湖南商务职业技术学院毕业设计

lcd_write_str(0,1,(char*)"");

lcd_write_char(14,0,0xDF);

}

}

}

if(digitalRead(key2pin)==LOW)//加键按下

{

delay(100);

if(digitalRead(key2pin)==LOW)

{

if(setn==1)

{

if(tempMax<999)tempMax++;

displaySetValue();

}

if(setn==2)

{

if(smokeMax<99)smokeMax++;

displaySetValue();

}

}

}

if(digitalRead(key3pin)==LOW)//减键按下

{

delay(100);

if(digitalRead(key3pin)==LOW)

{

if(setn==1)

{

if(tempMax>0)tempMax--;

displaySetValue();

}

if(setn==2)

{

if(smokeMax>0)smokeMax--;

displaySetValue();

}

}

}

}

voidsetup(void){

22

湖南商务职业技术学院毕业设计

//putyoursetupcodehere,torunonce:

lcd_init();//1602液晶初始化

delay(100);//延时100ms

pinMode(key1pin,INPUT);//输入模式

pinMode(key2pin,INPUT);//输入模式

pinMode(key3pin,INPUT);//输入模式

pinMode(beeppin,OUTPUT);//输出模式

digitalWrite(beeppin,HIGH);//关闭蜂鸣器

Serial.begin(9600);//设置波特率为9600

lcd_write_str(0,0,(char*)"GSMinit...");

gsm_init();//GSM初始化

while(DS18B20_Init()==1)

{

lcd_write_str(0,0,(char*)"DS18B20Erro!");

}

lcd_write_str(0,0,(char*)"SMOKE:00%00.0C");

lcd_write_str(0,1,(char*)"");

lcd_write_char(14,0,0xDF);

}

voidloop(void){

//putyourmaincodehere,torunrepeatedly:

keyscan();//按键扫描

if(timeCount++>=300&&!setn)//延时一段时间执行以下内容

{

timeCount=0;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论