查看: 4172|回复: 6

pcDuino帮你测PM2.5

  [复制链接]

该用户从未签到

发表于 2013-12-19 16:31:28 | 显示全部楼层 |阅读模式
分享到:
时下,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();
  }
}

回复

使用道具 举报

该用户从未签到

发表于 2013-12-19 16:34:03 | 显示全部楼层
{:soso_e179:}非常不错,这个确实很方便,楼主,请继续更新关于pcduino的帖子。
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2013-12-19 16:35:14 | 显示全部楼层
Cherish. 发表于 2013-12-19 16:34
非常不错,这个确实很方便,楼主,请继续更新关于pcduino的帖子。 ...

谢谢关注,每天都会有更新
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2013-12-19 17:30:53 | 显示全部楼层
初玩这个,希望代码还可以加一些注释~~~
回复 支持 反对

使用道具 举报

  • TA的每日心情
    郁闷
    2013-12-24 21:44
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2013-12-24 21:49:12 | 显示全部楼层
    终于可以发言了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-5-6 10:37
  • 签到天数: 13 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2013-12-25 09:24:36 | 显示全部楼层
    期待楼主继续更新?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-3-4 11:08
  • 签到天数: 158 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2013-12-25 16:38:10 | 显示全部楼层
    Dust Sensor貌似只能测量在探测曹内的空气粉尘大小吧?激光在探测曹中达到接收端,根据衰减,反算粒子的体积和密度。这样的探测器,首先精度相当不高吧,而且应用的时候必须暴露在被污染现场,局限性很大。PM2.5这种细微的粒子,使用的都是0.53um的激光雷达进行探测的,激光往往要到几百毫焦,接受口径要很大,加上复杂的修正算法,去除底噪,才能保证计算的精度。这种基于Arduino的探测器。。。。。只能是驱动一个时髦的探测器的结果。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /5 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-12-21 16:51 , Processed in 0.182809 second(s), 28 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.