Arduino粉尘烟雾传感器PM2.5实验
- 硬件准备
- 接线
- 代码部分
- 效果展示
- 空气指数标准
硬件准备
GP2Y1014AU粉尘传感器模块
150欧电阻
220uf电容
技术参数
GP2Y1014AU粉尘传感器模块
• 电源电压:DC5±2V
• 工作电流:20mA(峰值)
• 灵敏度:0.5V/(0.1mg/m3)
• 最小粒子检出值:0.8微米
• 清洁空气中电压:0.9V 典型值
• 工作温度:-10~65℃
• 存储温度:-20~80℃
• 使用寿命:5年
• 尺寸大小:46mm×30mm×17.6mm
• 重量大小:15g
电压范围:VoH(V) — 无尘 时输出电压:Voc(V)。
将此换算成粉尘浓度:
检出粉尘浓度范围(mg/m3) = 检出可能范围 (输出电压可变范围(V) ) ÷ 检出感 度:K(V/(0.1 mg/m3)。
烟检出的情况下,其判定值如下:
判定值 = 检出浓度(mg/m3) ÷ 10 ×K(V/(0.1 mg/m3) + 无尘时输出电压(V)
检出浓度:0.2(mg/m3) 来判定时 K:TYP 0.5 (V/(0.1 mg/m3)
无尘时输出电压:0.9 (V) 的情况下 判定值 = (0.2×10)×0.5+0.9 = 1.9V
接线
我将以上图所示颜色接线
PM2.5 | Arduino |
---|---|
蓝色-接电容正极 | 5V |
绿色-接电容负极 | GND |
白色 | 11 |
黄色 | GND |
黑色 | A5 |
红色 | 5V |
电容正极 | 5V |
电容负极 | GND |
(电阻与电容正极串联)
引脚接线:接线口在左方时(自左向右)
蓝线:V-LED-Arduino 5V和150欧电阻接220uf电容正极
绿线:LED-GND-Arduino GND接220uf电容负极
白线:LED-Arduino Digital Pin 接ledPower 可自定义接11
黄线:S-GND Arduino GND接220uf电容负极
黑线:Vo-Arduino Analog A5
红线:Vcc-Arduino 5V和150欧电阻接220uf电容正极
可以参考下图(转自)
代码部分
int measurePin = A5;
int ledPower = 11; unsigned int samplingTime = 280;
unsigned int deltaTime = 40;
unsigned int sleepTime = 9680;float voMeasured = 0;
float calcVoltage = 0;
float dustDensity = 0;void setup(){Serial.begin(9600);pinMode(ledPower,OUTPUT);
}void loop(){digitalWrite(ledPower,LOW);delayMicroseconds(samplingTime);voMeasured = analogRead(measurePin);delayMicroseconds(deltaTime);digitalWrite(ledPower,HIGH);delayMicroseconds(sleepTime);calcVoltage = voMeasured*(5.0/1024);dustDensity = 0.17*calcVoltage-0.1;if ( dustDensity < 0){dustDensity = 0.00;}Serial.print("空气质量数值:");Serial.println(voMeasured);/*Serial.print("当前实时电压电压:");Serial.println(calcVoltage); */Serial.print("P.M2.5浓度:");Serial.print(dustDensity);Serial.println("%");delay(1000);
}
效果展示
空气指数标准
空气质量对照
空气指数 | 空气质量 |
---|---|
3000+ | 极差 |
1050-3000 | 较差 |
300-1050 | 一般 |
150-300 | 较好 |
75-150 | 很好 |
0-75 | 非常好 |
有烟情况下
无烟正常情况下