第二届“畅学杯”电子设计大赛------- 室内环境检测语音报警系统

第一章 任务要求概述

1.1任务目标

设计出一款可以监测环境主要参数的环境监测仪,并带有语音报警功能。同时在有人进入时进行语音播报监测数据。

1.2任务要求

本设计利用MCS-51系列单片机,配合传感器,设计出一款环境测试监测仪,可以检测周围环境的温度、湿度、空气质量和可燃性气体,通过液晶以简单直观的方式显示出来。  温度、湿度和空气质量(每2秒左右刷新一次)同时显示,测量的误差不超过1%,当空气中可燃性气体超标时发出报警。并且在有人进入时,会通过手机进行当前环境参数的播报。

 

 

第二章  系统整体方案选择

    传感器是整个系统中的核心,其直接决定了系统的稳定性,实用性。是整个系统数据的源头。传感器选择的适用性是整个系统能否成功的第一步。

 

温度、湿度模块方案选择

 

第一种方案

 以传统的电阻电容传感器,湿敏元件和温感电阻为基础增加ad转换模块,将模拟信号转换成数字信号提供给单片机处理得到数值。

优点,传统的电阻电容传感器及其便宜,经过ad转换后单片机无需复杂软件处理。

缺点,模拟信号输出的传感器数据传送要经过ad转换时间比较长。

     温度湿度必须分开成两个传感器来分别测量数据。

       Ad占用大量io口尤其对于io口比较紧张的51系列单片机来说影响更大。

     

第二种方案

以数字温湿度传感器通过iic总线协议传输数据到单片机得到温湿度数据

  优点

免去了ad的本身延迟,得到的数据更为实时。数字传感器的精度更高、更稳定。

只占用1个io口,与ad相比节约了大量的io资源

  缺点  

iic总线协议带来的软件复杂性提高。读取的时间较长

  数字传感器成本较高。

综合考虑,我们选择第二种方案,以数字型温湿度传感器为基础收集数据。具体传感器型号选择了由奥松电子dht22.(asm2302)

Dht22含有已校准数字信号输出的温湿度复合传。传感器包括一个电容式感湿元件和一个NTC测温元件。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。极低的功耗,信号传输距离可达20米以上。为4针单排引脚封装。对温度量程在(-20℃—80℃),精度可达±0.2℃,对湿度测量精度在±0.3范围内。采用单总线协议与单片机相连。整体刷新一次在2s左右。满足设计需要。

 

可燃性气体监测报警

传感器选择标准

城市家庭中主要使用的可燃性气体燃料为天然气、和煤气。传感器选择要优先考虑对这两种气体燃料的监测灵敏度。

输出信号可直接通过与单片机io口连接读取。

基于以上两点选择mq5可燃性气体传感器。

Mq5可燃性气体传感器,对天然气,城市煤气有较好的灵敏度。对乙醇,烟雾几乎不响应。并且响应快、恢复快,具有灵敏度高的特性。有两条输出信息口。一种是a0口通过模拟电压形式显示当前环境中的可燃性气体水平。一种为d0口输出TTL电平。在可燃性气体水平异常升高时输出低电平报警。考量到增加可燃性气体监测的目的主要是及时监测报警对可燃性气体水平数据并无太大要求。且a0转换要经过ad存在相当的延迟。选择d0口直接输出TTL电平形式在监测到异常的可燃性气体上升时,语音报警。

语音报警通过isd18b20实现,当mq5检测到低电平后,isd18b20进行语音提示。Isd18b20的提示音事先已录制。用户也可以自行自定义。

 

空气质量监测

第一种方案

  采用mq135空气质量传感器,通过1个ad转换模块得到空气质量数值

MQ135气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在污染气体时,传感器的电导率随空气中污染气体浓度的增加而增大。

优点

电路简单,价格相对更便宜

缺点

监测范围是一些污染气体氨气、硫化物、苯系蒸汽的灵敏度高,和烟雾和其它有害气体。

得出的只是一个级别,不能得出具体的数值。

Ad占用大量io口

 

第二种方案

采用GP2Y1010AU0F传感器通过单片机产生PWM型波形控制,输出的电压值与空气中粉尘的数值上成正比。通过ad转化传输给单片机。

GP2Y1010AU0F是一个检测灰尘,粉尘的光学传感器。是由红外发光二极管和光敏晶体管组成的。能由反射光检测到,在空气中的灰尘。检测能力是大于0.3um以上的空气微粒。在单片机给出输入脉冲后经过三极管驱动,在给传感器3号脚。输出端输出此时电压值,中间转换倍数k的确认一般为500.与各地情况有关。

优点

监测的精度大大提高,可以精确到小数位。

缺点

Ad占用io口。

传感器的驱动程序极其复杂,对pwm波的要求极其精确。在长时间使用后要led灯会有一个衰减函数。要在主程序中依照这个衰减函数对数据进行补偿。衰减函数是一个指数函数难以加入程序。

 

第三种方案

采用GP2Y1050AU0F传感器,通过串口将数据传给单片机处理。每10ms一次。

GP2Y1050AU0F传感器与GP2Y1010AU0F检测精度上基本相同,在GP2Y1010AU0F的基础上增加了内置的mcu,把控制函数,按时间补偿函数等驱动程序集成在了mcu之中。在模拟电压输出基础上增加了串口输出。波特率2400.

优点

大大简化了主程序的负担,输出结果也更加精确,节约了大量io口

缺点

与GP2Y1010AU0F相比成本高出10元。

 

综合考量我们选择第三种方案采用GP2Y1050AU0F传感器,以保证空气质量的精确程度,同时,为了保证监测的准确性,添加了小风扇进行空气的流通,通过大量的实验,确定小风扇的关键性。

 

显示模块

温度湿度是两位数据带一位小数。空气质量是三位数据带一位小数。

确定使用1602液晶显示传感器读数。

 

测距模块

  测距模块实现监测行人进出的情况,选用的是HC-SR04超声波测距模块和光电传感器,两个传感器配合使用,实现监测进出情况的功能。

 

蓝牙模块

  蓝牙模块采用传统的HC-06从机模块,与手机进行无线串口通行

 

语音模块

第一种方案

  采用ISD1760进行语音的播报

  优点

  1760芯片具有60秒的录音时间,同时可以改变震荡电阻决定芯片的采样频率,从而延长录音时间,存储内容可断电保存,内置多信息管理系统,新信息提示,可处理多达255段以上的信息,芯片内部包含自动增益控制、麦克风前置扩大器、扬声器驱动线路、振荡器与内存等的全方位整合系统功能,采用SPI模式进行通信。

  第二种方案

采用ISD1820进行语音播报

  1820具有十秒的简易语音播报功能,能够进行简单的语音提示功能。

  

 

 

电源模块

系统中所有模块都是由5v直流直接供电。GP2Y1050AU0F对电压准确性要求较高。在电压偏离大于±0.3时不能正常工作。选择220v ac—5v-dc供电。并保留电池供电接口提高了系统的适用性。

 

第三章 系统硬件的构建

 

单片机最小系统

单片机的最小系统就是让单片机能正常工作并发挥其功能时所必须的组成部分,也可理解为是用最少的元件组成的单片机可以工作的系统。对51 系列单片机来说, 最小系统一般应该包括: 单片机、时钟电路、复位电路、输入/ 输出设备等。

 

一、单片机最小系统

 

 

P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0不具有内部上拉电阻。

P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 

P3 口:P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 

RST——复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。

 

二、时钟电路

在设计时钟电路之前,让我们先了解下51 单片机上的时钟管脚:

XTAL1(19 脚) :芯片内部振荡电路输入端。

XTAL2(18 脚) :芯片内部振荡电路输出端。

XTAL1 和XTAL2 是独立的输入和输出反相放大器,它们可以被配置为使用石英晶振的片内振荡器,或者是器件直接由外部时钟驱动。在XTAL1、XTAL2 的引脚上外接定时元件(一个石英晶体和两个电容),内部振荡器便能产生自激振荡。一般来说晶振可以在1.2 ~ 12MHz 之间任选,甚至可以达到24MHz 或者更高,但是频率越高功耗也就越大。在本实验套件中采用的11.0592M 的石英晶振。和晶振并联的两个电容的大小对振荡频率有微小影响,可以起到频率微调作用。当采用石英晶振时,电容可以在20 ~ 40pF 之间选择(本实验套件使用30pF);当采用陶瓷谐振器件时,电容要适当地增大一些,在30 ~ 50pF 之间。通常选取33pF 的陶瓷电容就可以了。

 

三、复位电路

在单片机系统中,复位电路是非常关键的,当程序跑飞(运行不正常)或死机(停止运行)时,就需要进行复位。

MCS-5l 系列单片机的复位引脚RST( 第9 管脚) 出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST 持续为高电平,单片机就处于循环复位状态。

复位操作通常有两种基本形式:上电自动复位和开关复位。上电瞬间,电容两端电压不能突变,此时电容的负极和RESET 相连,电压全部加在了电阻上,RESET 的输入为高,芯片被复位。随之+5V电源给电容充电,电阻上的电压逐渐减小,最后约等于0,芯片正常工作。并联在电容的两端为复位按键,当复位按键没有被按下的时候电路实现上电复位,在芯片正常工作后,通过按下按键使RST管脚出现高电平达到手动复位的效果。一般来说,只要RST 管脚上保持10ms 以上的高电平,就能使单片机有效的复位。图中所示的复位电阻和电容为经典值,实际制作是可以用同一数量级的电阻和电容代替,读者也可自行计算RC 充电时间或在工作环境实际测量,以确保单片机的复位电路可靠。 

Dht22温湿度模块  

单总线接口 DATA用于微处理器与AM2302之间的通讯和同步,采用单总线数据格式,一次通讯时间5ms左右。

数据传输为40bit,高位先出。数据格式:40bit数据=16bit湿度数据+16bit温度数据+8bit校验和例子:接收40bit数据如下:

0000001010001100000000010101111111101110 

湿度数据温度数据校验和=湿度高8位+湿度低8位+温度高8位+温度低8位         例如:00000010+10001100+00000001+01011111=11101110湿度=65.2%RH温度=35.1℃

 当温度低于0℃时温度数据的最高位置1。

例如:-10.1℃表示为1000000001100101用户主机(MCU)发送一次开始信号后,AM2302从低功耗模式转换到高速模式,等待主机开始信号结束后,dht22发送响应信号,送出40bit的数据,并触发一次信号采集。(注:主机从AM2302读取的温湿度数据总是前一次的测量值,如两次测量间隔时间很长,连续读两次以获得实时的温湿度值)

空闲时总线为高电平,通讯开始时主机(MCU)拉低总线500us后释放总线,延时20-40us后主机开始检测从机(AM2302)的响应信号。 从机的响应信号是一个80us左右的低电平,随后从机在拉高总线80us左右代表即将进入数据传送。

高电平后就是数据位,每1bit数据都是由一个低电平时隙和一个高电平组成。低电平时隙就是一个50us左右的低电平,它代表数据位的起始,其后的高电平的长度决定数据位所代表的数值,较长的高电平代表1,较短的高电平代表0。共40bit数据,当最后一Bit数据传送完毕后,从机将再次拉低总线50us左右,随后释放总线,由上拉电阻拉高。

GP2Y1050AU0F传感器

串口输出参数 

     1) 波 特 率:2400 bit/s; 

     2) 每10ms发送一个字节,共7个字节,其中校验位=Vout(H)+ Vout(L)+Vref(H)+ Vref(L); 

     3) 数据发送格式: 

起始位 Vout(H) Vout(L) Vref(H) Vref(L) 校验位 结束位 

0xaa 如:0x01 如:0xe0 如:0x00 如:0x7a 如:0x5b 0xff 

     4)数据处理: 

      接收到的数据按公式计算后得到Vo的值:Vo=(Vout(H)*256+Vout(L))/1024*5 

例如:Vout(H)=0x01,转换为10进制为1; 

Vout(L)=0xe0,转换为10进制为224; 

      得到Vo的数值后,乘以系数K即可得到灰尘浓度值:灰尘浓度=K*Vo

1602液晶显示模块

州仔 发表于11-15 15:53 浏览65243次
分享到:

已有1条评论

  • 子不语
    子不语 02-22 21:39

    请问用gp2y1010au0f传感器做过吗?有问题能否问一下?

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

州仔
州仔()
金币:3354个|学分:191645个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号