当前位置:   article > 正文

PM2.5检测_pm2.5传感器如何检测是否有人

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);
  }
 }
}
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/554137
推荐阅读
相关标签
  

闽ICP备14008679号