我为空气做点事儿-霾迹彩蛋

标签:DIY arduino 3D打印机

夜尽天明 发布于 2017-05-09 23:34

IMG_20170506_181409.jpg

       雾霾是目前困扰我国的环境难题,这个难题同样在洛杉矶、伦敦等城市发生过。2016年冬天,雾霾侵袭了大半个中国,京津冀地区尤甚。在阴郁的霾层笼罩下,人们身体健康受到了威胁。不明原因的咳嗽、莫名的心理压力使得人们的生活幸福感极度下降。但我们又不得不承认另外一个事实:因为我国雾霾对身体的危害远没有伦敦雾霾那样,危害剧烈、迅速。人们像温水煮青蛙一样,渐渐习惯处在这样的环境下。冰冻三尺,非一日之寒,这种潜移默化的危害,同样需要警惕!在这样的背景下,我运用科学、编程、工程、数学函数等知识,制作PM2.5雾霾检测器,结合3D打印完成一款科技与艺术结合的作品,希望可以起到一定的警示作用。

      这款作品是Arduino与3D打印结合形成的创意作品,名字叫“霾迹彩蛋”。顾名思义,是一个可以检测雾霾“踪迹”的彩蛋,并且颜色的变化和雾霾等级对应。名字的来历还是比较有趣的。我完成“彩蛋”之后,在微信朋友圈发起征名活动,规定最终的冠名者可以享受一项福利,即冠名者的微信名称会被雕刻到3D打印的外壳上。大家集思广益,有的名字比较大气,如“鼎新华彩”;有的名字比较风趣,如“七彩元气蛋”(话说一共六种颜色,哪有七彩);有的名字富有深意,如“达芬奇炫彩蛋”,寓意为达芬奇小时候画蛋的经历为之后的科技与艺术创作提供了极好的基础,与作品包含的科技与艺术元素对应。考虑到“雾霾”和“彩蛋”这两个因素,最终我选择了“霾迹彩蛋”,起名的人是我的高中同学。

      好了,该说说这个蛋是怎么“孵”出来的了。


Step 1: 材料及工具

材料:
Arduino Uno 板   数量 1
SHARP红外粉尘传感器 数量 1
红外粉尘传感器转接模块 数量 1
杜邦线 公母头 数量 4   公公头 数量 6
I2C 1602 LCD 数量 1
白色ABS或者PLA打印材料 数量 若干
数据线 数量 1

工具:
3D打印机 数量 1
mixly软件 数量 1

Step 2: 原理介绍—红外粉尘传感器

红外粉尘传感器.jpg

       俗话说,工欲善其事,必先利其器。想要完成项目任务,检测到PM2.5颗粒,就需要深入了解雾霾检测器的工作原理。雾霾检测器的核心部件为粉尘传感器。在这里,我们使用红外粉尘传感器。因此,了解红外粉尘传感器的性能、工作原理及其工作过程极为关键。

       Sharp红外粉尘传感器(GP2Y1010AU0F)对于像香烟烟雾这样的颗粒十分敏感,因此常用于空气净化系统。 红外线发射二极管和光电晶体管对角式地排列在这款设备中,能够检测到空气粉尘中的反射光。这款传感器的电流消耗很低(最大电流20mA,通常11mA),并且能够在高达7伏的直流电下启动。传感器的模拟输出电压是同标准灰尘密度成比例的,其灵敏度为0.5V/0.1mg/m3。(参考http://www.dfrobot.com.cn/goods-698.html

 


Step 3: 原理介绍—红外粉尘传感器组成

红外粉尘传感器结构图.png
       如图所示,红外粉尘传感器主要由红外LED灯、聚焦透镜、光电二极管检测器、加热电阻、进气口和排气口组成。注:此图不是SHARP红外粉尘传感器原图,但与之组成和结构类似,可以参考。(来源:http://www.takingspace.org/make-your-own-aircasting-particle-monitor/

Step 4: 原理介绍—红外粉尘传感器工作原理

sharp粉尘传感器工作原理图.png

       上图为红外粉尘传感器的内部线路图。画红圈的部分是主要了解的部分。其工作原理为,红外LED发出的光,遇到空气中的粉尘会发生散射,同时灰尘吸收一部分能量,原有的红外线会减弱,当穿过聚焦透镜后,被光电二极管检测器检测到,转化成电压信号。在这个过程中,粉尘浓度越高,衰减越多。并且在一定范围内成线性关系。(来源:http://www.dfrobot.com.cn/image/data/SEN0144/gp2y1010au_e.pdf

Step 5: 原理介绍—红外粉尘传感器工作过程

发射脉冲图.png 脉冲原理图2.png

      在理解了红外粉尘传感器的工作原理之后,接下来需要重点了解它的工作过程。这将是我们了解的重点,因为之后的程序需要根据其工作过程编写。红外粉尘传感器测量粉尘浓度是一个周期性的过程,如上图所示。红外LED灯的亮灭是周期性的。其发射红外线,每次发射红外线持续的时间为0.32ms320us),之后熄灭(10 - 0.32ms,直到下一个工作周期。在每一个周期当中,红外LED灯开启(ON),供给电压需要用0.28ms280us)达到稳定电压。电压稳定,代表红外LED灯正常发光。光电二极管检测器开始检测衰减后的光照强度,这段时间持续(0.32-0.28ms。检测到的光照会转化成为电压信号,电压信号与粉尘浓度呈线性关系。之后,红外LED熄灭(OFF),等待进入下一个工作周期。

Step 6: 原理介绍—PM2.5浓度与Arduino测量值的关系。

脉冲原理图3.png
      PM2.5浓度与雾霾电压信号的关系,可以用一次函数关系式表示出来。ARDUINO的模拟端口0-1023和电压值对应。所以,我们可以将Arduino检测到的0-1023数值,转化为电压值,再将电压数值转化为PM2.5浓度值。具体的数量关系如上图所示。在PM2.5浓度为0-0.5mg/m3范围内,PM2.5浓度D与电压V之间的关系为,D=0.17*V-0.1。再根据电压V与数值d之间的线性关系,V=d/1023*5。可以得出,PM2.5浓度与数值d建立联系,即D=0.17*5*d/1023-0.1,注意此时PM2.5浓度单位为mg/m3。转化为国际单位ug/m3,则D=(0.17*5*d/1023-0.1)*1000。

Step 7: 实际操作—红外粉尘传感器与Arduino板连接

粉尘传感器连接图2.png arduino与传感器连接图.png

Step 8: 实际操作—LCD与红外ARDUINO板连接

显示器.png 显示器连接图.png arduino与lcd连接图.png
注:LCD连接5v和3.3v端口均可,区别在于5v显示更加清晰,3.3v显示比较模糊。

Step 9: 实际操作—RGB灯与Arduino板连接图

arduino与RGB灯连接图.png 三色灯与arduino连接图.png RGB色图.png
       RGB灯与Arduino连接,用来显示雾霾等级。查找资料得出,PM2.5浓度为0-50ug/m3,等级为优,绿色;50-100ug/m3为良,黄色;100-150ug/m3为一般,橙色;150-200ug/m3为较差,红色;200-300为差,紫色;300-500为极差,深紫色(因为RGB灯紫色和深紫色对比不明显,因此最高等级定为蓝色)。经过调试,这六种颜色的RGB参数如上图。

Step 10: 编写程序—图形化编程

程序1.png 程序2.png 程序3.png 程序4.png
采用图形化编程软件mixly。

Step 11: 编写程序—Arduino IDE程序

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

float a;

float b;

float c;

LiquidCrystal_I2C mylcd(0x3f,16,2);

void setup()

{

  a = 0;

  b = 0;

  c = 0;

  mylcd.init();

  mylcd.backlight();

  mylcd.display();

  pinMode(2, OUTPUT);

}

void loop()

{

  for (int i = 1; i <= 10; i = i + (1)) {

    digitalWrite(2,LOW);

    delayMicroseconds(280);

    a = analogRead(A0);

    delayMicroseconds(40);

    digitalWrite(2,HIGH);

    delayMicroseconds(9680);

    b = 1000 * (((5 * a) / 1023) * 0.17 - 0.1);

    c = b + c;

    delay(1000);

  }

  c = c / 10;

  mylcd.setCursor(0, 0);

  mylcd.print("pm2.5");

  mylcd.setCursor(0, 1);

  mylcd.print(String(c) + String("ug/m3"));

  if (c > 0 && c <= 50) {

    analogWrite(9,0);

    analogWrite(6,255);

    analogWrite(5,0);

  }

  if (c > 50 && c <= 100) {

    analogWrite(9,255);

    analogWrite(6,50);

    analogWrite(5,0);

  }

  if (c > 100 && c <= 150) {

    analogWrite(9,255);

    analogWrite(6,20);

    analogWrite(5,0);

  }

  if (c > 150 && c <= 200) {

    analogWrite(9,255);

    analogWrite(6,0);

    analogWrite(5,0);

  }

  if (c > 200 && c <= 300) {

    analogWrite(9,146);

    analogWrite(6,7);

    analogWrite(5,131);

  }

  if (c > 300 && c <= 500) {

    analogWrite(9,112);

    analogWrite(6,9);

    analogWrite(5,200);

  }

}

Step 12: 3D打印外壳

底座.png 上盖.png 蛋壳.png
本应该有共有3个STL文件,但网站有限制,文件不得超过3M,因此蛋壳的文件发不了,后续再上传。

附件:

Step 13: 最终作品展示—部件图

5.png 6.png

Step 14: 最终作品展示—最终图

7.png 8.png
 
喵了个咪2017-10-20 13:18:56
很漂亮也让人和深刻的设计,蛋壳的设计文件什么时候能传呢
李uikg245652017-06-23 16:20:57
美观有创意!
李uikg245652017-06-23 08:52:03
厉害
ilizis2017-05-19 11:13:04
红外粉尘传感器转接模块有什么作用,网上不好找呀。
蛋壳可以上传了吗?
弹力女超人2017-05-10 12:53:57
实用又美观!真希望它永远是绿色!
夜尽天明2017-05-10 14:51:05
是啊,你的走心的评价我要记下来!~

作者

6粉丝 2作品 0随笔
  关注 私信

作者的最新作品


阅读数: 9036