时下,PM2.5可以说是最为热门的词语之一。入冬以来,大面积雾霾天气袭击我国,北方及华东等25省市持续雾霾天气。本帖将带你如何在pcDuino上使用Dust Sensor,检测你生活环境的空气质量如何。
一、Dust Sensor介绍
主要特点:
1、PWM方式输出;
2、结构紧凑,重量轻;
3、容易安装;
4、单电源供电;
5、价格低。 主要应用:
1、空气净化器和空气清新机;
2、空气质量监控仪;
3、空调等相关产品。 主要参数:
1、光学原理,能够探测1微米以上的粉尘粒子;
2、两种输出模式,解决不同灵敏度使用要求,洁净环境Vout输出高电平信号(4V);
3、5VDC供电;
4、探测粒子范围:最大到8000pcs/283ml(1um以上粒子); 附件:Dust_sensor
二、运行代码
硬件准备: (1)pcDuino (2)Dust Sensor (3)公-母杜邦线 接线图: Dust Sensor Pin 1 => pcDuino GND Dust Sensor Pin 3 => pcDuino 5V Dust Sensor Pin 4 => pcDuino D8 运行代码:(注意使用前需要预热3分钟左右) (1)打开pcDuino上的arduino IDE,输入测试代码: (2)下载运行:
三、测试代码
/************************************/
/* Dust Sensor Pin 1 => pcDuino GND */
/* Dust Sensor Pin 3 => pcDuino 5V */
/* Dust Sensor Pin 4 => pcDuino D8 */
/************************************/ int pin = 8;
unsigned long duration;
unsigned long starttime;
unsigned long sampletime_ms = 30000;//sampe 30s ;
unsigned long lowpulseoccupancy = 0;
float ratio = 0;
float concentration = 0; void setup()
{
pinMode(pin,INPUT);
starttime = millis();//get the current time;
} void loop()
{
duration = pulseIn(pin,LOW,1000000);
lowpulseoccupancy += duration; if ((millis()-starttime) > sampletime_ms)//if the sampel time == 30s
{
ratio = lowpulseoccupancy/(sampletime_ms*10.0); // Integer percentage 0=>100
concentration = 1.1*pow(ratio,3)-3.8*pow(ratio,2)+520*ratio+0.62; // using spec sheet curve
printf(“lowpulseoccupancy: %ld \nratio: %f \nconcentration: %f\n\n”,lowpulseoccupancy,ratio,concentration);
lowpulseoccupancy = 0;
starttime = millis();
}
}
|