PM2.5检测
PM2.5检测
一、传感器的概述
GP2Y1010AUOF是日本夏普公司开发的一款光学灰尘浓度检测传感器。此传感器内部成对角分布的红外发光二极管和光电晶体管,利用光敏原理来工作。用于检测特别细微的颗粒,如香烟颗粒、细微灰尘。依靠输出脉冲的高度来判断颗粒浓度。
供电电压;5-7V
工作温度;-10-65℃
监测最小直径;0.8μm
夏普GP2Y1010AU0F灰尘传感器价格较便宜,只能检测出室内空气中的灰尘和烟尘含量.并不能测出所谓的PM2.5浓度,然而现在市面上有好多红外发光二极管的传感器都称自己是PM2.5传感器,能测PM2.5的值,其实并不是,真正能测PM2.5浓度的是那种上百的激光传感器,这种红外的连PM10都测不了,只能用来玩玩,或者大概描述空气质量的等级而已,经我多次实验,发现这传感器显示的灰尘浓度与网上公布的AQI空气质量指数比较接近,跟真实的PM2.5浓度有很大的区别,这测出的灰尘浓度其实就是所有不同直径的颗粒物总和,里面包含了PM1.0,PM2.5,PM10。
二、硬件连接
传感器中心有个洞可以让空气*流过,定向发射LED光,通过检测经过空气中灰尘折射过后的光线来判断灰尘的含量。
三、检测原理
GP2Y1010AU 插上电源后 1 秒内会稳定、正常地运作,可以进行检出。
对 GP2Y1010AU 输出电压的绝对值,并不是判定检出的有无,使用方法是:无尘时,从输出电压的变化量来做判定。
另外,可以根据输出电平时间上的变化来对检出对象物的种别进行判别。
关于一般被采用的灰尘和烟的判别方法,一般,香烟的烟是细微粒子,密度高,会扩散式的大范围漂移。与此相比,灰尘是一个一个大颗粒,密度低,断断续续式的进入灰尘传感器的检出领域。 就如下图所述,烟是连续的表现出较高的输出电压,灰尘是间隔的表现出较高的输出电压。因此,根据传感器的输出电压(发光素子和已同期的脉冲输出电压值)在时间上的推移向微机软件的读取,是否尘/是否有烟/是否有灰尘,不管是哪种状态,及空气污染的程度是多少,都可以进行检出。
灰尘的检出是在规定时间内,在某一输出电压变化的标准以上,判定在某一时间
的输出被记入什么,从而检出灰尘的有无
四、特性
根据技术手册可知,当空气洁净的时候,Vo的范围是0~1.5V,典型值是0.9V。
当空气灰尘浓度很高的时候,Vo的数值大于3.6V。但是该传感器输出的最大电压为3.6V,所以当灰尘浓度再增加时,我们这款传感器已经测不出了。
五、程序代码
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char //宏定义
//下载资源可见端口定义
/*****************************????????
*********************************************/
void lcd_init()//?????????//
{
delay1ms(15);
wr_com(0x38);
delay1ms(5);
wr_com(0x01);
delay1ms(5);
wr_com(0x06);
delay1ms(5);
wr_com(0x0c);
delay1ms(5);
wr_com(0x80);
wr_dat('P');//
wr_com(0x81);
wr_dat('M');//:
wr_com(0x82);
wr_dat('2');//
wr_com(0x83);
wr_dat('.');//:
wr_com(0x84);
wr_dat('5');//:
wr_com(0x85);
wr_dat(':');
wr_com(0x8b);
wr_dat('m');
wr_com(0x8c);
wr_dat('g');
wr_com(0x8d);
wr_dat('/');
wr_com(0x8e);
wr_dat('m');
wr_com(0x8f);
wr_dat('3');
wr_com(0xc0);
wr_dat('A');
wr_com(0xc1);
wr_dat('l');
wr_com(0xc2);
wr_dat('a');
wr_com(0xc3);
wr_dat('r');
wr_com(0xc4);
wr_dat('m');
wr_com(0xc5);
wr_dat(':');
wr_com(0xcb);
wr_dat('m');
wr_com(0xcc);
wr_dat('g');
wr_com(0xcd);
wr_dat('/');
wr_com(0xce);
wr_dat('m');
wr_com(0xcf);
wr_dat('3');
}
uchar Error_Correct(uchar *str,uchar num)
{
unsigned char i=0;
unsigned char j=0;
unsigned char Temp=0;
//????
for(i=0;i<num-1;i++)
{
for(j=i+1;j<num;j++)
{
if(str[i]<str[j])
{
Temp=str[i];
str[i]=str[j];
str[j]=Temp;
}
}
}
//去除误差取中间值
return str[num/2];
}
//主函数
void main(void)
{
InitTimer(); /初始化定时器
BEEP=1;
lcd_init();//初始化lcd
delay1ms(500);
while(1)
{
checkkey();//按键检测
if(set_st==0)
{
if(FlagStart==1) //1次数据采集完成
{
num++;
ADC_Get[num]=abc;
if(num>9)
{
num=0;
DUST=Error_Correct(ADC_Get,10);
DUST_Value=(DUST/256.0)*5;//转化成电压值
DUST_Value=(DUST_Value*0.17-0.1)*1000;//固体悬浮颗粒
if(DUST_Value<0) DUST_Value=0;
if(DUST_Value>760) DUST_Value=760; //限位
DUST=(uint)DUST_Value;
}
TL0 = (65536-10000)/256;
TH0 = (65536-10000)%256;
TR0 = 1; //开始定时器
EA = 1;
FlagStart=0;
}
Alarm(); //报警
}
disp(DUST);//显示粉尘浓度
baojing();//显示报警值
if(set_st==1)
{
wr_com(0xca);
wr_com(0x0d);
delay1ms(150);
}
}
}
上一篇: 中文情感分析