论坛风格切换切换到宽版
  • 8054阅读
  • 35回复

自制空气颗粒物检测器(开源程序) [复制链接]

上一主题 下一主题
离线yyh
 
发帖
1403
只看楼主 倒序阅读 0楼 发表于: 2013-10-11
夏普的空气灰尘传感器,同时兼顾了个DHT11测下温度和湿度,颗粒物用二极管二进制显示,分辨率20ug/m3,苦于不好开1602显示器的方孔,只好牺牲下精度了。

[ 此帖被yyh在2013-10-15 10:36重新编辑 ]
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
BG8BAL
离线ahhui
发帖
7457
只看该作者 1楼 发表于: 2013-10-11
以后上街时可以背个这个。
DE BA6IT AB9UX
离线songxiang
发帖
5500
只看该作者 2楼 发表于: 2013-10-11
放射性电离还是其他什么原理?
--
离线BG6JJI
发帖
4942
只看该作者 3楼 发表于: 2013-10-11
回 songxiang 的帖子
songxiang:放射性电离还是其他什么原理? (2013-10-11 17:23) 

激光扫射
到处游荡的机器人火腿,目前在丽江
RIG:我有一堆uSDX
ANT:随时都能抄走的拉杆GP天线
QQ:1416160    我的DIY群:777353770
http://www.dxsummit.fi/DxSpots.aspx
离线yyh
发帖
1403
只看该作者 4楼 发表于: 2013-10-11
回 songxiang 的帖子
songxiang:放射性电离还是其他什么原理? (2013-10-11 17:23) 

红外光对射漂浮物,检测泛光原理,晚上测试了,厨房污染不是一般严重,直接爆表
BG8BAL
离线wallyzh
发帖
191
只看该作者 5楼 发表于: 2013-10-11
论坛高人不少啊
呼号:BI7MBU
QQ:119551081
EMAIL:wallyzh@163.com
离线BD5UYW
发帖
4657
只看该作者 6楼 发表于: 2013-10-11
好玩,学习了。
BD5UYW@厦门
离线yyh
发帖
1403
只看该作者 7楼 发表于: 2013-10-11
面板画了下
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
BG8BAL
离线jxj
发帖
153
只看该作者 8楼 发表于: 2013-10-11
牛人。真是玩啥的都有啊
http://sdr-x.github.io  技术博客 软件无线电 LTE ADS-B GPS HACKRF BLADERF RTL2832 RTL-SDR
离线BA5SBA
发帖
3088
只看该作者 9楼 发表于: 2013-10-11
如何标定????

http://www.hellocq.net/forum/read.php?tid=320147
Babel Fish 连接HD SDR 的一些基本操作和使用技巧
http://v.youku.com/v_show/id_XNTk3MzYyOTQ0.html

淘宝小店 http://shop107578303.taobao.com/?spm=a1z10.3.0.0.cuLaul
离线BG4DRL
发帖
6934
只看该作者 10楼 发表于: 2013-10-11
PM 日抛 试纸 有的话 跟随的物品就卖得掉来
- Day After Day -
离线yyh
发帖
1403
只看该作者 11楼 发表于: 2013-10-12
回 BA5SBA 的帖子
BA5SBA:如何标定????[表情] (2013-10-11 23:29)

这个我也考虑过,所以传感器买了两个,测试了同一环境输出电压基本一致,然后根据国外爱好者用这个传感器做好后与专业仪器比对得出的函数关系建立数学模型,我就利用的它这个模型来换算的,后来与市环保发布的数据比对,相差不大

英文参考资料http://sensorapp.net/?p=479
中文参考资料http://blog.yeelink.net/?p=184
[ 此帖被yyh在2013-10-12 09:51重新编辑 ]
BG8BAL
离线yyh
发帖
1403
只看该作者 12楼 发表于: 2013-10-12
程序来了哈。自己写的,估计比较繁琐,可以再改进
#include <dht11.h>

dht11 DHT11;
#define DHT11PIN A0
int OVER=10;int LED_8=9;int LED_4=6;int LED_2=5;int LED_1=3;
float dustVal=0;

void setup(){
Serial.begin(9600);
pinMode(A1,OUTPUT);
pinMode( OVER,OUTPUT);pinMode(LED_8,OUTPUT);pinMode(LED_4,OUTPUT);pinMode( LED_2,OUTPUT);pinMode(LED_1,OUTPUT);

digitalWrite(LED_8,HIGH);delay(500);digitalWrite(LED_8,LOW);
digitalWrite(LED_4,HIGH);delay(500);digitalWrite(LED_4,LOW);
digitalWrite(LED_2,HIGH);delay(500);digitalWrite(LED_2,LOW);
digitalWrite(LED_1,HIGH);delay(500);digitalWrite(LED_1,LOW);
  delay(500);
digitalWrite(LED_8,HIGH);digitalWrite(LED_4,HIGH);digitalWrite(LED_2,HIGH);digitalWrite(LED_1,HIGH); digitalWrite(OVER,HIGH);
delay(500);
digitalWrite(LED_8,LOW);digitalWrite(LED_4,LOW);digitalWrite(LED_2,LOW);digitalWrite(LED_1,LOW);digitalWrite(OVER,LOW);//zi jian LED he BB
}

void loop(){
     DHT11.read(DHT11PIN);
   int i=0;float gongji=0;int pm=0;

for(i=0;i<30;i++){
digitalWrite(A1,LOW); // power on the LED
delayMicroseconds(280);
dustVal=analogRead(A2); // read the dust value via pin 5 on the sensor
delayMicroseconds(40);
digitalWrite(A1,HIGH); // turn the LED off
delayMicroseconds(9680);
gongji=gongji+dustVal;
delay(100);
}
gongji=gongji/30;
pm=int((0.172*5*gongji/1023-0.0999)*1000);

if(pm>=10 & pm<30)     {digitalWrite(LED_8,LOW);digitalWrite(LED_4,LOW);digitalWrite(LED_2,LOW);digitalWrite(LED_1,HIGH); }//20
if(pm>=30 & pm<50)    {digitalWrite(LED_8,LOW);digitalWrite(LED_4,LOW);digitalWrite(LED_2,HIGH);digitalWrite(LED_1,LOW); }//40
if(pm>=50 & pm<70)    {digitalWrite(LED_8,LOW);digitalWrite(LED_4,LOW);digitalWrite(LED_2,HIGH);digitalWrite(LED_1,HIGH); }//60
if(pm>=70 & pm<90)    {digitalWrite(LED_8,LOW);digitalWrite(LED_4,HIGH);digitalWrite(LED_2,LOW);digitalWrite(LED_1,LOW); }//80
if(pm>=90 & pm<110)   {digitalWrite(LED_8,LOW);digitalWrite(LED_4,HIGH);digitalWrite(LED_2,LOW);digitalWrite(LED_1,HIGH); }//100
if(pm>=110 & pm<130)  {digitalWrite(LED_8,LOW);digitalWrite(LED_4,HIGH);digitalWrite(LED_2,HIGH);digitalWrite(LED_1,LOW); }//120
if(pm>=130 & pm<150)  {digitalWrite(LED_8,LOW);digitalWrite(LED_4,HIGH);digitalWrite(LED_2,HIGH);digitalWrite(LED_1,HIGH); }//140
if(pm>=150 & pm<170)  {digitalWrite(LED_8,HIGH);digitalWrite(LED_4,LOW);digitalWrite(LED_2,LOW);digitalWrite(LED_1,LOW); }//160
if(pm>=170 & pm<190)  {digitalWrite(LED_8,HIGH);digitalWrite(LED_4,LOW);digitalWrite(LED_2,LOW);digitalWrite(LED_1,HIGH); }//180
if(pm>=190 & pm<210)  {digitalWrite(LED_8,HIGH);digitalWrite(LED_4,LOW);digitalWrite(LED_2,HIGH);digitalWrite(LED_1,LOW); }//200
if(pm>=210 & pm<230)  {digitalWrite(LED_8,HIGH);digitalWrite(LED_4,LOW);digitalWrite(LED_2,HIGH);digitalWrite(LED_1,HIGH); }//220
if(pm>=230 & pm<250)  {digitalWrite(LED_8,HIGH);digitalWrite(LED_4,HIGH);digitalWrite(LED_2,LOW);digitalWrite(LED_1,LOW); }//240
if(pm>=250 & pm<270)  {digitalWrite(LED_8,HIGH);digitalWrite(LED_4,HIGH);digitalWrite(LED_2,LOW);digitalWrite(LED_1,HIGH); }//260
if(pm>=270 & pm<290)  {digitalWrite(LED_8,HIGH);digitalWrite(LED_4,HIGH);digitalWrite(LED_2,HIGH);digitalWrite(LED_1,LOW); }//280
if(pm>=290 & pm<310)  {digitalWrite(LED_8,HIGH);digitalWrite(LED_4,HIGH);digitalWrite(LED_2,HIGH);digitalWrite(LED_1,HIGH); }//300
if(pm>300){digitalWrite(LED_8,HIGH);digitalWrite(LED_4,HIGH);digitalWrite(LED_2,HIGH);digitalWrite(LED_1,HIGH);digitalWrite(OVER,HIGH);delay(200);
            digitalWrite(LED_8,LOW);digitalWrite(LED_4,LOW);digitalWrite(LED_2,LOW);digitalWrite(LED_1,LOW);digitalWrite(OVER,LOW);delay(200);
          digitalWrite(LED_8,HIGH);digitalWrite(LED_4,HIGH);digitalWrite(LED_2,HIGH);digitalWrite(LED_1,HIGH);digitalWrite(OVER,HIGH);delay(200);
            digitalWrite(LED_8,LOW);digitalWrite(LED_4,LOW);digitalWrite(LED_2,LOW);digitalWrite(LED_1,LOW);digitalWrite(OVER,LOW);delay(200);
        digitalWrite(LED_8,HIGH);digitalWrite(LED_4,HIGH);digitalWrite(LED_2,HIGH);digitalWrite(LED_1,HIGH);digitalWrite(OVER,HIGH);delay(200);
            digitalWrite(LED_8,LOW);digitalWrite(LED_4,LOW);digitalWrite(LED_2,LOW);digitalWrite(LED_1,LOW);digitalWrite(OVER,LOW);delay(200);}

Serial.print("DHT11_temperature: ");
Serial.print(DHT11.temperature);
Serial.print("C   ");


Serial.print("DHT11_Humidity: ");
Serial.print(DHT11.humidity);
Serial.print("%   ");

  Serial.print("SHARP_PM2.5: ");
Serial.print( pm);
Serial.println("ug/m3");
}
BG8BAL
离线yyh
发帖
1403
只看该作者 13楼 发表于: 2013-10-12
联上USB还可以将数据自动发到乐联网http://www.lewei50.comwww.lewei50.com/u/g/2216(参数仅供测试传感器使用)
[ 此帖被yyh在2013-10-12 12:31重新编辑 ]
BG8BAL
离线BG7DCS
发帖
486
只看该作者 14楼 发表于: 2013-10-12
建议楼主开发成手机配件,支持3G网络和WIFI上传数据。
Callsign:BG7DCS
Name:李晶
Mobile:①⑧⑥⑦③⑧⑨⑤③③③
E-MAIL:bg7dcs@①⑥③.com
QQ:③⑨②①③⑨
===================
现有设备
UV:Yaesu FTM-400D
      QuanSheng TG-K4(UV)
HF:ICOM IC-7300 (Harvest RH-10M GP)
AT:mAT-180H
===================
离线yyh
发帖
1403
只看该作者 15楼 发表于: 2013-10-13
BG8BAL
离线BG6AHD
发帖
278
只看该作者 16楼 发表于: 2013-10-14
非常不错的仪器。
离线bg5emc
发帖
435
只看该作者 17楼 发表于: 2013-10-14
真是牛人。是不是要用标准的PM2.5气体校验一下。
离线bd5ii
发帖
2974
只看该作者 18楼 发表于: 2013-10-14
真是坛里什么牛人都有!
一切都会过去,将来一定会更美好!
BD5II     95呼号/BH5PZS
离线yyh
发帖
1403
只看该作者 19楼 发表于: 2013-10-14
回 bg5emc 的帖子
bg5emc:真是牛人。是不是要用标准的PM2.5气体校验一下。 (2013-10-14 15:24) 

没条件校正,利用的数学模型
BG8BAL